Raspberry pi beginner ( burmese ) chapter one: types of raspberry pi
Raspberry Piで始める電子工作 - j-school.acvol8][H_Satou]StartElectronic...ロボット ......
Transcript of Raspberry Piで始める電子工作 - j-school.acvol8][H_Satou]StartElectronic...ロボット ......
Raspberry Piで始める電子工作
作成日:2016年11月03日
作成者:佐藤春菜
1
構成
自己紹介
RaspberryPiとは
ラズパイで始める電子工作~開発環境の準備~
ラズパイで始める電子工作~LEDの点滅~
ラズパイで始める電子工作~人感センサで取得~
ラズパイで始める電子工作~クリスマス電飾プログラム~
ラズパイで始める電子工作~実際に動かしてみる~
まとめ
引用・参考資料2
自己紹介
名前:佐藤春菜
入社:2014年6月
言語:Java、(大学時代に)C、C#
趣味・好きなこと、最近のこと:・美術鑑賞(バロック絵画。最近は印象派もすきです)
・音楽鑑賞(ロキノン・クラシックをよく聴きます)
・アニメ鑑賞(今期はSB69が面白いとおもいます)
・日本酒(よくのみます) いちおう部員
・TG部とか英会話とかもたびたび出没します。帰社率高めです
・好きなポケモンはリザードンとニンフィアとジバコイルとルチャブル
・最近Pythonの勉強始めました!
3
RaspberryPiとは
4
RaspberryPiとは
◆Wikipediaから拾ってきた情報によると・・・
RaspberryPi(ラズベリー パイ)は、
ARMプロセッサを搭載したシングルボードコンピュータ
イギリスのラズベリーパイ財団によって開発されている
初期モデルは2012年2月29日に発売
売り上げ台数は累計800万台以上(2016年2月29日時点)
日本ではラズパイとも呼ばれる(以降はラズパイ表記)
5
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 Zero6
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 Zero
★今回使用するモデル
最新版
入手しやすい
比較的高性能7
RaspberryPiとは
図:Raspberry Pi 3 Model B
発売日 2016年3月
価格 35ドル(約3700円)
CPU ARM Cortex-A534コア 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のスペック
8
RaspberryPiとは
◆実物
9
IC・クレジットカードと同じ大きさ!
RaspberryPiとは
◆ラズパイで作れるもの
10
RaspberryPiとは
◆ラズパイで作れるもの
ロボット
11
RaspberryPiとは
◆ラズパイで作れるもの
ロボット
デジタルカメラ
12
RaspberryPiとは
◆ラズパイで作れるもの
ロボット
デジタルカメラ
タブレット
13
RaspberryPiとは
◆ラズパイで作れるもの
ロボット
デジタルカメラ
タブレット
スパコン
14
RaspberryPiとは
◆ラズパイで作れるもの
ロボット
デジタルカメラ
タブレット
スパコン
◆作ろうと思えばなんでも
何でも作れちゃう!
それがラズパイの魅力15
RaspberryPiとは
◆ということで、本発表の目的
ラズパイを利用した電子工作を発表することにより
ラズパイの面白さについて知ってもらう!
16
RaspberryPiとは
◆今回作成するもの
12月っぽくクリスマスの電飾を作る
赤とか青とか緑とか、
色ごとにばらけて点滅する
人間を感知したら点滅が始まる
(人感センサー利用)
人気がなくなったら点滅を止める
※画像はイメージです17
ラズパイで始める電子工作~開発環境の準備~
18
ラズパイで始める電子工作~開発環境の準備~
◆ラズパイ初期セットアップに必要なもの
ラズパイ本体 Raspberry Pi 3 Model B
ラズパイ用ケース(なくてもいいけどあると良し)
USB電源アダプタ&マイクロUSBケーブル
ディスプレイ(テレビで代用可能)
HDMIケーブル
有線キーボード
有線マウス
MicroSDカード(8GB以上推奨)19
ラズパイで始める電子工作~開発環境の準備~
◆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(ヌーブス)を選択する
21
ラズパイで始める電子工作~開発環境の準備~
◆OSのインストール
・LITEはOSが含まれていないため、NOOBSを選択
NOOBSの"download ZIP"を
選択
※約1GBあり。
DLに時間がかかる
完了後、MicroSDにコピー
22
ラズパイで始める電子工作~開発環境の準備~
◆ラズパイ初期設定
写真の通りに周辺機器を接続
電源ケーブルを接続すると
ラズパイが起動
画面に出てくる指示に従い
セットアップする!
23
電源ケーブルを差す
USBポートにはマウスとキーボードを接続
有線環境の場合LANケーブルを接続
HDMIケーブルを接続
ラズパイで始める電子工作~開発環境の準備~
◆ラズパイ初期設定
あとは日本語設定に変更したり。。。
パスワード変更したり。。。
必要なソフトウェア入れたり。。。
パッケージのアップデートしたり。。。
ネットで「ラズパイ セットアップ」で検索すれば
いろいろでてきます。
使いやすいようにカスタマイズしましょう!24
ラズパイで始める電子工作~開発環境の準備~
◆今回使用する言語「Python」(いまだに発音わかりません)
Python(パイソン)は、汎用のプログラミング言語
コードがシンプルで扱いやすい
プログラム実行はインタプリタ方式
最新バージョンは3.5(2015年9月13日リリース)
Windows、Linux/Unix、Mac OS Xなどの
主要なオペレーティングシステムはもちろん、
Javaや.NETなどの仮想環境でも動作する
25
ラズパイで始める電子工作~開発環境の準備~
◆Pythonのインストール
Windows
・以下URLから適切なものを選択し、インストールする
http://www.python.org/
Rasbian
・標準でPythonが入っているため、インストール不要
26
ラズパイで始める電子工作~開発環境の準備~
◆実行形式
Windowsで実行する場合
Linux系OSで実行する場合
# Python2で起動$ python ファイル名.py
# Python3で起動$ python3 ファイル名.py
# Python3で起動> python ファイル名.py
27
ラズパイで始める電子工作~LEDの点滅~
28
ラズパイで始める電子工作~LEDの点滅~
◆初めての電子工作、「Lチカ」をやってみる
Lチカとは名前の通りLEDライトをチカチカ点滅させること
IoT界における ”Hello, world!” にあたる
29
ラズパイで始める電子工作~LEDの点滅~
◆材料を揃える
・LED
・抵抗
・ブレッドボード
・ジャンプワイヤ(オスメスケーブル)
大体Amazonほかオンラインショップで買い揃えられる
ラズパイ工作向けキット(上記全部入り)も発売されている
30
ラズパイで始める電子工作~LEDの点滅~
◆秋月電子通商で買い揃えた場合の費用
・LED(1個あたり40円)
・抵抗(1個あたり1円)
・ブレッドボード(300円程度)
・ジャンプワイヤ(オスメスケーブル)(1本あたり20円)
31
ラズパイで始める電子工作~LEDの点滅~
◆LED
長い方が+、短い方が-
色を指定できるフルカラーLEDやLEDテープなどがある。
32
ラズパイで始める電子工作~LEDライトの点滅~
◆抵抗
LEDには流していい電力が
決まっている
(抵抗なしで必要以上の電流を
流すとLEDは壊れてしまう)
今回は330Ωのものを使用
GPIOピンの電圧:3.3V
抵抗に加わる電圧:3.3 – 2.6~2.7 = 0.6~0.7V
2mA流した場合:
電圧 ÷ 電流 = 0.6~0.7 ÷ 0.02 = 300~350Ω33
ラズパイで始める電子工作~LEDライトの点滅~
◆ブレッドボード
はんだづけせずに電子回路組みを試すことができる基盤
34
ラズパイで始める電子工作~LEDライトの点滅~
◆ジャンプワイヤ
ラズパイとブレッドボードを
接続するのに必要
35
ラズパイで始める電子工作~LEDライトの点滅~
◆電子回路を組む
ラズパイのピンは
それぞれ役割が異なる
1番・17番は3.3Vの電源
2番・4番は5Vの電源
黒丸はGND(接地)
GPIOピンから回路に電源を
とり、最後はGNDに戻す
ピン番号表記
GPIO表記36
ラズパイで始める電子工作~LEDライトの点滅~
◆電子回路を組む。ただ単純に光らせるだけなら・・・
37
+極
-極
抵抗
LED
【接続】
1番のピンから3.3Vの電源をとる
抵抗、LEDが直列になるように接続する
最後にGNDに電流を逃がす
ように接続
電源から供給
ラズパイで始める電子工作~LEDライトの点滅~
◆電子回路を組む。目的はLピカではなくLチカ!
38
+極
-極
抵抗
LED
【接続】
GPIO2から出力を制御
抵抗、LEDが直列になるように接続する
最後にGNDに電流を逃がす
ように接続
GPIO2「電圧流す」
ラズパイで始める電子工作~LEDライトの点滅~
◆電子回路を組む
【ブレッドボード】
抵抗:c1-c4
LED:e4(+)-e5(-)
【ブレッドボードとラズパイ】
ジャンパーワイヤ(赤):
a1-ピン番号3(GPIO 2)
ジャンパーワイヤ(黒):
a5-ピン番号6(GND)
LED
抵抗電気の流れる
向き
39
ラズパイで始める電子工作~LEDライトの点滅~
◆Lチカサンプルプログラム(demo1.py)
40
ラズパイで始める電子工作~LEDライトの点滅~
◆Lチカサンプルプログラム(demo1.py)一部抜粋
41
# GPIO番号指定GPIO.setmode(GPIO.BCM) #・・・①
# GPIO2出力指定GPIO.setup(2, GPIO.OUT) #・・・②
①GPIO番号指定モードの設定を行うボードピン番号で指定する場合は以下の通
り記述GPIO.setmode(GPIO.BOARD)
②GPIOの入出力の設定を行う引数1にピン番号(GPIO番号)、
引数2に入出力の設定今回は出力指定
ラズパイで始める電子工作~LEDライトの点滅~
◆Lチカサンプルプログラム(demo1.py)一部抜粋
42
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ライトの点滅~
◆実行結果
43
ラズパイで始める電子工作~人感センサで取得~
44
ラズパイで始める電子工作~人感センサで取得~
◆人感センサ
焦電型赤外線センサモジュール
今回使用するのは以下スペック
・最大検知距離:3~5m
・検知角度:100度
45
ラズパイで始める電子工作~人感センサで取得~
◆電子回路を組む
【ブレッドボードとピン番号の紐づけ】
c8-ピン番号6(GND)
c9-ピン番号12番(GPIO18)
c10-ピン番号4番(5vの電源)
人感センサレンズのついていないほうがa側
46
ラズパイで始める電子工作~人感センサで取得~
◆人感センササンプルプログラム(demo2.py)
47
ラズパイで始める電子工作~人感センサで取得~
◆人感センササンプルプログラム(demo2.py)一部抜粋
48
try:while True:
if GPIO.input(18)==1: #・・・①log()sleep(1)
except KeyboardInterrupt:pass ①ピンの電圧状態を読み取る
ラズパイで始める電子工作~クリスマス電飾プログラム~
49
ラズパイで始める電子工作~クリスマス電飾プログラム~
◆準備したもの
ラズパイセット
LED(赤×5、青×5、緑×5)
人感センサ
抵抗(330Ω×3)
ブレッドボード
ジャンプワイヤ(たくさん)
はんだづけセット
クリスマスツリー50
ラズパイで始める電子工作~クリスマス電飾プログラム~
◆費用内訳
ラズパイセット 6,000円程度
LED(赤×5、青×5、緑×5) 300円程度
人感センサ 500円程度
抵抗(330Ω×3) 3円程度
ブレッドボード 300円程度
ジャンプワイヤ(たくさん) 500円くらい?
はんだづけセット 3,000円程度
クリスマスツリー 1,000円程度51
ラズパイで始める電子工作~クリスマス電飾プログラム~
◆電子回路を組む前に
LEDをたくさん光らせたいが、GPIOには限りがあるため
赤・緑・青の3パターンで光るタイミングが異なるように実装
順番は赤⇒緑⇒青
上記よりつなぎ方は並列。※直列だと電圧を多く必要とする
はんだづけでうまくやる
ちなみに、シフトレジスタを用いれば
個別にLEDの点滅を制御できるらしいです(今回は不使用)52
ラズパイで始める電子工作~クリスマス電飾プログラム~
◆電子回路を組む
【ピン番号の紐づけ(電飾赤)】
a15-ピン番号36(GPIO16)
a19-適当なGND
【ピン番号の紐づけ(電飾緑)】
a20-ピン番号38(GPIO20)
a24-適当なGND
【ピン番号の紐づけ(電飾青)】
a25-ピン番号40(GPIO21)
a29-適当なGND
53
ラズパイで始める電子工作~クリスマス電飾プログラム~
◆電飾用サンプルプログラム(demo3.py)
54
ラズパイで始める電子工作~実際に動かしてみる~
55
ラズパイで始める電子工作~実際に動かしてみる~
◆実行結果
56
ラズパイで始める電子工作~実際に動かしてみる~
◆所感
なんか想像したのと違う。
57
ラズパイで始める電子工作~実際に動かしてみる~
◆原因
色が少ないからしょぼい(´・ω・`)
58
ラズパイで始める電子工作~実際に動かしてみる~
◆ということで買ってしまったフルカラーLED(ここからは番外編)
1つのLEDで3原色を発光する
色を混ぜることでフルカラーを
表現可能
一個50円程度
59
ラズパイで始める電子工作~実際に動かしてみる~
◆ということで買ってしまったフルカラーLED(ここからは番外編)
左1:緑の出力
左2:青の出力
右2:-極(カソード)
右1:赤の出力
60
ラズパイで始める電子工作~クリスマス電飾プログラム~
◆電飾用サンプルプログラム(demo4.py)
61
ラズパイで始める電子工作~クリスマス電飾プログラム~
◆電飾用サンプルプログラム(demo4.py)一部抜粋
62
# パターン1のGPIO番号red_pin1 = 5green_pin1 = 6blue_pin1 = 12# パターン2のGPIO番号red_pin2 = 13green_pin2 = 19blue_pin2 = 26# パターン2のGPIO番号red_pin3 = 16green_pin3 = 20blue_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)一部抜粋
63
# 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)一部抜粋
64
# 初期の色調設定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)一部抜粋
65
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を指定して作れる色(ざっくり)
66
備考:RGB指定をするとこのような結果が得られる(はず)
ラズパイで始める電子工作~実際に動かしてみる~
◆実行結果
67
ラズパイで始める電子工作~実際に動かしてみる~
◆所感
想像したよりもしょぼい出来の良いものになった!
Pythonの勉強も電子工作も楽しかった!(小並感)
いろいろ買い揃えるとお金がかかる&こだわりすぎると終わらない
人感センサーの認識がやや甘い?(設定はいろいろできるみたい)
Kinectみたいに骨格認識やカメラからフェイストラッキング
したほうが認識精度高そうで良いかも
あんまりPythonが有効活用できていない 68
まとめ・今後の展望
69
まとめ・今後の展望
◆まとめ
小型で安価なマイコン、ラズパイはアイディア次第で
様々な電子工作が楽しめる
初心者向けにキットが発売されていたり、ネットの海には
サンプルソースがごろごろ転がっているので敷居は低い
ボーナスも出るし、冬期休暇にラズパイの電子工作にチャレンジしてみませんか?
70
まとめ・今後の展望
◆今後の展望(挑戦してみたいこと)
来年のクリスマスも機会があれば再チャレンジしたい
(音声出力とか、フルカラーLEDテープとか。。。)
せっかくPythonの勉強を始めたので、今度は機械学習について理解を深めたい
また発表する機会があれば、音声認識・音声出力、表情認識に関する成果物を発表したい!
71
引用・参考資料
72
引用・参考資料
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/
73
引用・参考資料
悪魔のロボットも作れる?ロボット制御ができる「ラズベリーパイ」とは【導入編】
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/
74
以上、ご清聴ありがとうございました!
75