Raspberry Piで始める電子工作
作成日:2016年11月03日 作成者:佐藤春菜
構成
自己紹介 RaspberryPiとは ラズパイで始める電子工作~開発環境の準備~ ラズパイで始める電子工作~LEDの点滅~ ラズパイで始める電子工作~人感センサで取得~ ラズパイで始める電子工作~クリスマス電飾プログラム~ ラズパイで始める電子工作~実際に動かしてみる~ まとめ 引用・参考資料自己紹介
名前:佐藤春菜 入社:2014年6月 言語:Java、(大学時代に)C、C# 趣味・好きなこと、最近のこと: ・美術鑑賞(バロック絵画。最近は印象派もすきです) ・音楽鑑賞(ロキノン・クラシックをよく聴きます) ・アニメ鑑賞(今期はSB69が面白いとおもいます) ・日本酒(よくのみます) いちおう部員 ・TG部とか英会話とかもたびたび出没します。帰社率高めです ・好きなポケモンはリザードンとニンフィアとジバコイルとルチャブル ・最近Pythonの勉強始めました!RaspberryPiとは
RaspberryPiとは
◆Wikipediaから拾ってきた情報によると・・・ RaspberryPi(ラズベリー パイ)は、 ARMプロセッサを搭載したシングルボードコンピュータ イギリスのラズベリーパイ財団によって開発されている 初期モデルは2012年2月29日に発売 売り上げ台数は累計800万台以上(2016年2月29日時点) 日本ではラズパイとも呼ばれる(以降はラズパイ表記)RaspberryPiとは
◆現在までに発売されているモデル一覧 Raspberry Pi 1 Model A ※現在販売終了 Raspberry Pi 1 Model A+ Raspberry Pi 1 Model B ※現在販売終了 Raspberry Pi 1 Model B+ Raspberry Pi 2 Model B Raspberry Pi 3 Model B Compute Module Raspberry Pi ZeroRaspberryPiとは
◆現在までに発売されているモデル一覧 Raspberry Pi 1 Model A ※現在販売終了 Raspberry Pi 1 Model A+ Raspberry Pi 1 Model B ※現在販売終了 Raspberry Pi 1 Model B+ Raspberry Pi 2 Model B Raspberry Pi 3 Model B Compute Module Raspberry Pi Zero ★今回使用するモデル 最新版 入手しやすい 比較的高性能RaspberryPiとは
図:Raspberry Pi 3 Model B 発売日 2016年3月
価格 35ドル(約3700円) CPU ARM Cortex-A53
4コア 1.2GHz(64bit) メモリ 1GB USBポート 4 ネットワーク あり ストレージ microSDカード 大きさ 85.60 mm × 56.5 mm 重量 45 g 消費電力 1.4A (7W) 最大 2.5A (12.5W) ◆Raspberry Pi 3 Model Bのスペック
RaspberryPiとは
◆実物
IC・クレジットカードと同じ 大きさ!
RaspberryPiとは
◆ラズパイで作れるもの
RaspberryPiとは
◆ラズパイで作れるもの
RaspberryPiとは
◆ラズパイで作れるもの
ロボット
RaspberryPiとは
◆ラズパイで作れるもの
ロボット
デジタルカメラ
RaspberryPiとは
◆ラズパイで作れるもの ロボット デジタルカメラ タブレット スパコンRaspberryPiとは
◆ラズパイで作れるもの ロボット デジタルカメラ タブレット スパコン ◆作ろうと思えばなんでも 何でも作れちゃう! それがラズパイの魅力RaspberryPiとは
◆ということで、本発表の目的
ラズパイを利用した電子工作を発表することにより
RaspberryPiとは
◆今回作成するもの 12月っぽくクリスマスの電飾を作る 赤とか青とか緑とか、 色ごとにばらけて点滅する 人間を感知したら点滅が始まる (人感センサー利用) 人気がなくなったら点滅を止めるラズパイで始める電子工作
~開発環境の準備~
ラズパイで始める電子工作~開発環境の準備~
◆ラズパイ初期セットアップに必要なもの ラズパイ本体 Raspberry Pi 3 Model B ラズパイ用ケース(なくてもいいけどあると良し) USB電源アダプタ&マイクロUSBケーブル ディスプレイ(テレビで代用可能) HDMIケーブル 有線キーボード 有線マウス MicroSDカード(8GB以上推奨)ラズパイで始める電子工作~開発環境の準備~
◆Amazonで買い揃えた場合の予算 ラズパイ本体 Raspberry Pi 3 Model B ⇒4,585円 ラズパイ用ケース ⇒780円 USB電源アダプタ&マイクロUSBケーブル ⇒0円(家にあるや つ) ディスプレイ(テレビで代用) ⇒0円(家略) HDMIケーブル ⇒0円(家略) 有線キーボード ⇒0円(家略) 有線マウス ⇒0円(家略) MicroSDカード(16GB) ⇒680円 20ラズパイで始める電子工作~開発環境の準備~
◆OSのインストール ・MicroSDにOS Raspbian(ラズビアン)をインストールする 公式HPにアクセスする https://www.raspberrypi.org/ downloads/ NOOBS(ヌーブス)を選択するラズパイで始める電子工作~開発環境の準備~
◆OSのインストール ・LITEはOSが含まれていないため、NOOBSを選択 NOOBSの"download ZIP"を 選択 ※約1GBあり。 DLに時間がかかる 完了後、MicroSDにコピーラズパイで始める電子工作~開発環境の準備~
◆ラズパイ初期設定 写真の通りに周辺機器を接続 電源ケーブルを接続すると ラズパイが起動 画面に出てくる指示に従い セットアップする! 電源ケーブルを 差す USBポートには マウスとキーボードを接続 有線環境の場合 LANケーブルを接続 HDMIケーブルを接続ラズパイで始める電子工作~開発環境の準備~
◆ラズパイ初期設定 あとは日本語設定に変更したり。。。 パスワード変更したり。。。 必要なソフトウェア入れたり。。。 パッケージのアップデートしたり。。。 ネットで「ラズパイ セットアップ」で検索すれば いろいろでてきます。 使いやすいようにカスタマイズしましょう!ラズパイで始める電子工作~開発環境の準備~
◆今回使用する言語「Python」(いまだに発音わかりません) Python(パイソン)は、汎用のプログラミング言語 コードがシンプルで扱いやすい プログラム実行はインタプリタ方式 最新バージョンは3.5(2015年9月13日リリース) Windows、Linux/Unix、Mac OS Xなどの 主要なオペレーティングシステムはもちろん、 Javaや.NETなどの仮想環境でも動作するラズパイで始める電子工作~開発環境の準備~
◆Pythonのインストール Windows ・以下URLから適切なものを選択し、インストールする http://www.python.org/ Rasbian ・標準でPythonが入っているため、インストール不要ラズパイで始める電子工作~開発環境の準備~
◆実行形式 Windowsで実行する場合 Linux系OSで実行する場合 # Python2で起動 $ python ファイル名.py # Python3で起動 $ python3 ファイル名.py # Python3で起動 > python ファイル名.pyラズパイで始める電子工作
~LEDの点滅~
ラズパイで始める電子工作~LEDの点滅~
◆初めての電子工作、「Lチカ」をやってみる
Lチカとは名前の通りLEDライトをチカチカ点滅させること IoT界における ”Hello, world!” にあたる
ラズパイで始める電子工作~LEDの点滅~
◆材料を揃える ・LED ・抵抗 ・ブレッドボード ・ジャンプワイヤ(オスメスケーブル) 大体Amazonほかオンラインショップで買い揃えられる ラズパイ工作向けキット(上記全部入り)も発売されているラズパイで始める電子工作~LEDの点滅~
◆秋月電子通商で買い揃えた場合の費用 ・LED(1個あたり40円) ・抵抗(1個あたり1円) ・ブレッドボード(300円程度) ・ジャンプワイヤ(オスメスケーブル)(1本あたり20円)ラズパイで始める電子工作~LEDの点滅~
◆LED
長い方が+、短い方が-
色を指定できるフルカラーLEDや LEDテープなどがある。
ラズパイで始める電子工作~LEDライトの点滅~
◆抵抗 LEDには流していい電力が 決まっている (抵抗なしで必要以上の電流を 流すとLEDは壊れてしまう) 今回は330Ωのものを使用 GPIOピンの電圧:3.3V 抵抗に加わる電圧:3.3 – 2.6~2.7 = 0.6~0.7V 2mA流した場合:ラズパイで始める電子工作~LEDライトの点滅~
◆ブレッドボード
はんだづけせずに電子回路組 みを試すことができる基盤
ラズパイで始める電子工作~LEDライトの点滅~
◆ジャンプワイヤ
ラズパイとブレッドボードを 接続するのに必要
ラズパイで始める電子工作~LEDライトの点滅~
◆電子回路を組む ラズパイのピンは それぞれ役割が異なる 1番・17番は3.3Vの電源 2番・4番は5Vの電源 黒丸はGND(接地) GPIOピンから回路に電源を とり、最後はGNDに戻す ピン番号表記 GPIO表記ラズパイで始める電子工作~LEDライトの点滅~
◆電子回路を組む。ただ単純に光らせるだけなら・・・ +極 -極 抵抗 LED 【接続】 1番のピンから3.3Vの電源をと る 抵抗、LEDが直列になるように 接続する 最後にGNDに電流を逃がす ように接続 電源から 供給ラズパイで始める電子工作~LEDライトの点滅~
◆電子回路を組む。目的はLピカではなくLチカ! +極 -極 抵抗 LED 【接続】 GPIO2から出力を制御 抵抗、LEDが直列になるように 接続する 最後にGNDに電流を逃がす ように接続 GPIO2 「電圧流す」ラズパイで始める電子工作~LEDライトの点滅~
◆電子回路を組む 【ブレッドボード】 抵抗:c1-c4 LED:e4(+)-e5(-) 【ブレッドボードとラズパイ】 ジャンパーワイヤ(赤): a1-ピン番号3(GPIO 2) ジャンパーワイヤ(黒): a5-ピン番号6(GND) LED 抵抗 電気の流れる 向きラズパイで始める電子工作~LEDライトの点滅~
ラズパイで始める電子工作~LEDライトの点滅~
◆Lチカサンプルプログラム(demo1.py)一部抜粋 # GPIO番号指定 GPIO.setmode(GPIO.BCM) #・・・① # GPIO2出力指定 GPIO.setup(2, GPIO.OUT) #・・・② ①GPIO番号指定モードの設定を行う ボードピン番号で指定する場合は以下の通 り記述 GPIO.setmode(GPIO.BOARD) ②GPIOの入出力の設定を行う 引数1にピン番号(GPIO番号)、 引数2に入出力の設定 今回は出力指定ラズパイで始める電子工作~LEDライトの点滅~
◆Lチカサンプルプログラム(demo1.py)一部抜粋 try: while True: GPIO.output(2, GPIO.HIGH) #・・・③ sleep(1) GPIO.output(2, GPIO.LOW) #・・・④ sleep(1) except KeyboardInterrupt: #・・・⑤ pass GPIO.cleanup() #・・・⑥ ③④ピンの電圧を指定 ・HIGH(3.3V) ⇒LEDを光らせる ・LOW(0V) ⇒LEDを光らせない ⑤ユーザが割り込みキー(Ctrl+cとか)を押 下したときに発生 ※passは処理を行わない ⑥GPIO設定をリセットラズパイで始める電子工作~LEDライトの点滅~
ラズパイで始める電子工作
~人感センサで取得~
ラズパイで始める電子工作~人感センサで取得~
◆人感センサ 焦電型赤外線センサモジュール 今回使用するのは以下スペック ・最大検知距離:3~5m ・検知角度:100度ラズパイで始める電子工作~人感センサで取得~
◆電子回路を組む 【ブレッドボードとピン番号の紐づ け】 c8-ピン番号6(GND) c9-ピン番号12番(GPIO18) c10-ピン番号4番(5vの電源) 人感センサ レンズのついていないほうがa側ラズパイで始める電子工作~人感センサで取得~
ラズパイで始める電子工作~人感センサで取得~
◆人感センササンプルプログラム(demo2.py)一部抜粋 try: while True: if GPIO.input(18)==1: #・・・① log() sleep(1) except KeyboardInterrupt: pass ①ピンの電圧状態を読み取るラズパイで始める電子工作
ラズパイで始める電子工作~クリスマス電飾プログラム~
◆準備したもの ラズパイセット LED(赤×5、青×5、緑×5) 人感センサ 抵抗(330Ω×3) ブレッドボード ジャンプワイヤ(たくさん) はんだづけセット クリスマスツリーラズパイで始める電子工作~クリスマス電飾プログラム~
◆費用内訳 ラズパイセット 6,000円程度 LED(赤×5、青×5、緑×5) 300円程度 人感センサ 500円程度 抵抗(330Ω×3) 3円程度 ブレッドボード 300円程度 ジャンプワイヤ(たくさん) 500円くらい? はんだづけセット 3,000円程度 クリスマスツリー 1,000円程度ラズパイで始める電子工作~クリスマス電飾プログラム~
◆電子回路を組む前に LEDをたくさん光らせたいが、GPIOには限りがあるため 赤・緑・青の3パターンで光るタイミングが異なるように実装 順番は赤⇒緑⇒青 上記よりつなぎ方は並列。※直列だと電圧を多く必要とする はんだづけでうまくやる ちなみに、シフトレジスタを用いれば 個別にLEDの点滅を制御できるらしいです(今回は不使用)ラズパイで始める電子工作~クリスマス電飾プログラム~
◆電子回路を組む 【ピン番号の紐づけ(電飾赤)】 a15-ピン番号36(GPIO16) a19-適当なGND 【ピン番号の紐づけ(電飾緑)】 a20-ピン番号38(GPIO20) a24-適当なGND 【ピン番号の紐づけ(電飾青)】 a25-ピン番号40(GPIO21) a29-適当なGNDラズパイで始める電子工作~クリスマス電飾プログラム~
ラズパイで始める電子工作
~実際に動かしてみる~
ラズパイで始める電子工作~実際に動かしてみる~
ラズパイで始める電子工作~実際に動かしてみる~
◆所感
ラズパイで始める電子工作~実際に動かしてみる~
◆原因
ラズパイで始める電子工作~実際に動かしてみる~
◆ということで買ってしまったフルカラーLED(ここからは番外 編) 1つのLEDで3原色を発光する 色を混ぜることでフルカラーを 表現可能 一個50円程度ラズパイで始める電子工作~実際に動かしてみる~
◆ということで買ってしまったフルカラーLED(ここからは番外編) 左1:緑の出力 左2:青の出力 右2:-極(カソード) 右1:赤の出力ラズパイで始める電子工作~クリスマス電飾プログラム~
ラズパイで始める電子工作~クリスマス電飾プログラム~
◆電飾用サンプルプログラム(demo4.py)一部抜粋 # パターン1のGPIO番号 red_pin1 = 5 green_pin1 = 6 blue_pin1 = 12 # パターン2のGPIO番号 red_pin2 = 13 green_pin2 = 19 blue_pin2 = 26 # パターン2のGPIO番号 red_pin3 = 16 green_pin3 = 20 blue_pin3 = 21 # 出力指定 GPIO.setmode(GPIO.BCM) GPIO.setup(red_pin1, GPIO.OUT) GPIO.setup(green_pin1, GPIO.OUT) GPIO.setup(blue_pin1, GPIO.OUT) GPIO.setup(red_pin2, GPIO.OUT) GPIO.setup(green_pin2, GPIO.OUT) GPIO.setup(blue_pin2, GPIO.OUT) GPIO.setup(red_pin3, GPIO.OUT) GPIO.setup(green_pin3, GPIO.OUT) GPIO.setup(blue_pin3, GPIO.OUT)ラズパイで始める電子工作~クリスマス電飾プログラム~
◆電飾用サンプルプログラム(demo4.py)一部抜粋 # PWMの指定 red1 = GPIO.PWM(red_pin1, 50) #・・・① green1 = GPIO.PWM(green_pin1, 50) blue1 = GPIO.PWM(blue_pin1, 50) red2 = GPIO.PWM(red_pin2, 50) green2 = GPIO.PWM(green_pin2, 50) blue2 = GPIO.PWM(blue_pin2, 50) red3 = GPIO.PWM(red_pin3, 50) green3 = GPIO.PWM(green_pin3, 50) blue3 = GPIO.PWM(blue_pin3, 50) ①パルス幅変調の処理(Pulse Width Modulated)
引数2でデューティ比を指定する 電気のオンとオフの時間の割合を半分に指定 ※疑似アナログ制御 ラズパイのGPIOはデジタル出力のため 値は0と1(ON/OFF)のどちらか 1周期の中でONにしている時間とOFFにしている 時間の比率(デューティ比)を使うことで 0~100%の値を扱うことができるようになる ⇒色相・明暗の調整が可能
ラズパイで始める電子工作~クリスマス電飾プログラム~
◆電飾用サンプルプログラム(demo4.py)一部抜粋 # 初期の色調設定 red1.start(100) #・・・② green1.start(0) blue1.start(0) red2.start(0) green2.start(100) blue2.start(0) red3.start(0) green3.start(100) blue3.start(0) sleep(T) ②初期の色設定 パターン1:赤 パターン2:緑 パターン3:青ラズパイで始める電子工作~クリスマス電飾プログラム~
◆電飾用サンプルプログラム(demo4.py)一部抜粋 try:
while True:
# 1:緑 2:青 3:紫 #・・・③
change_Led_Color(red1, green1, blue1, 0, 100, 0)
change_Led_Color(red2, green2, blue2, 0, 0, 100) change_Led_Color(red3, green3, blue3, 50, 0, 50) sleep(T) ③初期の色設定から変化させる パターン1:赤→緑 パターン2:緑→青 パターン3:青→紫 ④ChangeDutyCycleで デューティ比を変更 # 色調変化
change_Led_Color(red, green, blue, v1, v2, v3): red.ChangeDutyCycle(v1) #・・・④
green.ChangeDutyCycle(v2) blue.ChangeDutyCycle(v3)
ラズパイで始める電子工作~クリスマス電飾プログラム~
◆RGBを指定して作れる色(ざっくり)
備考:
RGB指定をするとこのような結果 が得られる(はず)
ラズパイで始める電子工作~実際に動かしてみる~
ラズパイで始める電子工作~実際に動かしてみる~
◆所感 想像したよりもしょぼい出来の良いものになった! Pythonの勉強も電子工作も楽しかった!(小並感) いろいろ買い揃えるとお金がかかる&こだわりすぎると終わらな い 人感センサーの認識がやや甘い?(設定はいろいろできるみた い) Kinectみたいに骨格認識やカメラからフェイストラッキング したほうが認識精度高そうで良いかも あんまりPythonが有効活用できていないまとめ・今後の展望
◆まとめ 小型で安価なマイコン、ラズパイはアイディア次第で 様々な電子工作が楽しめる 初心者向けにキットが発売されていたり、ネットの海には サンプルソースがごろごろ転がっているので敷居は低い ボーナスも出るし、冬期休暇にラズパイの電子工作にチャレンジ してみませんか?まとめ・今後の展望
◆今後の展望(挑戦してみたいこと) 来年のクリスマスも機会があれば再チャレンジしたい (音声出力とか、フルカラーLEDテープとか。。。) せっかくPythonの勉強を始めたので、今度は機械学習について 理解を深めたい また発表する機会があれば、音声認識・音声出力、表情認識に関 する成果物を発表したい!引用・参考資料
Raspberry Pi 公式サイト https://www.raspberrypi.org/ Python 公式サイト www.python.jp/ Raspberry Pi - Wikipedia https://ja.wikipedia.org/wiki/Raspberry_Pi Python - Wikipedia https://ja.wikipedia.org/wiki/Python IT女子のラズベリーパイ入門奮闘記 http://deviceplus.jp/category/hobby/raspberrypi/引用・参考資料
悪魔のロボットも作れる?ロボット制御ができる「ラズベリーパイ」とは【導入編】 https://liginc.co.jp/217398
第20回 LEDに接続する抵抗値を計算する
第26回 Raspberry PiのGPIOを制御する (Python編) https://tool-lab.com/make/raspberrypi-startup-20/ https://tool-lab.com/make/raspberrypi-startup-26/
Raspberry Piに焦電型赤外線(人感)センサーを接続してみた (Python) http://qiita.com/aryoa/items/72c40f241f868e25eb71
Raspberry Pi × Wiring Pi でクリスマスツリーを作ってみた【準備編】 (c言語) https://amg-solution.jp/blog/4557
小型PC「ラズベリー・パイ」で自作した神作品10選の猛者たちが天才過ぎる! http://plus.appgiga.jp/masatolan/2014/05/01/52120/