ふと思いついて、久しぶりにarduino-IDEを立ち上げて
みる。
シリアル通信の通信速度って、微妙な速度を選ぶこと
出来たんだったっけな?って思って。
MIDIの情報を眺めていて、ふと、シリアル上を
流れるデータを取り出してみてみたいな、と思って
いるんですが、その実験台にarduinoを使ってしまおうか
と思っていたんだけれど…
arduino-IDEの通信速度って、一般に使える通信速度の
決め打ちなんだなぁ。当たり前といえば当たり前なん
だけど。
でも、今やりたいのはMIDIと同じ31.25khzなんだよ
なぁ。
ちょっとした回路だけ組んでおいて、あとはarduinoの
UARTで受けて、それをシリアルモニターでそのまま
PCに転送させようかとか思っているんだけどな…
arduino-IDEのお手軽環境上ではダメみたい。
対応策としては、大きくは二通りかな。
(1)UARTを2個以上登載しているPICかAVR
を使って、マイコン上で通信速度の変換を
行い(例:31.25khz→115.2khz)、PC側は
適当なソフトで受け取る
(2)PC上で31.5Khzがモニターできる専用ソフトを組む
(3)UARTは5%前後の速度エラーは吸収できる
ので、複数のマイコンを直列に繋いで、マイコン
1個につき数%程度ずつ送り出し速度を速くして
いって、最終的に38.4khz程度まで速度を上げる
まぁ、(3)はふざけすぎだとしても(1)も(2)も
イマイチだな。
PCで専用プログラム書くのもイマイチだ。
ハードウェアUSARTを2個以上内蔵していて
DIPタイプで手に入りやすいといえば、マルツで
売っているMEGA162。
このためだけに約1000円のAVR買うのもなぁ…
UART1個だけのAVR使って、受信側は
ハードウェアUART使うにしても、
送り出し側はソフトウエアUARTで騙すかな?
ポーリングでUARTのコード書くのが面倒だけど…
|