Next Thing Co.が倒産して、幻のハンドヘルド・コンピュータになってしまったPocketCHIPですが、倒産記念 特別企画としてPocketCHIPのGPIOを弄ってみたいと思います。
つまり、ドキュメント類が消滅する前にやっておきましょうということです。
有志によるバックアップサイトを見つけました。
こちらから失われた貴重なドキュメント類を閲覧できます。感謝!
有志によるバックアップサイトを見つけました。
こちらから失われた貴重なドキュメント類を閲覧できます。感謝!
PocketCHIPのGPIOはココに付いています。
この穴、よく見ると波打って空けられていますが、これは工作精度の不具合ではなくピンソケットを刺した時にハンダ付けしなくてもホールドされるようにわざと波加工されているようです。優秀!
GPIOにアクセスするためには環境を整える必要があります。
手順はココにあります。
手順はココにあります。
Pocket Chip: How to make blinking a led
http://www.instructables.com/id/Pocket-Chip-How-to-Make-Blinking-a-Led/?ALLSTEPS
http://www.instructables.com/id/Pocket-Chip-How-to-Make-Blinking-a-Led/?ALLSTEPS
PythonをインストールしてPython用の「CHIP_IO library」を利用する手順になります。
sudo ntpdate pool.ntp.org chip sudo apt-get update sudo apt-get install git build-essential python-dev python-pip -y git clone git://github.com/xtacocorex/CHIP_IO.git cd CHIP_IO sudo python setup.py install cd .. sudo rm -rf CHIP_IO
AIブームで今流行のPythonです。
オンラインでもインタプリタを実行できます。
オンラインでもインタプリタを実行できます。
今回はお題通りにLEDのチカチカマーカーを試してみます。
テキストエディタを立ち上げます。
テキストエディタを立ち上げます。
sudo nano blink.py
ソースコードはこれだけです。
import CHIP_IO.GPIO as GPIO import time GPIO.cleanup("XIO-P2") 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()
では実行してみましょう。
sudo python blink.py
やってることは、GPIOの出力ピンを指定して、インターバルを設けながら出力をハイ・ローに切り替える処理を10回ループするだけです。
私の環境では「GPIO.cleanup()」を実行すると落ちました。
GPIO番号を指定「GPIO.cleanup("XIO-P2" )」するとうまく行きました。
原因は不明です。
GPIO番号を指定「GPIO.cleanup("XIO-P2" )」するとうまく行きました。
原因は不明です。
もう一つの方法としてバンドルされているPICO-8からGPIOをコントロールすることもできます。
GPIOのアドレスは「0x5f82..0x5f87 = GPIO1..GPIO6」になります。
GPIOのアドレスは「0x5f82..0x5f87 = GPIO1..GPIO6」になります。
t=0 function _draw() cls(0) val=0 if (t%2<1) val=255 poke(0x5f82, val) print(t) t+=0.1 end
こちらがオススメです。
ただしPICO-8はスーパーユーザーで起動してください。
ただしPICO-8はスーパーユーザーで起動してください。
sudo pico8
GPIOからの入力はpeek(アドレス)で値を取得できます。
ただしPocketCHIPではoff/onの0/255の値になります。
ただしPocketCHIPではoff/onの0/255の値になります。
function _draw() cls(0) val=peek(0x5f82) print(val) end

GPIOは6個です。
さて何に使えるでしょうか?
夏休みの宿題にしておきます。