零件清單: -
Arduino Nano - 2
L293D - 1
操縱桿 - 1
面包板-1
紙板 - 根據需要
腳輪 - 1
BO馬達 - 2
BO電動輪 - 2
LiPo電池 - 1
跳線 - 根據需要
步驟1:模塊規范
我們使用RF發射器接收器模塊(如上圖所示)將數據從我們的操縱桿傳輸到機器人。
變送器:
工作電壓:3V - 最大12V。電源使用12V
工作電流:最大值小于40mA,最小值為9mA
諧振模式:(SAW)
調制模式:ASK
工作頻率:Eve 315MHz或433MHz
傳輸功率:25mW(12V時為315MHz)
頻率誤差:+ 150kHz(最大值)
速度:小于10Kbps
因此該模塊將在開放區域內傳輸長達90米。
接收器:
工作電壓:5.0VDC + 0.5V
工作電流:最大≤5.5mA
工作方式:OOK/ASK
工作頻率:315MHz-433.92MHz
帶寬:2MHz
靈敏度:excel -100dBm(50Ω)
發射速度:《9.6Kbps(315MHz和-95dBm)
注意: - 使用可選天線會增加無線通信的有效性。一個簡單的電線就可以解決問題。
操縱桿 -
模擬操縱桿是在項目中添加一些控制的好方法。
我們需要5個連接到操縱桿。
連接是:鍵,Y,X,電壓和地。 “Y和X”是模擬,“鍵”是數字。
如果您不需要開關,那么您只能使用4個引腳。
第2步:原理圖
此模塊的連接非常簡單。
for Transmitter :
Vcc 》》》》 5V
ATAD 》》》 D4“您可以根據需要從軟件中進行更改”。
Gnd 》》》 Gnd
接收器:
Vcc 》》》》 5V
數據》》》 D2
Gnd 》》》 Gnd
操縱桿: -
Vcc的》》》》 5V
GND 》》》 GND
X 》》》 A0
Y》 》》 A1
Key 》》》 D2“只有在你需要使用它時才將它連接到arduino”
L293D: -
10 》》》 D6
15 》》》 D5
2 》》》 D9
7 》》》 D10
1,8,9,16 》》》 5V
4,5,12,13 》》》 GND
11,14 》》》電機A
3,6 》》》電機B
步驟3:代碼
只需將此代碼復制到Arduino IDE即可。你必須在一個Aduino程序中將發射器的代碼和接收器的代碼復制到另一個程序。
發射器的代碼將被上傳到操縱桿接口的arduino,接收器的代碼將被連接到機器人上的arduino。
發射器代碼: -
(注意: -
首先使用操縱桿進行校準串行監視器,以獲得你的操縱桿各自的值)。
AS我必須發送4個數據位,我使用了4個發送器腿來發送4位而不是一個數據位,如圖所示)
void setup(){
//將設置代碼放在這里,運行一次:
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
//Serial.begin(9600);
}
void loop(){
int a = analogRead(A0) ;
int b = analogRead(A1);
//Serial.print(a);
//Serial.print(“\\”);
//Serial.println(b);
if(b》 = 700& b 《1023& a》 = 500&& a 《= 540){
digitalWrite(5,0) );//FORWARD
digitalWrite(6,1);
digitalWrite(9,0);
digitalWrite(10,1);
}
if(b 《200& a》 = 500&& a 《= 540 ){
digitalWrite(5,1);//REVERSE
digitalWrite(6,0);
digitalWrite(9,1);
digitalWrite(10,0);
}
if(a》 = 700& a 《1023& b》 = 500 && b 《= 540){
digitalWrite(5,0);//right
digitalWrite(6,1);
digitalWrite(9,1);
digitalWrite(10,0);
}
if(a 《200& b》 = 500&& b 《= 540 ){
digitalWrite(5,1);//left
digitalWrite(6,0);
digitalWrite(9,0);
digitalWrite(10,1);
}
if(a》 = 500& a 《= 540& b》 = 500&& b 《= 540){
digitalWrite(5,0);//停止
digitalWrite(6,0);
digitalWrite(9,0);
digitalWrite(10,0);
}
}
接收者代碼: -
(注意: - 由于我必須接收4個數據位,我使用了4個接收器而不是一個數據位,如原理圖所示。
void setup (){
//將設置代碼放在這里,運行一次:
pinMode(9,INPUT);
pinMode(10,INPUT);
pinMode(11,INPUT);
pinMode(12,INPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT );
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
}
void loop(){
int a,b,c,d;
a = digitalRead(9);
b = digitalRead(10);
c = digitalRead(11);
d = digitalRead(12);
if(a == 0&& b == 1&& c == 0&& d == 1){
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(9, 1);
digitalWrite(10,0);
}
if(a == 1&& b == 0&& c == 1&& d == 0){
digitalWrite(5,0);
digita l寫(6,1);
digitalWrite(9,0);
digitalWrite(10,1);
}
if(a == 0&& b == 1&& c == 1&& d == 0){
digitalWrite(5,0);
digitalWrite(6,1);
digitalWrite(9,1);
digitalWrite(10,0);
}
if(a == 1&& b == 0&& c == 0&& d == 1){
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(9,0);
digitalWrite(10,1);
}
if(a == 0&& b == 0&& c == 0&& d == 0){
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(9,0);
digitalWrite(10,0);
}
}
-
機器人
+關注
關注
213文章
29474瀏覽量
211528 -
RF
+關注
關注
65文章
3170瀏覽量
168498
發布評論請先 登錄
評論