第1步:項目介紹
這個項目/instructables展示了如何通過遙控器操作nerf槍。 nerf槍放在支架上,部件是3D打印和激光切割。那樣,nerf槍能夠自立站立。
nerf槍旋轉(zhuǎn)并在x軸和y軸上移動,這使得它能夠向上,向下,向左和向右移動。然而,還存在一種尺寸z軸。這是“Fire”功能,可以讓nerf槍射擊。
nerf槍連接到藍(lán)牙模塊,與移動應(yīng)用程序通信,因此可以控制通過應(yīng)用程序的nerf槍。
第2步:第1步:設(shè)備
材料:
1 x Nerfgun炮塔
1 x Arduino Mega 2560板(通過USB連接到計算機(jī))
1 x面包板
大量跳線
1 x電源
1 x繼電器
2 x Pololu a4988
2 x Nema 17 hybrid步進(jìn)電機(jī)2相
2 x超聲波傳感器HC-SR02
1 x HC-05藍(lán)牙模塊
機(jī)械設(shè)備:
某種裝配/固定,
4 x滾珠軸承
步驟3:Fablab
我們用fablab做了一些機(jī)械方法nerf槍的設(shè)備。目標(biāo)是使nerfgun獨立,這就是我們使用Fablab的原因。
在Fablab中,我們設(shè)計,3D打印和激光切割一些機(jī)械設(shè)備,這使得nerfgun現(xiàn)在可以自立,并與藍(lán)牙通信一起工作,無需任何物理人體交互。
持有人/配件:
- 一種擬合
擬合是3D打印和制作,使其完美地適合nerfgun的側(cè)面。
配件的輪廓/草圖由3D掃描儀創(chuàng)建。之后,在最終打印之前,在 vxelements 中編輯了大綱,大約需要12個小時。
其余的機(jī)械設(shè)備:
- 兩個齒輪。
其余設(shè)備均由木材制成。草圖分別在Illustrator和AutoCAD中制作。
當(dāng)最終的草圖完成后,它被激光切割。
步驟4:步驟4:工作原理
第一個視頻顯示了nerf槍如何僅使用操縱桿工作。
第二個視頻顯示了如何使用與藍(lán)牙模塊通信的Android應(yīng)用程序。
步驟5:引腳連接
2 x Nema 17:
sx = pin 2(步驟x軸)
dirx = pin 3 (方向x軸。
sy =針腳4(步驟y軸)
diry =針腳5(方向y軸)
超聲波傳感器
trigPin1 = 12
echoPin1 = 13
trigPin2 = 51
echoPin2 = 49
模擬操縱桿:
模擬x -axis = A0
模擬y軸= A1
開關(guān)=引腳6
繼電器:
接力=第7針
藍(lán)牙:
Bluetooth_RXD = Arduino_TXD
Bluetooth_TXD = Arduino_RX
步驟6:連接設(shè)備
將超聲波傳感器插入面包板。
1)連接超聲波傳感器上的 GND 連接到 GND Arduino引腳。
2)將 VCC 連接到 5V Arduino引腳。
3)將 trig 連接到 Arduino Board上的引腳51。 4)連接 echo 在 Arduino Board上固定49位。
模擬操縱桿: 1)連接《將》 VCC 和 GND 引腳分別連接到面包板上的正極和負(fù)極導(dǎo)軌。
2)將 V引腳連接到A1 在Arduino板上,以及Arduino板上的 H引腳到A0 。3)此外, A1引腳需要連接到 Nema 17 stepper
Pololu a4988:
1)將Nema 17連接到電機(jī)引腳在pololu上。
2)將Step引腳連接到Arduino引腳。
3)將Direction引腳連接到Arduino引腳。
4)將它分別連接到Arduino上的12V和GNd以及5V。
藍(lán)牙: 1)分別連接 VCC 和 GND 引腳到面包板上的正負(fù)軌。
2)將藍(lán)牙的RXD 引腳連接到 TXD Arduino 引腳(此處使用電阻以避免燒毀模塊)
3)連接藍(lán)牙的TXD 引腳連接到 RXD Arduino 引腳。
將Nerfgun連接到電路:
1)將正極和負(fù)極線連接到繼電器。
2)將繼電器連接到電源。
第7步:Fritzing
步驟8:代碼細(xì)分
解釋了部分代碼:
if(Serial.available() 》 0)
{
state = Serial.read(); //Read the incoming data and store it into variable Incoming_value
Serial.print(state); //Print Value of Incoming_value in Serial monitor
Serial.print(“ ”); //New line
}
此處它從藍(lán)牙模塊讀取輸入數(shù)據(jù)并將其保存在變量“狀態(tài)”。
//Read the joystick.
joyx = analogRead(A0);
joyy = analogRead(A1);
notPressed = digitalRead(inPressed);
if ( notPressed == 0 || state == 8)
{
// Serial.print(notPressed);
digitalWrite(relay, HIGH);
}
else{
digitalWrite(relay, LOW);
}
這部分代碼讀取bluetoothmodule。如果按下操縱桿(notPressed == 0)并且藍(lán)牙“開火”按鈕是(狀態(tài)== 8),繼電器將激活并使nerf槍射擊。否則它將保持不活動狀態(tài)。
steppermotor根據(jù)操縱桿方向/位置移動。
if (joyx 《 550 && joyx 》 450 || joyy 《 550 && joyy 》 450 )
{
digitalWrite(dirx, LOW);
digitalWrite(diry,LOW);
digitalWrite(sx, LOW);
digitalWrite(sy, LOW);
// digitalWrite(relay, LOW);
當(dāng)操縱桿處于此位置時,軸不會移動,繼電器將保持不活動狀態(tài)。
//The x, axis will start and move to the left
if (joyx 》 550 || state == 1 )
{
digitalWrite(dirx, LOW);
digitalWrite(sx, HIGH);
delay (fart);
digitalWrite(sx, LOW);
delay(fart);
curstepx++;
} //The axis will start moving right.
if (joyx 《 450 || state == 2)
{
digitalWrite(dirx, HIGH);
digitalWrite(sx, HIGH);
delay (fart);
digitalWrite(sx, LOW);
delay(fart);
curstepx--;
} // The y-axis will start moving.
if (joyy 》 550 || state == 4)
{
digitalWrite(diry, LOW);
digitalWrite(sy, HIGH);
delay (fart);
digitalWrite(sy, LOW);
delay(fart);
curstepy++;
} // The y-axis will start moving up or down.
if (joyy 《 450 || state == 5)
{
digitalWrite(diry, HIGH);
digitalWrite(sy, HIGH);
delay (fart);
digitalWrite(sy, LOW);
delay(fart);
curstepy--;
}
根據(jù)操縱桿的位置/方向,電機(jī)將向上,向下,向右或向左移動。該代碼還顯示,根據(jù)Android應(yīng)用程序的輸入,電機(jī)將根據(jù)該移動。
這是傳感器的代碼。
// long duration1, distance1;
// digitalWrite(trigPin1, LOW); // Added this line
// delayMicroseconds(2); // Added this line
// digitalWrite(trigPin1, HIGH);
// delayMicroseconds(10); // Added this line
// digitalWrite(trigPin1, LOW);
// duration1 = pulseIn(echoPin1, HIGH);
// distance1 = (duration1/2) / 29.1;
////
//// if (distance1 《 10 || distance1 《= 0){
//// Serial.println(“SHOOT!”);
//// digitalWrite(relay, HIGH);
//// delay(1000);
//// digitalWrite(relay, LOW);
////
//// }
// Serial.print(“Sensor1 ”);
// Serial.print(distance1);
// Serial.println(“cm”);
這是第一個放置的傳感器在nerf槍槍管。傳感器測量距離,如果物體在10厘米以內(nèi),它將激活繼電器并使槍射向目標(biāo)。
傳感器2的代碼:
//long duration2, distance2;
// digitalWrite(trigPin2, LOW); // Added this line
// delayMicroseconds(2); // Added this line
// digitalWrite(trigPin2, HIGH);
// delayMicroseconds(10); // Added this line
// digitalWrite(trigPin2, LOW);
// duration2 = pulseIn(echoPin2, HIGH);
// distance2= (duration2/2) / 29.1; // if (distance2 《= 10 ){
// Serial.println(“BEHIND ME!”);
// for (i = 0; i 《 100; i++) {
// digitalWrite(dirx, LOW);
// digitalWrite(sx, HIGH);
// delay (fart);
// digitalWrite(sx, LOW);
// delay(fart);
// curstepx++;}
//
// }
//
// }
//
// else {
// Serial.print(“Sensor2 ”);
// Serial.print(distance2);
// Serial.println(“cm”);
// }
這部分基本上像部件一樣工作對于傳感器1.唯一的區(qū)別是,它不會激活繼電器。當(dāng)對象在10厘米范圍內(nèi)時,它會做出反應(yīng)。
請注意,代碼的某些部分無法正常工作,這就是為什么它們被作為注釋放置的原因。我們?nèi)栽趪L試調(diào)試程序并解決錯誤。它可能與導(dǎo)線的連接方式有關(guān),如果導(dǎo)線有點不穩(wěn)定,則會導(dǎo)致錯誤并使硬件失效。或者如果代碼不正確,它還會導(dǎo)致硬件的工作方式與最初計劃/思考的不同。
步驟9:藍(lán)牙模塊通信
我們使用了HC-05藍(lán)牙模塊,可以使用我們的手機(jī)來控制nerf槍。
HC-05模塊是藍(lán)牙SPP(串行端口協(xié)議)模塊,這意味著它通過串行通信與Arduino通信。
det數(shù)據(jù)引腳的電壓電平為3.3V。 Arduino TX(具有5V輸出)和藍(lán)牙模塊RX(僅支持3.3V)之間的線路需要通過電阻連接,以免燒毀藍(lán)牙模塊。但是藍(lán)牙模塊TX引腳和Arduino RX引腳之間的線路可以直接連接,因為Arduino接受來自藍(lán)牙模塊的3.3V信號為高邏輯。
上傳代碼時,您必須拔掉TX和RX線,因為上傳Arduino時使用串行通信,因此引腳RX和TX正忙。
然后你必須激活藍(lán)牙,你的手機(jī)才能找到HC-05藍(lán)牙模塊。
步驟10:移動應(yīng)用程序
Android應(yīng)用程序旨在將串行數(shù)據(jù)發(fā)送到Arduino藍(lán)牙模塊在應(yīng)用程序上按下按鈕。
該應(yīng)用程序是在MIT App Inventor中制作的,它由六個按鈕組成。
1) 選擇藍(lán)牙: 在手機(jī)上激活藍(lán)牙,它會找到HC-05藍(lán)牙模塊。將手機(jī)連接到模塊,連接完成后,按鈕下方的文字會顯示“已連接”。
2) 左鍵: 只要“Left”《,就會向“1”整數(shù)《按下/em》按鈕。它會使nerf槍在x軸上向左旋轉(zhuǎn)。第二個你停止按下按鈕,整數(shù)“0”被發(fā)送到Arduino Board。
3)右鍵: 只要按下“Right”按鈕,就會向“2”整數(shù)。它會使nerf槍在x軸上向右旋轉(zhuǎn)。第二個你停止按下按鈕,整數(shù)“0”被發(fā)送到Arduino Board。
4)消防按鈕: 只要按下“Fire”按鈕,就會向“8”整數(shù)。它會導(dǎo)致nerf槍射擊/射擊某物。第二個你停止按下按鈕,整數(shù)“0”被發(fā)送到Arduino Board。
5)向上按鈕: 只要按下“向上”按鈕,就會向“4”整數(shù)。它會使nerf槍向上移動 - 在y軸上。第二個你停止按下按鈕,整數(shù)“0”被發(fā)送到Arduino Board。
6)向下按鈕: 只要按下“向下”按鈕,就會向“5”整數(shù)。這將導(dǎo)致nerf槍向下移動 - 在y軸上。第二個你停止按下按鈕,整數(shù)“0”被發(fā)送到Arduino Board。
-
遙控器
+關(guān)注
關(guān)注
18文章
856瀏覽量
68193
發(fā)布評論請先 登錄
無線比例電機(jī)轉(zhuǎn)速遙控器的設(shè)計
藍(lán)牙語音遙控器:智能家居的智慧控制核心

用射頻芯片開發(fā)的家電遙控器特點介紹

藍(lán)牙語音遙控器:智能家居的智慧控制核心
藍(lán)牙語音遙控器 低功耗芯片選型HS6621CxC/OM6621
我的DIY遙控器——小擺件遠(yuǎn)程控
四頻拷貝遙控器走俏海外

技術(shù)再進(jìn)化——工業(yè)遙控器技術(shù)要求更高
數(shù)字遙控器

定制遙控器主要分為哪些步驟?
RF遙控器廠家:射頻遙控器將成為未來的控制主流
如何選購適合的拷貝遙控器——增配遙控器教程來啦

遙控器解碼器怎么使用
藍(lán)牙語音遙控器方案

433M 通訊技術(shù)無線遙控器芯片CMT2300A

評論