先日、株式会社スイッチエデュケーションから「いぬボード」が発売されました。パソコンのヘッドフォンとマイクの端子で接続し、ボード上の明るさセンサーで測ったり、アナログ信号でデバイスを制御できます。NHK for SchoolのWhyプログラミング「スーパーロボット・ワンだふぉーを直せ」で登場した、暗くなると目が光る犬ロボットを簡単に作れるそうです。
手元にラズベリーパイがあるので、同じように暗くと目が光るネコ型ロボット「ニャンだよ〜」を息子くんと一緒に作ってみました。息子くんは主にネコ担当。パパはプログラムと回路担当。
「ニャンだよ〜」に必要なもの
ラズベリーパイが動く環境までは準備済みとして書きます。リンクは秋月電子さんのECサイトに張ってあります。
- 明るさセンサー(CdSセル 5mm) × 1
- 10kΩカーボン抵抗 × 1
- 抵抗内蔵5mm黄色LED(5V用) × 2
- ADコンバータ × 1
- ジャンパーコード(オス-オス) × 9
- ジャンパーコード(オス-メス) × 5
- ブレッドボード × 1
- 1L 牛乳パック × 1
- 装飾用画用紙 × 適量
LEDは配線をシンプルにするために抵抗内蔵のものを選びました。明るさセンサーからの入力はアナログなので、ラズベリーパイで読み取るにはアナログーデジタル(AD)変換が必要になります。このADコンバータが1000円以上してしまいますが、その他の部品はすべて合わせても500円程度で済みます。
作る前に設計
完成型の見た目(予想)
箱の中のイメージ
配線図
いざ製作開始
牛乳パックを組み立てて、これから顔を描きます。
息子くんのセンスやいかに。
箱の中はこんな感じです。
制御するプログラムはこんな感じです。
#!/usr/bin/env python import time, signal, sys import Adafruit_ADS1x15 as ADS import RPi.GPIO as GPIO GPIO.cleanup() GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.OUT) ads = ADS.ADS1015() while True: volts = ads.read_adc(0, gain=1) / 500.0 if volts > 1.0: print( "light : " + str ( volts )) GPIO.output(17, GPIO.LOW) else: print( "dark : " + str( volts )) GPIO.output(17, GPIO.HIGH) time.sleep(1)
無事に完成
指で明るさセンサーを押さえたり、
部屋を暗くすると、
ニャンだよ〜の目がピカっと光ります。