トップ «前の日記(2014-04-21(Mon)) 最新 次の日記(2014-04-28(Mon))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2014-04-22(Tue) くもってる

GPIOが4本でLEDが12個

12

この段階で 他の接続方式と比べての優位点がようやく出た。 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や内容が変った場合はあしからず。

index.htmlは ここから。