Raspberry pi 2 + ブレッドボード with LEDで点灯しよう
Amazonから、Raspberry pi電子工作エントリーキット(Premium)を購入しました。
Raspberry Piスターターパック (Pi2 用Standard)
- 出版社/メーカー: TechShare
- メディア: エレクトロニクス
- この商品を含むブログ (1件) を見る
また、このエントリーキットには、説明書は付属していません。URLが書かれており、説明はそちらでみてね、ということになっています。これはある意味正しい対応です(紙で封入するとあとで追記や更新ができないからね)。
しかし、正直なところ初心者には、このWebページにある説明ではハードウェア初心者にはツラいと思います。読めばわかる、というようなものではなく、あれもこれもと調べ回って作り上げなければなりません。ところどころソースコード画像がリンクされていなかったりして、Webページとして未完成のようです。あえてポジティブ思考するならば、苦心して調べているうちに技術力がつく…… かもしれません。
さて、なにはともあれHello World的な何かをしようということで、LEDを点灯することにします。GPIOの18番からプラスの電源をとり、最後は0V(Ground:GNDと書かれていたりする)に接続する回路を作ります。
回路をテキストであえて書くとすれば、こんな感じです。一応写真もつけておきます。
- Raspberry pi 2のGPIO 18番に黒い配線(ジャンパワイヤ)をつなぎました。GPIO 18番というのは、12番ピンのことです(ややこしい……)。どういうことかわからないと思いますが、検索で"Raspberry pi 2 pinout"で探すとイラストつきの情報がみつかりますので、場所をよく確かめましょう。英語で書かれているのは…… がんばりましょう。
- ケーブルのもう一つの端をブレッドボードにつなぐ。
- 抵抗(1kΩ)につなぐ。
- LEDの足の長い方(アノード)につなぐ。
- Raspberry pi 2のGroundにつなぐ。Groundはいくつもありますが、どれでもいいみたいです。今回は一番左下の39番ピンにつなぎました。
私の写真では他にも配線がありますが、黒いジャンパワイヤとそれにつながっている部分が今回話題にしている回路ですので他は無視してください。配線ができたら、それを制御するPythonプログラムを書きます。それがこちら。
#!/usr/bin/env python # -*- coding: utf-8 -*- import time import RPi.GPIO as GPIO import signal, os import sys def handler( signum, frame ): """ Ctrl-Cで呼び出される終了処理。 LEDが点灯したままにならないようにします。 """ print "\ncleanup GPIO" GPIO.cleanup() sys.exit(0) # Ctrl-Cを検知する仕組み signal.signal(signal.SIGINT, handler) # GPIO 18番を準備 GPIO.setmode(GPIO.BCM) led = 18 GPIO.setup(led, GPIO.OUT) # 点滅 while True: GPIO.output(led, True) # 点灯 time.sleep(0.3) GPIO.output(led, False) # 消灯 time.sleep(0.3)
自分のホームディレクトリ等に保存したら、実行権限をつけて実行します。GPIOを操作するときにはroot権限が必要なので、sudoしましょう。これで0.3秒ごとにLEDがついたり消えたりします。自動では終了しないので、Ctrl+Cで終了しましょう。終了するときにタイミングによってLEDがついたままになってしまうことを避けるため、Ctrl+Cの割り込みハンドラ(handler関数)を作って、そこで終了処理をしています。
pi@raspberrypi:~/led$ chmod +x gpio18.py pi@raspberrypi:~/led$ sudo ./gpio18.py ^C cleanup GPIO pi@raspberrypi:~/led$
初めてハードウェアをプログラムから操作する人の、Hello World的な課題としてはちょうど良いのではないでしょうか。
- 作者: 渡波郁
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2003/10/01
- メディア: 単行本(ソフトカバー)
- 購入: 35人 クリック: 445回
- この商品を含むブログ (193件) を見る