【デジタル入力(触覚センサー)】
MYUUSB-1基板はデジタル入力ポートを4個(In1-In4)持っています。デジタル入力の場合、各ポートはソフトプルアップされHighとなっていて触覚がなにかに触れると入力ポートのIn2(左)またはIn3(右)がアースされLowになり壁などを感知できます。
触覚センサーの制御プログラムは、MYU-USB転送ソフトの解説をご覧ください。
基板の回路図はこちら ※In1はタクトスイッチに接続されています。
【アナログ入力(距離センサー)】
MYUUSB-1基板は2-8チャンネルのアナログ入力ポートを持っています。アナログポートはモーター制御のポートと重なるので通常はAN10とAN11を使ってください。
デジタル入力が有るか無いか'1'か'0'を返すのに対し、アナログ入力は入力電圧を8BIT(0-255)または10BIT(0-1023)の値として返します。アナログ入力は、AN命令を実行することで可能になります。
アナログポートは距離や加速度・温度などのセンサーを使った計測が可能です。
右はAN10に距離センサーを接続したものです。
◆距離センサー(GP2Y0A21YK0F)
動作電圧は4.5V〜5.5V、測定可能距離は約10cm〜80cm
センサーは壁までの距離によって出力電圧が変化します。それを基板のAN10に接続し距離を計測します。
※秋月付属のコードは黒が+、朱が−ですので注意してください。またAN10と-Vの間に5Kぐらいの抵抗を入れる必要があります。
●リアルタイムアナログ計測
基板とPCを転送ケーブルで接続、MYUUSB.EXEを立ち上げ、計測/R実行ボタンを押すと右のダイヤログが現れリアルタイム計測が出来ます。
AN10計測ボタンを押してください。壁までの距離によってアナログ値がリアルタイムで変化するのが解ります。制御プログラムのしきい値設定などの参考にできます。
下は距離センサーのデータと実際の計測結果です。これらを参考に制御プログラムを作ります。

◆距離センサーの計測結果
| 距離 cm |
7 |
8 |
10 |
12 |
15 |
20 |
25 |
30 |
40 |
50 |
60 |
70 |
80 |
| アナログ値 |
152 |
140 |
122 |
108 |
85 |
67 |
56 |
47 |
37 |
32 |
28 |
26 |
26 |
//距離センサーを使って一定の距離で止まるロボット(MYUUSB.EXE)
繰り返す{ //{..}内を繰り返し実行
AN,10 //AN10のアナログ値を計測、Aレジスタにセット
もし(A < 60){ //壁が遠い場合(Aレジスタ値:0-59)
前進
}
そうでなければ(A < 100){ //(Aレジスタ値:60-99)
停止
}
そうでなければ{ //壁に近づきすぎたら(Aレジスタ値:100-255)
後退
}
}
//一定の距離で止まるロボット(MYU-USBBASIC)
Byte A //変数Aの宣言
Do
A=AN(10) //AN10のアナログ値を8BITで取得
If A<60 Then //壁が遠い場合
前進
ElseIf A<100 Then
停止
Else //壁に近づきすぎたら
後退
ENdIf
Loop
●RCサーボの制御
サーボ命令は、第1引数の値mでサーボ角を、第2引数の値nでサーボ番号を指定します。
※サーボ角の中立位置は、MYUUSB-1A基板の場合は 140、MYURUBU-1A基板の場合は 185 前後となります。
※S1に接続した場合、サーボ番号は 1 となります。
※サーボは電圧3V以下では動作しません。3.5V以上での利用をお勧めします。
※サーボ命令を実行すると20msecごとにタイマーがクリアされます。
サーボ,m,n ※転送ソフトの命令
Servo m,n ※MYU BASIC の命令
m n サーボ ※ドリトルの命令
使用例(転送ソフト) ※サーボ命令と時間設定可能な命令と組み合わせて使います。
サーボ,150,1 //S1のサーボ角を150
サーボ,180,2 //S2のサーボ角を180
前進,10 //前進1秒
サーボ,120,1 //S1のサーボ角を120
サーボ,150,2 //S2のサーボ角を150
停止,10 //停止1秒
●アナログ入力を使ったサーボ制御
右図のように10Kのボリューム(B型)をアナログポート(MYUUSB-1A基板はAN10、MYUROBO-1A基板はIn4)に接続すると簡単なプログラムでサーボをコントロールできます。ボリュームを回すとそれに比例してサーボが動きます。
//ボリュームコントロール(転送ソフト)
繰り返す{
AN,10 //AN10のアナログ値をAレジスタにセット、MYUROBO-1A基板の場合は、AN,4
サーボ,A,1 //Aレジスタの値をS1のサーボ角にセット
}
//ボリュームコントロール(MYU BASIC)
Do
Servo AN(10),1 //AN10のアナログ値をS1のサーボ角にセット、MYUROBO-1A基板はAN(4)
Loop
●パソコンからサーボのリモート操作
パソコンと基板を転送ケーブルで接続、計測/R実行ボタンを押すと右のダイヤログが現れサーボをリモコン操作できます。
●ゆっくり連続的にサーボを動かす
Aレジスタや変数を使いサーボをゆっくり動かします。
//(転送ソフト)
A,100 //Aレジスターの値を100にする
繰り返す(A < 200){ //Aレジスタが200以下の間、{・・}内を繰り返す
サーボ,A,1 //Aレジスタの値をS1のサーボ角にセット
待つ,1 //0.1秒の待ち
ADD,1 //Aレジスタに1加える
}
//(MYU BASIC) Byte S //変数Sを宣言 For S=100 To 199 //Sの値を100から199まで1づつ増やす Servo S,1 //Sの値をS1のサーボ角にセット Wait 1 //0.1秒の待ち
Next
|