いつもは、秋月の パワーグリッドCタイプユニバーサル基板を使うことが多いのですが、今回は Breadborad Maniacのケーキボードというブレッドボードを入手したので、こちらを使いました。このケーキボードというブレッドボードは、部品の足を挿す穴が裏面まで貫通していてスタックできる構造になっているので多層にブレッドボードを重ねて上下間を配線したり、ボードの裏面を使って配線したりと立体的に利用できます。また、四隅の穴がLEGOとサイズ互換になっているため、LEGOで組んだ機体に載せるのも簡単です。まさに、自分のためにあるようなブレッドボード。
一番下の層にLEGOの変形モジュラージャックを並べて、2段目の裏側にブレッドボード用のワイヤで配線しました。
2段目にはDRV8830を4つとI2Cのレベルコンバータを配置しました。
スタックして配置することで、ケーブル類も隠せるので、同じ2枚のボードを横に並べるよりも遥かにスッキリした外観になります。
3段目にはIchigoJam(LPC1114)を配置。
2段目と3段目は抵抗の足を切り落としたものを両ボードを貫通させるように挿して配線しています。
LEGOモータを接続して動作確認。モジュラージャックはモータ用に4つ、センサ用に1つ用意しましたが、センサ用に関してはNXTのタッチセンサは利用できましたが、I2Cを使っているはずのNXT超音波センサは動作させることができませんでした。残念・・・。
以前にBrickPiで動かしたメカナムホイールの全方向移動車両の写真や動画を見ながら、思い出しつつ組立てて、IchigoStormsを載せてみました。そういえば、自分でここに組立図を置いてあったの忘れてた・・・。
電源(Eneloop×4本)電圧が低いのと車体が軽いためか、斜め移動と信地旋回がスリップしてしまい、うまく動いていません。電池の本数(電圧)を増やして試してみようかな。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 CLT:CLV:A=#64:B=#65:C=#67:D=#68:E=0:F=0:G=0:H=0 | |
20 X=0:Y=50:W=0:gosub 110 | |
99 goto 410 | |
100 ' Set motor speed. | |
110 E=2*X+2*Y+2*W | |
120 F=2*X-2*Y-2*W | |
130 G=-2*X-2*Y+2*W | |
140 H=-2*X+2*Y-2*W | |
150 if E<0 then O=1 else O=2 | |
160 if E=0 then O=0 | |
170 O=O+(ABS(E)-5)<<2 | |
180 if F<0 then P=1 else P=2 | |
190 if F=0 then P=0 | |
200 P=P+(ABS(F)-5)<<2 | |
210 if G<0 then Q=1 else Q=2 | |
220 if G=0 then Q=0 | |
230 Q=Q+(ABS(G)-5)<<2 | |
240 if H<0 then R=1 else R=2 | |
250 if H=0 then R=0 | |
260 R=R+(ABS(H)-5)<<2 | |
270 poke #700, 0, O, P, Q, R | |
280 I=i2cw(A, #700, 1, #701, 1) | |
290 I=i2cw(B, #700, 1, #702, 1) | |
300 I=i2cw(C, #700, 1, #703, 1) | |
310 I=i2cw(D, #700, 1, #704, 1) | |
320 return | |
400 ' | |
410 wait(180) | |
420 X=0:Y=50:W=0:gosub 110 | |
430 wait(120) | |
440 X=50:Y=00:W=0:gosub 110 | |
450 wait(120) | |
460 X=-25:Y=-25:W=0:gosub 110 | |
470 wait(120) | |
480 X=0:Y=0:W=50:gosub 110 | |
490 wait(120) | |
500 X=0:Y=50:W=-50:gosub 110 | |
510 wait(120) | |
520 X=0:Y=50:W=0:gosub 110 | |
530 wait(120) | |
540 goto 420 |