パソコンの画面を運転台にして模型を走らせる

2・マウスで車両を制御する

 

 パソコンからの信号を受けて線路に流す電流をコントロールする回路を作ります。

 部品の構成、配置は以下の通りです。

ブレッドボード  EIC−701
FT232RL USBシリアル変換モジュール
AVRマイコン ATMEGA328P
クリスタル(水晶発振子) 16MHz
タクトスイッチ
フルブリッジドライバーTA8428K
ダーリントン・トランジスタ 2SD1415A x2
積層セラミックコンデンサー0.1μF50V
電解コンデンサー10μF50V
ポリスイッチ500mA
整流用ショットキーダイオード x2
ACアダプタ 15V0.8A または 12V1A
ACアダプタジャック
ブレッドボード用ジャンパーワイヤー

 AVRマイコンには先に「互換マイコンを作る」を参考にブートローダーを書き込んでおいてください。

 マイコンに書き込むスケッチは以下になります。

void analogWrite3(int op1)
{
TCCR2A=0b00100011;
TCCR2B=0b00001010;
OCR2A=150;
OCR2B=op1;
}
void analogWrite10(int op2)
{
TCCR1A=0b00100011;
TCCR1B=0b00011010;
OCR1A=150;
OCR1B=op2;


void setup() {
Serial.begin(9600);
pinMode(3,OUTPUT);
pinMode(10,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
}
int v=0;
int v1=10;
int fw=1;

void loop(){
if (fw==1){
digitalWrite(13,LOW);
digitalWrite(12,HIGH); 
analogWrite3(v1);
digitalWrite(10,LOW);
}
else {
digitalWrite(12,LOW);
digitalWrite(13,HIGH);
analogWrite10(v1);
digitalWrite(3,LOW);
}
v=Serial.read();
if (v>0){
if (v<150){
v1=v;
}
if (v==201){
fw=1;
digitalWrite(13,LOW);
digitalWrite(3,LOW);
}
if (v==203){
fw=0;
digitalWrite(12,LOW);
digitalWrite(10,LOW);
}
}
delay(5);
}

 シリアル通信で0〜150を受け取ったときは、そのままPWMの出力とし、201・203を受け取った場合は、それぞれ進行方向を切り換えます。

 マイコン側の準備ができたらProcessingにも以下のスケッチを書き込みます。

 

 先ほどのスケッチにシリアル通信用の記述を追加しました。

import processing.serial.*;
Serial myPort;
void setup(){
  size (400,200);
 myPort=new Serial(this,"COM3",9600);
}
void draw(){
  background(0);
  ellipse (mouseX,100,20,20);
 int mx=mouseX/3;
 myPort.write(mx);
  delay(50);
}

 実行する前にcomポートの番号を、お使いのパソコンに合わせてください。

 マウスを動かすと円の位置に応じて車両の速度が変化したと思います。

1・Processingを使ってみよう

  3・進行方向を切り換える

【送料無料】電脳Arduinoでちょっと未来を作る

【送料無料】電脳Arduinoでちょっと未来を作る
価格:1,890円(税込、送料込)

inserted by FC2 system