前回、「Lチカキター!」とは言ってみたものの、書いてある通りやってみただけなので、なにをしたのかをもう少し詳しく見てみます。
STEP 3で、必要なファイルのインストールをしていますね。
sudo ntpdate pool.ntp.org
時刻合わせですね。普段から自動で合ってる気がするので(設定はUTC標準時刻だけど)、必要ないかも?pool.ntp.org は、安定した時刻サーバを提供するプロジェクトです。
日本語の説明ページもあった。
sudo apt-get update sudo apt-get install git build-essential python-dev python-pip -y
一覧を更新して、必要なアプリを取得。
・build-essential(開発に必要な物。make/gcc/g++/Cライブラリ・ヘッダ など)
・python-dev(Python実行に必要な物)
・python-pip(Pythonパッケージ管理システム)
git clone git://github.com/xtacocorex/CHIP_IO.git
ソースファイルをGitHubからダウンロード
CHIP IOは、CHIP用に作られたGPIOライブラリですね。
cd CHIP_IO sudo python setup.py install
ダウンロード先のフォルダに移動して、Pythonで書かれたインストーラを起動。
*.dtsファイルから*.dtbo を作成、/lib/firmware/chip_io/ に入れる。
Cで書かれた外部モジュールをコンパイル
cd .. sudo rm -rf CHIP_IO
インストール完了したら、取ってきたソースファイルは必要なくなるので削除。
うーん、/lib/firmware/chip_io/ あたりが関係してるってことが分かったぐらいであった…。
次に、Lチカスクリプトの blink.py も見てみる。
import CHIP_IO.GPIO as GPIO import time GPIO.cleanup() GPIO.setup("XIO-P2", GPIO.OUT) print "Toggling XIO-P1 10 times..." for i in range(0,10): GPIO.output("XIO-P2", GPIO.LOW) time.sleep(0.1) GPIO.output("XIO-P2", GPIO.HIGH) time.sleep(0.1) GPIO.cleanup()
CHIP_IO.GPIOと、sleepに使う time をインポート。
GPIOはcleanup(初期化?)後に、”XIO-P2″をアウトプットで設定。
その後、以下を10回繰り返す。
・XIO-P2に LOW を出力
・0.1秒待つ。
・XIO-P2に HIGH を出力
・0.1秒待つ
最後にcleanupして終了。
メッセージでは”XIO-P1″と書いてるのに実際に触っているのは”XIO-P2″?よくわからん…。
ドキュメントによれば、”XIO-P2″指定で”GPIO1″ に対応するらしい。メッセージコメントが”GPIO1″の間違いってことか。
最後、HIGH出力で終わっているということは、HIGHがLED消灯かな。
LED点滅回路のキットにはLEDが2個入ってたので、2つ繋げて確かめてみよう。
import CHIP_IO.GPIO as GPIO import time GPIO.cleanup() GPIO.setup("XIO-P2", GPIO.OUT) GPIO.setup("XIO-P3", GPIO.OUT) print "Toggling GPIO-1 10 times..." for i in range(0,10): GPIO.output("XIO-P2", GPIO.LOW) GPIO.output("XIO-P3", GPIO.HIGH) time.sleep(0.5) GPIO.output("XIO-P2", GPIO.HIGH) GPIO.output("XIO-P3", GPIO.LOW) time.sleep(0.5) GPIO.output("XIO-P3", GPIO.HIGH) GPIO.cleanup()
XIO-P3を追加。そして、片方が点灯している時は片方を消灯。最後にLOWになっている側には、HIGHをセット。待つ時間は0.5秒にしました。
配線もこのとおり。
両側に LED + 抵抗を付けて「GPIO 1」と「GPIO 2」に接続。
これでどうかな?
PocketCHIP でダブルLチカ!https://t.co/UbANaU8BXw pic.twitter.com/gAzbmu7QOf
— Nochi (@shikarunochi) 2016年9月4日
想定通りでしたー。(こんなことやっていいのかわからんままにやっていますけども。)
非安定マルチバイブレータ回路を使わず、ニセの方法でLED点滅を実現させてしまった。サンハヤトのキットには申し訳ない気持ち。