もうちょっと長い流れる灯り

FT2232Dを使ってみました。
これは秋月電子で1450円で売っている
シリアルとパラレルが両方載っているデバイスです。
これをbitbangモードで使うと、8pin x 2ch = 16pinのIOが取れます。
これをLEDに流してみたのが以下です。

もっと他のpinも使えないかなと思ったのですが、
これが限界でした。
Rubyのソースはこんな感じ。

#!/usr/bin/env ruby

require './ftdi'

ftdi_a=FTDI.new
ftdi_a.usb_open(0x403,0x6010, FTDI::INTERFACE_A)
ftdi_b=FTDI.new
ftdi_b.usb_open(0x403,0x6010, FTDI::INTERFACE_B)
ftdi_a.set_bitmode(0xFF,FTDI::BITMODE_BITBANG)
ftdi_b.set_bitmode(0xFF,FTDI::BITMODE_BITBANG)
WAIT=0.05
ftdi_a.write_data 0x00
ftdi_b.write_data 0x00
loop do
  t=Thread.new do
    (0..7).each do|n|
      ftdi_a[n]=true;
      sleep WAIT
    end
    (0..7).each do|n|
      ftdi_b[n]=true;
      sleep WAIT
    end
  end
  sleep WAIT*3
  (0..7).each do|n|
    ftdi_a[n]=false;
    sleep WAIT
  end
  (0..7).each do|n|
    ftdi_b[n]=false;
    sleep WAIT
  end
  t.join
  sleep 2
end