0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

100元用Arduino做一個(gè)RC遙控飛機(jī)

伊娃老師來(lái)了 ? 來(lái)源:伊娃來(lái)了 ? 作者:伊娃來(lái)了 ? 2023-02-11 02:09 ? 次閱讀

視頻時(shí)間

1.遙控器與飛機(jī)的電子設(shè)計(jì)與編程:0:45

2.飛機(jī)主體的搭建制作:4:50

制作需要準(zhǔn)備

2 x Arduino Nano

1 x NRF24L01 + PA 無(wú)線收發(fā)模塊

1 x NRF24L01 無(wú)線收發(fā)模塊

2 x Arduino joystick

2 x 100uF 電容 (16V 以上)

1 x 13 * 6 cm PCB 電木板

1 x 5 * 3.5 cm PCB 電木板

3 x SG90 舵機(jī)

1 x 20A ESC 電子調(diào)速器

2 x 7.4V 450Mah 2S 鋰電池

1 x DC 180 Motor 39000 RPM 電機(jī)+螺旋槳

5mmKT板/泡沫板/雪弗板

舵機(jī)夾頭、金屬調(diào)節(jié)器、1mm鐵絲

視頻內(nèi)容

今天就給大家分享一個(gè)油管上KendinYap,K大的Arduino的低成本無(wú)線遙控飛機(jī),總共材料費(fèi)用是在100元左右。

061f097a-a96e-11ed-a826-dac502259ad0.png

除了遙控飛機(jī),今天介紹的制作方式也可以應(yīng)用在制作無(wú)人機(jī)、遙控車、遙控船這類東西,解說(shuō)分成遙控器跟飛機(jī)兩部分。

066062ee-a96e-11ed-a826-dac502259ad0.png

遙控器能夠控制3個(gè)舵機(jī)跟1個(gè)直流電機(jī),這里的控制主板選用的是Arduino Nano,應(yīng)該是為了降低成本,因?yàn)檫b控器本身需要連接的電子元件并不多,控制飛機(jī)用了兩個(gè)Joystick搖桿、一個(gè)NRF24L01PA的大功率無(wú)線收發(fā)模塊、一個(gè)100微法的電容、1個(gè)7.4V的鋰電池。

06a36d14-a96e-11ed-a826-dac502259ad0.png

077903f2-a96e-11ed-a826-dac502259ad0.png

飛機(jī)上使用的一樣是Arduino Nano,3個(gè)SG90舵機(jī)、1個(gè)39000轉(zhuǎn)的直流電機(jī)、100微法的電容、一個(gè)30A雙向有刷電調(diào),1個(gè)NRF24L01無(wú)線收發(fā)模塊,一個(gè)7.4V鋰電池。

07a751a8-a96e-11ed-a826-dac502259ad0.png

07da97d4-a96e-11ed-a826-dac502259ad0.png

機(jī)身的尺寸是45.3厘米,屬于偏迷你大小的飛機(jī),這里制作采用的是泡沫板/PVC板/雪弗板/KT板,使用熱熔膠槍粘合。

083ff778-a96e-11ed-a826-dac502259ad0.png

連桿機(jī)構(gòu)使用了舵機(jī)夾頭跟金屬調(diào)節(jié)器。

0896d160-a96e-11ed-a826-dac502259ad0.png

08dff93a-a96e-11ed-a826-dac502259ad0.png

遙控器電路圖

0922fcd0-a96e-11ed-a826-dac502259ad0.jpg

遙控器Arduino代碼

// 4 Channel Transmitter | 4 Kanal Verici #include #include #include const uint64_t pipeOut = 0xE9E8F0F0E1LL; //IMPORTANT: The same as in the receiver 0xE9E8F0F0E1LL | Bu adres al?c? ile ayn? olmal?RF24 radio(7, 8); // select CE,CSN pin | CE ve CSN pinlerin se?imi struct Signal {byte throttle;byte pitch;byte roll;byte yaw;}; Signal data; void ResetData(){data.throttle = 127; // Motor Stop (254/2=127)| Motor Kapal? (Signal lost position | sinyal kesildi?indeki pozisyon)data.pitch = 127; // Center | Merkez (Signal lost position | sinyal kesildi?indeki pozisyon)data.roll = 127; // Center | merkez (Signal lost position | sinyal kesildi?indeki pozisyon)data.yaw = 127; // Center | merkez (Signal lost position | sinyal kesildi?indeki pozisyon)} void setup(){//Start everything up radio.begin();radio.openWritingPipe(pipeOut);radio.stopListening(); //start the radio comunication for Transmitter | Verici olarak sinyal ileti?imi ba?lat?l?yorResetData();} // Joystick center and its borders | Joystick merkez ve s?n?rlar? int mapJoystickValues(int val, int lower, int middle, int upper, bool reverse){val = constrain(val, lower, upper);if ( val < middle )val = map(val, lower, middle, 0, 128);elseval = map(val, middle, upper, 128, 255);return ( reverse ? 255 - val : val );} void loop(){// Control Stick Calibration | Kumanda Kol Kalibrasyonlar?// Setting may be required for the correct values of the control levers. | Kollar?n do?ru de?erleri i?in ayar gerekebilir. data.throttle = mapJoystickValues( analogRead(A0), 524, 524, 1015, true );data.roll = mapJoystickValues( analogRead(A1), 12, 524, 1020, true ); // "true" or "false" for servo direction | "true" veya "false" servo y?nünü belirlerdata.pitch = mapJoystickValues( analogRead(A2), 12, 524, 1020, true ); // "true" or "false" for servo direction | "true" veya "false" servo y?nünü belirlerdata.yaw = mapJoystickValues( analogRead(A3), 12, 524, 1020, true ); // "true" or "false" for servo direction | "true" veya "false" servo y?nünü belirler radio.write(&data, sizeof(Signal));}?

