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

Weitere ähnliche Inhalte

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

コンピュータビジョン 1章
コンピュータビジョン 1章コンピュータビジョン 1章
コンピュータビジョン 1章motimune
 
ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会sekikazu
 
Python開発環境構築ハンズオンセミナー
Python開発環境構築ハンズオンセミナーPython開発環境構築ハンズオンセミナー
Python開発環境構築ハンズオンセミナー地球人
 
Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会Naoki Matsumoto
 
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるMicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるKenta IDA
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
第5回 デジタルガジェット祭り! スマートスピーカー特集(3)
第5回 デジタルガジェット祭り! スマートスピーカー特集(3)第5回 デジタルガジェット祭り! スマートスピーカー特集(3)
第5回 デジタルガジェット祭り! スマートスピーカー特集(3)aitc_jp
 
Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )Ai Makabi
 
Raspberry Pi しかないときのIoTハンズオンチュートリアル
Raspberry Pi しかないときのIoTハンズオンチュートリアルRaspberry Pi しかないときのIoTハンズオンチュートリアル
Raspberry Pi しかないときのIoTハンズオンチュートリアルKohei Nishikawa
 
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?Tetsuo Mitsuda
 
Raspberry PiとPythonでできること
Raspberry PiとPythonでできることRaspberry PiとPythonでできること
Raspberry PiとPythonでできることLina Katayose
 
弁理士が知っておきたいPython①
弁理士が知っておきたいPython①弁理士が知っておきたいPython①
弁理士が知っておきたいPython①Tajima Ryosuke
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Reportgree_tech
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトTetsuya Morimoto
 
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programingKei IWASAKI
 

Ähnlich wie やってみよう!Pi-Stopで学ぶRaspberry Pi+Pythonプログラミング (20)

Introduction Pycon2010
Introduction Pycon2010Introduction Pycon2010
Introduction Pycon2010
 
コンピュータビジョン 1章
コンピュータビジョン 1章コンピュータビジョン 1章
コンピュータビジョン 1章
 
ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会ゼロから学ぶPython勉強会
ゼロから学ぶPython勉強会
 
PyPI入門2018
PyPI入門2018PyPI入門2018
PyPI入門2018
 
Python開発環境構築ハンズオンセミナー
Python開発環境構築ハンズオンセミナーPython開発環境構築ハンズオンセミナー
Python開発環境構築ハンズオンセミナー
 
Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会
 
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるMicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみる
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
第5回 デジタルガジェット祭り! スマートスピーカー特集(3)
第5回 デジタルガジェット祭り! スマートスピーカー特集(3)第5回 デジタルガジェット祭り! スマートスピーカー特集(3)
第5回 デジタルガジェット祭り! スマートスピーカー特集(3)
 
Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )
 
Raspberry Pi しかないときのIoTハンズオンチュートリアル
Raspberry Pi しかないときのIoTハンズオンチュートリアルRaspberry Pi しかないときのIoTハンズオンチュートリアル
Raspberry Pi しかないときのIoTハンズオンチュートリアル
 
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
 
osakapy 2014.05 LT
osakapy 2014.05 LTosakapy 2014.05 LT
osakapy 2014.05 LT
 
Raspberry PiとPythonでできること
Raspberry PiとPythonでできることRaspberry PiとPythonでできること
Raspberry PiとPythonでできること
 
弁理士が知っておきたいPython①
弁理士が知っておきたいPython①弁理士が知っておきたいPython①
弁理士が知っておきたいPython①
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
 
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
 
Why python
Why pythonWhy python
Why python
 
Why python
Why pythonWhy python
Why python
 

Mehr von Toru Miyahara

2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました
2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました
2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしましたToru Miyahara
 
2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring
2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring
2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/SpringToru Miyahara
 
2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜Toru Miyahara
 
DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜
DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜
DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜Toru Miyahara
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門Toru Miyahara
 
DBチューニング超入門
DBチューニング超入門DBチューニング超入門
DBチューニング超入門Toru Miyahara
 
これから始めるDevOps
これから始めるDevOpsこれから始めるDevOps
これから始めるDevOpsToru Miyahara
 
今さら聞けない人のためのバックアップ超入門
今さら聞けない人のためのバックアップ超入門今さら聞けない人のためのバックアップ超入門
今さら聞けない人のためのバックアップ超入門Toru Miyahara
 
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門Toru Miyahara
 
Raspberry Piでハイレゾ音源を鳴らそう
Raspberry Piでハイレゾ音源を鳴らそうRaspberry Piでハイレゾ音源を鳴らそう
Raspberry Piでハイレゾ音源を鳴らそうToru Miyahara
 
Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編
Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編
Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編Toru Miyahara
 
『仮想化』ってなに?
『仮想化』ってなに?『仮想化』ってなに?
『仮想化』ってなに?Toru Miyahara
 
オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢
オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢
オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢Toru Miyahara
 
How To Make Open Source Conference 〜OSCの作り方〜
How To Make Open Source Conference 〜OSCの作り方〜How To Make Open Source Conference 〜OSCの作り方〜
How To Make Open Source Conference 〜OSCの作り方〜Toru Miyahara
 

Mehr von Toru Miyahara (15)

2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました
2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました
2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました
 
2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring
2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring
2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring
 
2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
 
SSH超入門
SSH超入門SSH超入門
SSH超入門
 
DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜
DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜
DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
DBチューニング超入門
DBチューニング超入門DBチューニング超入門
DBチューニング超入門
 
これから始めるDevOps
これから始めるDevOpsこれから始めるDevOps
これから始めるDevOps
 
今さら聞けない人のためのバックアップ超入門
今さら聞けない人のためのバックアップ超入門今さら聞けない人のためのバックアップ超入門
今さら聞けない人のためのバックアップ超入門
 
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
 
Raspberry Piでハイレゾ音源を鳴らそう
Raspberry Piでハイレゾ音源を鳴らそうRaspberry Piでハイレゾ音源を鳴らそう
Raspberry Piでハイレゾ音源を鳴らそう
 
Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編
Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編
Raspberry Piでハイレゾ音源を鳴らそう RuneAudio+Pi-DAC+編
 
『仮想化』ってなに?
『仮想化』ってなに?『仮想化』ってなに?
『仮想化』ってなに?
 
オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢
オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢
オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢
 
How To Make Open Source Conference 〜OSCの作り方〜
How To Make Open Source Conference 〜OSCの作り方〜How To Make Open Source Conference 〜OSCの作り方〜
How To Make Open Source Conference 〜OSCの作り方〜
 

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