成員:411114226 江昀臻
學長:吳宜軒 來宸鋒
作品介紹
大家小時候都玩過遙控車吧!我就是想做一台遙控車,這會需要做一個獨立的車與遙控器,它們需要以藍芽連接,有各自的電源與開發板。
車子
遙控器
程式碼
車子:
#include <SoftwareSerial.h>
char BTcmd;
SoftwareSerial BT(10,11);
int A_1A=4;
int A_1B=5;
int B_1A=6;
int B_1B=7;
void setup()
{
Serial.begin(9600);
BT.begin(9600);
pinMode(A_1A,OUTPUT);
pinMode(A_1B,OUTPUT);
pinMode(B_1A,OUTPUT);
pinMode(B_1B,OUTPUT);
digitalWrite(A_1A,LOW);
digitalWrite(A_1B,LOW);
digitalWrite(B_1A,LOW);
digitalWrite(B_1B,LOW);
}
//車子停止
void stopcar(){
digitalWrite(A_1A,LOW);
digitalWrite(A_1B,0);
digitalWrite(B_1A,LOW);
digitalWrite(B_1B,0);
}
//車子向前走
void go(){
digitalWrite(A_1A,HIGH);
analogWrite(A_1B,-255);
digitalWrite(B_1A,HIGH);
analogWrite(B_1B,-255);
}
//車子向後走
void back(){
digitalWrite(A_1A,LOW);
analogWrite(A_1B,255);
digitalWrite(B_1A,LOW);
analogWrite(B_1B,255);
}
//車子右轉
void left(){
digitalWrite(A_1A,LOW);
analogWrite(A_1B,0);
digitalWrite(B_1A,HIGH);
analogWrite(B_1B,-255);
}
//車子左轉
void right(){
digitalWrite(A_1A,HIGH);
analogWrite(A_1B,-255);
digitalWrite(B_1A,LOW);
analogWrite(B_1B,0);
}
void loop()
{
if (BT.available())
{
BTcmd=BT.read();
Serial.println(BTcmd);
if ('W' == BTcmd) go();
else if ('A' ==BTcmd)left();
else if ('S' ==BTcmd) back();
else if ('D' == BTcmd) right();
else stopcar();
delay(200);
}
else{
stopcar();
delay(200);
}
Serial.flush();
}
遙控器:
#include <SoftwareSerial.h>
SoftwareSerial BT(10,11);
int D=7 ;
int buttonStateD=0;
int S=6 ;
int buttonStateS=0;
int W=5 ;
int buttonStateW=0;
int A=4 ;
int buttonStateA=0;
void setup() {
Serial.begin(9600);
pinMode(D,INPUT);
pinMode(S,INPUT);
pinMode(W,INPUT);
pinMode(A,INPUT);
BT.begin(9600);
Serial.println("ready");
}
void loop() {
buttonStateD=digitalRead(D);
buttonStateS=digitalRead(S);
buttonStateW=digitalRead(W);
buttonStateA=digitalRead(A);
if (buttonStateD==0){
BT.write("D");
Serial.println("D");
}
if (buttonStateS==0){
BT.write("S");
Serial.println("S");
}
if (buttonStateW==0){
BT.write("W");
Serial.println("W");
}
if (buttonStateA==0){
BT.write("A");
Serial.println("A");
}
delay(200);
}
心得
完成時真的超開心超有成就感的!甚至強迫正要睡覺的室友起來看(?
作後的成果跟我一開始想像的大概有90%像,過程中遇到很多問題,小問題像是東西買錯、買來的是壞掉的,這重新買就好。大問題像是藍芽連不上(結果是只要設定好,充新連接電源就會自動連接,但我上網查資料時都是看到教怎麼設定,講完設定後就說連上了???害我嘗試了n次各種不同的設定,連HC-05藍芽模組的所有指令集都翻出來研究了,要不是突發奇想有點放棄擺爛的嘗試,看看直接開會怎樣,結果就連上了?!我還想說誰的設計這麼不人性化,每次都要手動進入AT模式連接,結果是我的問題)、線一直斷開(因為線太細,焊接技術不好又一直動來動去,線斷了四五次,最後改成很粗的線)
這堂課真的修的挺開心的,我一直蠻喜歡動手做一些東西,尤其是把自己想像的東西實現很有成就感很快樂,也感謝幫助我的學長吳宜軒學長、來宸鋒學長,時不時地來提醒我們該有進度了,有任何問題都可以問他們,沒有他們的催促我可能會做不完,這點真的是超級感謝的!!最後來看看我的成果吧!
成果展示