飛機(jī)上的電路主板也是用Arduino Nano,3個(gè)SG90舵機(jī)、1個(gè)39000轉(zhuǎn)的直流電機(jī)、100微法的電容、一個(gè)30A雙向有刷電調(diào),1個(gè)NRF24L01無(wú)線收發(fā)模塊,一個(gè)7.4V鋰電池。

飛機(jī)控制電路圖

0946d876-a96e-11ed-a826-dac502259ad0.jpg

飛機(jī)控制Arduino代碼

// 4 Channel Receiver | 4 Kanal Al?c?// PWM output on pins D2, D3, D4, D5 (??k?? pinleri) #include #include #include #include int ch_width_1 = 0;int ch_width_2 = 0;int ch_width_3 = 0;int ch_width_4 = 0; Servo ch1;Servo ch2;Servo ch3;Servo ch4; struct Signal {byte throttle;byte pitch;byte roll;byte yaw;}; Signal data; const uint64_t pipeIn = 0xE9E8F0F0E1LL;RF24 radio(7, 8); void ResetData(){// Define the inicial value of each data input. | Veri giri?lerinin ba?lang?? de?erleri// The middle position for Potenciometers. (254/2=127) | Potansiyometreler i?in orta konumdata.throttle = 127; // Motor Stop | Motor Kapal?data.pitch = 127; // Center | Merkezdata.roll = 127; // Center | Merkezdata.yaw = 127; // Center | Merkez} void setup(){ //Set the pins for each PWM signal | Her bir PWM sinyal i?in pinler belirleniyor. ch1.attach(2); ch2.attach(3); ch3.attach(4); ch4.attach(5); //Configure the NRF24 module ResetData(); radio.begin(); radio.openReadingPipe(1,pipeIn); radio.startListening(); //start the radio comunication for receiver | Al?c? olarak sinyal ileti?imi ba?lat?l?yor} unsigned long lastRecvTime = 0; void recvData(){while ( radio.available() ) {radio.read(&data, sizeof(Signal));lastRecvTime = millis(); // receive the data | data al?n?yor}} void loop(){recvData();unsigned long now = millis();if ( now - lastRecvTime > 1000 ) {ResetData(); // Signal lost.. Reset data | Sinyal kay?psa data resetleniyor} ch_width_1 = map(data.throttle, 0, 255, 1000, 2000); // pin D2 (PWM signal)ch_width_2 = map(data.pitch, 0, 255, 1000, 2000); // pin D3 (PWM signal)ch_width_3 = map(data.roll, 0, 255, 1000, 2000); // pin D4 (PWM signal)ch_width_4 = map(data.yaw, 0, 255, 1000, 2000); // pin D5 (PWM signal) // Write the PWM signal | PWM sinyaller ??k??lara g?nderiliyorch1.writeMicroseconds(ch_width_1);ch2.writeMicroseconds(ch_width_2);ch3.writeMicroseconds(ch_width_3);ch4.writeMicroseconds(ch_width_4);}

