Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

やってみよう!Pi-Stopで学ぶRaspberry Pi+Pythonプログラミング

17 views

Published on

Raspberry PiとLED信号機Pi-Stopを使って、Pythonプログラミングを簡単に学べるハンズオン資料です。

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

やってみよう!Pi-Stopで学ぶRaspberry Pi+Pythonプログラミング

  1. 1. やってみよう! Pi-Stopで学ぶ Raspberry Pi+Pythonプログラミング 2019年1月26日版
  2. 2. Pi-Stopとは • Raspberry PiのGPIOピンに挿すだけで簡 単に使える信号機型LED • ScratchやPythonから簡単にLEDの点灯・ 消灯が行えます • パラメータ変更でプログラムの動作原理を 学べます 2 Pi-Stopの詳細は資料の最後を参照
  3. 3. Pythonでプログラミング • Raspberry Piで用意されているPython用の 統合開発環境「IDLE」を使用します 1. 画面左上のラズベリーメニューを開きます 2. 「プログラミング」から「Python 3(IDLE)」を 選びます 3. IDLEが起動します 3 やってみよう!
  4. 4. IDLEの起動 4 ① ラズベリー メニューを開 きます ② 「Python 3 (IDLE)」 を選択して起動します
  5. 5. Pythonプログラムの実行方法 1. FileメニューからNew Fileを選びます 2. エディタウインドウが開きます 3. エディタにプログラムを書きます 4. RunメニューからRun Moduleを選択して、記 述したプログラムを実行します 5. ファイル保存ダイアログで保存します – 初めての実行の場合にはファイル名を指定します – ファイル名は自分の名前など、他の人と同じにな らないようなファイル名をつけてください 5 やってみよう!
  6. 6. 1. FileメニューからNew Fileを選択 6 Fileメニューから New Fileを選択します
  7. 7. 3. エディタに書くプログラム from gpiozero import LED green = LED(14) green.blink() 7
  8. 8. 4. Run Moduleを選択して実行 8 Runメニューから Run Moduleを選択します
  9. 9. 5. 修正したプログラムを保存 9 プログラムを修正すると実行前に保存が必要です OKボタンをクリックします
  10. 10. 5. ファイル名を指定します 10 ファイル名を入力してSaveボタンをクリックします
  11. 11. 作るプログラム 少しずつ改良を加えながら進めます 1. 緑LEDを点滅 2. 全部のLEDを点滅 3. 全部のLEDを点灯 4. 全部のLEDを点灯・消灯 5. 点灯・消灯をくりかえし 6. 信号機の動作 11
  12. 12. プログラム1:緑LEDを点滅 from gpiozero import LED green = LED(14) green.blink() 12
  13. 13. プログラム1の説明 • gpiozeroライブラリからLEDクラスを読み込 んでいます – gpiozeroライブラリをimportするとRaspberry Pi のGPIOを簡単に使えます – LEDクラスはLEDを光らせます • LEDが接続されているGPIOピン番号を指 定してLEDクラスを初期化します • blink()メソッドは指定されたLEDを点滅さ せます 13
  14. 14. プログラム2:全部のLEDを点滅 from gpiozero import LED green = LED(14) yellow = LED(15) red = LED(18) green.blink(1,1) yellow.blink(2,2) red.blink(3,3) 14
  15. 15. プログラム2の説明 • 黄、赤のLEDもGPIOピン番号を指定して 初期化します • blink()メソッドに2つの数値を与えると指定 された秒だけ点灯、消灯して点滅します 1. 2つの数値の組み合わせを変えてみよう 2. もっと速く点滅させるには? 15 試してみよう
  16. 16. プログラム3:全部のLEDを点灯 from gpiozero import LED from time import sleep green = LED(14) yellow = LED(15) red = LED(18) green.on() sleep(1) yellow.on() sleep(1) red.on() sleep(1) 16
  17. 17. プログラム3の説明 • timeライブラリからsleepクラスを読み込ん でいます – sleepクラスは指定した秒数だけPythonプログ ラムの実行を停止します – LEDクラスのように初期化しないでも使えます • LEDクラスのon()メソッドはLEDを点灯させ ます – Pythonプログラムの実行が終了してもLEDは 点灯したままです 17
  18. 18. プログラム4:点灯・消灯 from gpiozero import LED from time import sleep green = LED(14) yellow = LED(15) red = LED(18) green.on() sleep(1) yellow.on() sleep(1) red.on() sleep(1) green.off() sleep(1) yellow.off() sleep(1) red.off() sleep(1) 18
  19. 19. プログラム4の説明 • LEDクラスのoff()メソッドはLEDを消灯させ ます • LEDクラスにはtoggle()メソッドもあります – 点灯している場合には消灯、消灯している場 合には点灯させます 1. off()メソッドの代わりにtoggle()メソッドを 使ってみよう 19 試してみよう
  20. 20. プログラム5:点灯・消灯をくりかえし from gpiozero import LED from time import sleep green = LED(14) yellow = LED(15) red = LED(18) While True: green.on() sleep(1) yellow.on() sleep(1) red.on() sleep(1) green.off() sleep(1) yellow.off() sleep(1) red.off() sleep(1) ※先頭の空白は、TABキーで入力するか、IDLEのエディタの機能でインデントします 20
  21. 21. プログラム5の説明 • while True:はその後に続く処理を繰り返し ます • Pythonではインデントで文字下げされた連 続した行を1つのまとまりとして扱います – while文と組み合わせると、まとまりが繰り返し 実行されます – まとまりの終わりは文末、あるいは空行です • IDLEのエディタで一括インデントできます 21
  22. 22. 一括インデントの方法 22 インデントしたい範囲を選択して FormatメニューからIndent Regionを選択します
  23. 23. インデント後のプログラム 23 選択した範囲の行頭がインデントされます
  24. 24. プログラム6:信号機の動作 from gpiozero import LED from time import sleep green = LED(14) yellow = LED(15) red = LED(18) While True: green.on() sleep(3) green.off() yellow.on() sleep(1) yellow.off() red.on() sleep(2) red.off() ※先頭の空白は、TABキーで入力するか、IDLEのエディタの機能でインデントします 24
  25. 25. プログラム6の説明 • 信号機のようにLEDが点灯します • 信号の切り替わるタイミングはsleep()メソッ ドの値で調整しています 1. 切り替わりのタイミングを調整して、本物 の信号機らしい動作にしてみよう 25 試してみよう
  26. 26. Pi-STOP 回路図 26 • 緑・黄・赤の3つの LED • G・Y・R・GNDの4つ のGPIOピンソケット – YはAのこともある • GPIOで電流を流す とそれぞれのLED が光ります 参考
  27. 27. どこに挿す? • Pi-StopのGNDピンソ ケットにRaspberry Pi のGNDピンを挿す • 残りの3つをGPIOピン (無記入)に挿す • GNDの隣に3つGPIO ピンがある場所ならど こに挿してもOK 27 参考
  28. 28. 挿せるのは6カ所 • すべて外向き – Dは逆向きも可 • 表記の「Yellow」は使 用しているPi-Stopで はA(Amber)表記 – 海外では黄色信号を Amberと表記すること もあるため 28 参考
  29. 29. ピンアサインとGPIOピン • 今回はLocation Cを 使用 • GPIOピン番号は以下 の表の通り 29 ピン番号 GPIOピン 8(Green) GPIO14 10(Yellow/Amber) GPIO15 12(Red) GPIO18 プログラミングではGPIOピンの番号を使います 参考

×