僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
この段階で 他の接続方式と比べての優位点がようやく出た。 3本のGPIO では6つしかできなかったし。
なんとか動くようになったが、 3本のときより、だいぶ複雑で 時間もかかった。
Port 28 橙 Port 29 赤 Port 30 茶 Port 31 黒
線の二本それぞれに、LEDが交互に1本。
当初は
このようなレイアウトにするつもりだったが、
ただ回路図のように並ぶだけでは
あまり面白くなく思えて、方陣形
に配列してみた。
基板には
こんな感じにレイアウト。
これもややこしくなった一因。
配線もかなり汚い。おまけに 橙色と赤を間違えてしまった。
ソフトの方は、例によってpython2.7。
IN/OUT_LOW/OUT_HIGHのテーブルはこんな感じ。
leds[n][0]が OUT.HIGH, [1]がOUT.LOW, 残りが
INになる。
# use port 28-31 ports = [28, 29, 30, 31] p0, p1, p2, p3 = ports leds = [ [p1, p0, p2, p3], [p0, p1, p2, p3], [p2, p0, p1, p3], [p0, p2, p1, p3], [p3, p0, p2, p1], [p0, p3, p2, p1], [p2, p1, p0, p3], [p1, p2, p0, p3], [p2, p3, p0, p1], [p3, p2, p0, p1], [p1, p3, p2, p0], [p3, p1, p2, p0] ] def led_on(port): GPIO.setup(leds[port][0], GPIO.OUT) GPIO.setup(leds[port][1], GPIO.OUT) GPIO.setup(leds[port][2], GPIO.IN) GPIO.setup(leds[port][3], GPIO.IN) GPIO.output(leds[port][0], GPIO.HIGH)
一度に一つしか点かないのは
12個になると面白くない。
今度はソフトの方を。
連結リストが思い浮かばなかったので、間に合わせに。
#!/usr/bin/env python foo = [1,2,3] for x in range(10): print foo[0] foo.append(foo.pop(0))
$ python connect.py 1 2 3 1 2 3 1 2 3 1
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。