審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 遙控
    +關(guān)注

    關(guān)注

    11

    文章

    282

    瀏覽量

    57317
  • RC
    RC
    +關(guān)注

    關(guān)注

    0

    文章

    224

    瀏覽量

    48726
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6457

    瀏覽量

    186502
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    怎樣個(gè)遙控控制兩個(gè)飛機(jī)

    最近想研究下飛機(jī)模型,主要是直升機(jī),想求教大家怎樣改裝遙控器可以控制兩架飛機(jī)。謝謝
    發(fā)表于 01-26 14:02

    如何做一個(gè)無(wú)線遙控的小車?

    如何做一個(gè)無(wú)線遙控的小車?
    發(fā)表于 12-17 06:58

    如何做一個(gè)遙控器控制的計(jì)算器

    基于arduino uno r3/ Mega2560,做一個(gè)遙控器控制的計(jì)算器。。。。。目錄. 實(shí)驗(yàn)材料:(? ?_?)?...
    發(fā)表于 02-15 07:42

    基于Arduino控制器制作個(gè)漂亮的遙控飛機(jī)

    描述M-控制器這張卡可以讓我們控制遙控飛機(jī)。不幸的是,現(xiàn)在的遙控控制器非常昂貴。所以我做了個(gè)
    發(fā)表于 08-23 06:59

    種基于RC5編碼的按摩浴缸紅外遙控器設(shè)計(jì)

    本文描述了種多功能浴缸的基于RC5 碼的紅外遙控器設(shè)計(jì)的方法,說(shuō)明了RC5碼的組成原理,主要突出了紅外
    發(fā)表于 08-26 10:07 ?47次下載

    如何制作RC飛機(jī)

    如何制作個(gè)RC飛機(jī)
    的頭像 發(fā)表于 05-27 06:30 ?5206次閱讀

    點(diǎn)亮LCD屏————遙控計(jì)算器 arduino

    基于arduino uno r3/ Mega2560,做一個(gè)遙控器控制的計(jì)算器。。。。。 目錄
    發(fā)表于 12-16 16:47 ?17次下載
    點(diǎn)亮LCD屏————<b class='flag-5'>遙控</b>計(jì)算器 <b class='flag-5'>arduino</b>

    DIY個(gè)簡(jiǎn)單的Arduino板子

    你想過(guò)簡(jiǎn)單的元件來(lái)制作Arduino板嗎?或者想過(guò)根據(jù)自己的需要做一個(gè)定制開發(fā)板嗎?這個(gè)項(xiàng)目就是向大家展示用電子元件來(lái)制作Arduino電路板。只需遵循這些步驟和說(shuō)明,就可以享受這個(gè)
    的頭像 發(fā)表于 04-08 15:44 ?5504次閱讀
    DIY<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>簡(jiǎn)單的<b class='flag-5'>Arduino</b>板子

    Arduino制作遙控

    電子發(fā)燒友網(wǎng)站提供《Arduino制作遙控車.zip》資料免費(fèi)下載
    發(fā)表于 10-19 11:36 ?5次下載
    <b class='flag-5'>用</b><b class='flag-5'>Arduino</b>制作<b class='flag-5'>遙控</b>車

    3行代碼做一個(gè)WebServer

    電子發(fā)燒友網(wǎng)站提供《3行代碼做一個(gè)WebServer.zip》資料免費(fèi)下載
    發(fā)表于 10-28 16:52 ?0次下載
    <b class='flag-5'>用</b>3行代碼<b class='flag-5'>做一個(gè)</b>WebServer

    LDR做一個(gè)自動(dòng)夜燈

    電子發(fā)燒友網(wǎng)站提供《LDR做一個(gè)自動(dòng)夜燈.zip》資料免費(fèi)下載
    發(fā)表于 10-28 14:21 ?0次下載
    <b class='flag-5'>用</b>LDR<b class='flag-5'>做一個(gè)</b>自動(dòng)夜燈

    通過(guò)Arduino Uno和繼電器做一個(gè)藍(lán)牙控制滅火器車

    電子發(fā)燒友網(wǎng)站提供《通過(guò)Arduino Uno和繼電器做一個(gè)藍(lán)牙控制滅火器車.zip》資料免費(fèi)下載
    發(fā)表于 11-24 09:34 ?0次下載
    通過(guò)<b class='flag-5'>Arduino</b> Uno和繼電器<b class='flag-5'>做一個(gè)</b>藍(lán)牙控制滅火器車

    基于Arduino Uno的RC

    方案介紹 1. 準(zhǔn)備工作 首先,你需要輛老式的遙控汽車。 除控制兩個(gè)馬達(dá)的電纜外,拆除所有電子設(shè)備。 2. Arduino和 拿
    發(fā)表于 12-06 12:01 ?1次下載

    Arduino做一個(gè)自動(dòng)割草機(jī)

    這個(gè)項(xiàng)目中,我們將用Arduino制作個(gè)自動(dòng)割草機(jī)。該機(jī)器可以自動(dòng)修剪院子里長(zhǎng)高的草。如果有障礙物,它會(huì)自動(dòng)改變方向,有助于減少人力。
    的頭像 發(fā)表于 07-07 14:02 ?1805次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Arduino</b><b class='flag-5'>做一個(gè)</b>自動(dòng)割草機(jī)

    Arduino做一個(gè)語(yǔ)音應(yīng)用程序來(lái)打開和關(guān)閉警報(bào)

    電子發(fā)燒友網(wǎng)站提供《Arduino做一個(gè)語(yǔ)音應(yīng)用程序來(lái)打開和關(guān)閉警報(bào).zip》資料免費(fèi)下載
    發(fā)表于 07-10 10:46 ?0次下載
    <b class='flag-5'>用</b><b class='flag-5'>Arduino</b><b class='flag-5'>做一個(gè)</b>語(yǔ)音應(yīng)用程序來(lái)打開和關(guān)閉警報(bào)