第1步:項目介紹
這個項目/instructables展示了如何通過遙控器操作nerf槍。 nerf槍放在支架上,部件是3D打印和激光切割。那樣,nerf槍能夠自立站立。
nerf槍旋轉并在x軸和y軸上移動,這使得它能夠向上,向下,向左和向右移動。然而,還存在一種尺寸z軸。這是“Fire”功能,可以讓nerf槍射擊。
nerf槍連接到藍牙模塊,與移動應用程序通信,因此可以控制通過應用程序的nerf槍。
第2步:第1步:設備
材料:
1 x Nerfgun炮塔
1 x Arduino Mega 2560板(通過USB連接到計算機)
1 x面包板
大量跳線
1 x電源
1 x繼電器
2 x Pololu a4988
2 x Nema 17 hybrid步進電機2相
2 x超聲波傳感器HC-SR02
1 x HC-05藍牙模塊
機械設備:
某種裝配/固定,
4 x滾珠軸承
步驟3:Fablab
我們用fablab做了一些機械方法nerf槍的設備。目標是使nerfgun獨立,這就是我們使用Fablab的原因。
在Fablab中,我們設計,3D打印和激光切割一些機械設備,這使得nerfgun現在可以自立,并與藍牙通信一起工作,無需任何物理人體交互。
持有人/配件:
- 一種擬合
擬合是3D打印和制作,使其完美地適合nerfgun的側面。
配件的輪廓/草圖由3D掃描儀創建。之后,在最終打印之前,在 vxelements 中編輯了大綱,大約需要12個小時。
其余的機械設備:
- 兩個齒輪。
其余設備均由木材制成。草圖分別在Illustrator和AutoCAD中制作。
當最終的草圖完成后,它被激光切割。
步驟4:步驟4:工作原理
第一個視頻顯示了nerf槍如何僅使用操縱桿工作。
第二個視頻顯示了如何使用與藍牙模塊通信的Android應用程序。
步驟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
開關=引腳6
繼電器:
接力=第7針
藍牙:
Bluetooth_RXD = Arduino_TXD
Bluetooth_TXD = Arduino_RX
步驟6:連接設備
將超聲波傳感器插入面包板。
1)連接超聲波傳感器上的 GND 連接到 GND Arduino引腳。
2)將 VCC 連接到 5V Arduino引腳。
3)將 trig 連接到 Arduino Board上的引腳51。 4)連接 echo 在 Arduino Board上固定49位。
模擬操縱桿: 1)連接《將》 VCC 和 GND 引腳分別連接到面包板上的正極和負極導軌。
2)將 V引腳連接到A1 在Arduino板上,以及Arduino板上的 H引腳到A0 。3)此外, A1引腳需要連接到 Nema 17 stepper
Pololu a4988:
1)將Nema 17連接到電機引腳在pololu上。
2)將Step引腳連接到Arduino引腳。
3)將Direction引腳連接到Arduino引腳。
4)將它分別連接到Arduino上的12V和GNd以及5V。
藍牙: 1)分別連接 VCC 和 GND 引腳到面包板上的正負軌。
2)將藍牙的RXD 引腳連接到 TXD Arduino 引腳(此處使用電阻以避免燒毀模塊)
3)連接藍牙的TXD 引腳連接到 RXD Arduino 引腳。
將Nerfgun連接到電路:
1)將正極和負極線連接到繼電器。
2)將繼電器連接到電源。
第7步:Fritzing
步驟8:代碼細分
解釋了部分代碼:
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
}
此處它從藍牙模塊讀取輸入數據并將其保存在變量“狀態”。
//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)并且藍牙“開火”按鈕是(狀態== 8),繼電器將激活并使nerf槍射擊。否則它將保持不活動狀態。
steppermotor根據操縱桿方向/位置移動。
if (joyx 《 550 && joyx 》 450 || joyy 《 550 && joyy 》 450 )
{
digitalWrite(dirx, LOW);
digitalWrite(diry,LOW);
digitalWrite(sx, LOW);
digitalWrite(sy, LOW);
// digitalWrite(relay, LOW);
當操縱桿處于此位置時,軸不會移動,繼電器將保持不活動狀態。
//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--;
}
根據操縱桿的位置/方向,電機將向上,向下,向右或向左移動。該代碼還顯示,根據Android應用程序的輸入,電機將根據該移動。
這是傳感器的代碼。
// 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厘米以內,它將激活繼電器并使槍射向目標。
傳感器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.唯一的區別是,它不會激活繼電器。當對象在10厘米范圍內時,它會做出反應。
請注意,代碼的某些部分無法正常工作,這就是為什么它們被作為注釋放置的原因。我們仍在嘗試調試程序并解決錯誤。它可能與導線的連接方式有關,如果導線有點不穩定,則會導致錯誤并使硬件失效。或者如果代碼不正確,它還會導致硬件的工作方式與最初計劃/思考的不同。
步驟9:藍牙模塊通信
我們使用了HC-05藍牙模塊,可以使用我們的手機來控制nerf槍。
HC-05模塊是藍牙SPP(串行端口協議)模塊,這意味著它通過串行通信與Arduino通信。
det數據引腳的電壓電平為3.3V。 Arduino TX(具有5V輸出)和藍牙模塊RX(僅支持3.3V)之間的線路需要通過電阻連接,以免燒毀藍牙模塊。但是藍牙模塊TX引腳和Arduino RX引腳之間的線路可以直接連接,因為Arduino接受來自藍牙模塊的3.3V信號為高邏輯。
上傳代碼時,您必須拔掉TX和RX線,因為上傳Arduino時使用串行通信,因此引腳RX和TX正忙。
然后你必須激活藍牙,你的手機才能找到HC-05藍牙模塊。
步驟10:移動應用程序
Android應用程序旨在將串行數據發送到Arduino藍牙模塊在應用程序上按下按鈕。
該應用程序是在MIT App Inventor中制作的,它由六個按鈕組成。
1) 選擇藍牙: 在手機上激活藍牙,它會找到HC-05藍牙模塊。將手機連接到模塊,連接完成后,按鈕下方的文字會顯示“已連接”。
2) 左鍵: 只要“Left”《,就會向“1”整數《按下/em》按鈕。它會使nerf槍在x軸上向左旋轉。第二個你停止按下按鈕,整數“0”被發送到Arduino Board。
3)右鍵: 只要按下“Right”按鈕,就會向“2”整數。它會使nerf槍在x軸上向右旋轉。第二個你停止按下按鈕,整數“0”被發送到Arduino Board。
4)消防按鈕: 只要按下“Fire”按鈕,就會向“8”整數。它會導致nerf槍射擊/射擊某物。第二個你停止按下按鈕,整數“0”被發送到Arduino Board。
5)向上按鈕: 只要按下“向上”按鈕,就會向“4”整數。它會使nerf槍向上移動 - 在y軸上。第二個你停止按下按鈕,整數“0”被發送到Arduino Board。
6)向下按鈕: 只要按下“向下”按鈕,就會向“5”整數。這將導致nerf槍向下移動 - 在y軸上。第二個你停止按下按鈕,整數“0”被發送到Arduino Board。
-
遙控器
+關注
關注
18文章
841瀏覽量
66651
發布評論請先 登錄
相關推薦
技術再進化——工業遙控器技術要求更高
數字遙控器
![數字<b class='flag-5'>遙控器</b>](https://file1.elecfans.com/web3/M00/05/0B/wKgZPGd8iaeAMV6EAACg9PEGnP4202.png)
定制遙控器主要分為哪些步驟?
RF遙控器廠家:射頻遙控器將成為未來的控制主流
如何選購適合的拷貝遙控器——增配遙控器教程來啦
![如何選購適合的拷貝<b class='flag-5'>遙控器</b>——增配<b class='flag-5'>遙控器</b>教程來啦](https://file1.elecfans.com//web3/M00/03/E3/wKgZO2ds8FyARGNhAAGIrqv8zmU287.jpg)
遙控器解碼器怎么使用
多元傳感測量系統測量遙控器:技術挑戰與應用探索
![多元傳感測量系統測量<b class='flag-5'>遙控器</b>:技術挑戰與應用探索](https://file1.elecfans.com/web2/M00/C5/15/wKgZomX6TsCABXxpAAB8810vuAA095.png)
評論