raspberry piでpwmを使ってみる
TRANSCRIPT
![Page 1: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/1.jpg)
Raspberry PiでPWMを使ってみる!
オープンソースアンカンファレンス
鹿児島
2014/11/24(Mon)
2014/11/24 1
![Page 2: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/2.jpg)
なぜPWM
2014/11/24 2
• なぜなら–金魚の水槽にLED光源を取り付ける!–手動でON/OFFは情けない・・・–ならば、手持ちのラズパイでON/OFFする–せっかくなのでPWMで調光制御(日の出・日の入り時はフェードイン・フェードアウト)
そんなこと、何の意味があるの?
売ってるんじゃない?
![Page 3: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/3.jpg)
2014/11/24 3
出展:wikimedia
![Page 4: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/4.jpg)
必要機材
2014/11/24 4
ON/OFF基板(パワーMOSが載ってるだけ)
Raspberry PI
![Page 5: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/5.jpg)
環境
2014/11/24 5
![Page 6: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/6.jpg)
さてソフトは・・・
• Facebookで相談したところ「wiringPi」がいいらしいことを教えてもらう。
• GPIOの制御以外にI2CやPWMなんかも、コマンドラインから操作可能!
2014/11/24 6
http://wiringpi.com/
![Page 7: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/7.jpg)
ソフトの準備
2014/11/24 7
sudo apt-get install git-coresudo apt-get updatesudo apt-get upgradegit clone git://git.drogon.net/wiringPicd wiringPi git pull origincd wiringPi ./build
★参考にしたblogの内容を基にソフトの準備を行う。
■関連パッケージのインストール 出典:https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/
sudo apt-get install git-coreSudo apt-get install libi2c-devsudo apt-get updatesudo apt-get upgradegit clone git://git.drogon.net/wiringPicd wiringPi git pull origincd wiringPi ./build
■ I2Cを使う場合はこちら 出典:https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/
![Page 8: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/8.jpg)
やってみる
2014/11/24 8
gpio mode 1 pwm
gpio pwm 1 512
■実行
GPIO-1をPWMモードにする
Dutyを50%に設定(設定値の範囲ははデフォルト0-1023)
この値を変化させれば調光できるはず!
![Page 9: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/9.jpg)
ちょっと調べる
• manpageにこんなオプションが!!– gpio pwm-bal– gpio pwm-ms
2014/11/24 9
pwm-bal/pwm-msChange the PWM mode to balanced (the default) or mark:spaceratio (traditional)
![Page 10: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/10.jpg)
実験!!
2014/11/24 10
![Page 11: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/11.jpg)
実験方法
• pwm-balとpwm-ms時それぞれ設定値を変化させ、出力パルスの周波数とDutyを計測する。
• 設定値は0~1023まで10ステップで増加させる。
• 周波数とDutyはオシロスコープの演算機能で測定する。
2014/11/24 11
![Page 12: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/12.jpg)
結果(pwm-bal)
2014/11/24 12
![Page 13: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/13.jpg)
結果(pwm-ms)
2014/11/24 13
![Page 14: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/14.jpg)
つまりこうか・・・
2014/11/24 14
出展:wikimedia
![Page 15: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/15.jpg)
まとめ(恐らくこうだろう・・・)
• pwm-balオプション–周波数可変–モータ制御などのインバータ用途やアナログ値を得たい人向け(DAC?)
• pwm-msオプション–周波数一定–昔ながらのDuty制御
2014/11/24 15
![Page 16: Raspberry piでpwmを使ってみる](https://reader034.vdocuments.site/reader034/viewer/2022051112/55aa3b041a28ab0f2a8b473d/html5/thumbnails/16.jpg)
最後に
2014/11/24 16
慌てて書いているので、言葉足らずや誤りなどあるかも知れません。気づいた人は教えて頂けると幸いです。
m(_ _)m