0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

100元用Arduino做一个RC遥控飞机

伊娃老师来了 来源:伊娃来了 作者:伊娃来了 2023-02-11 02:09 次阅读

视频时间

1.遥控器与飞机的电子设计与编程:0:45

2.飞机主体的搭建制作:4:50

制作需要准备

2 x Arduino Nano

1 x NRF24L01 + PA 无线收发模块

1 x NRF24L01 无线收发模块

2 x Arduino joystick

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

1 x 13 * 6 cm PCB 电木板

1 x 5 * 3.5 cm PCB 电木板

3 x SG90 舵机

1 x 20A ESC 电子调速器

2 x 7.4V 450Mah 2S 锂电池

1 x DC 180 Motor 39000 RPM 电机+螺旋桨

5mmKT板/泡沫板/雪弗板

舵机夹头、金属调节器、1mm铁丝

视频内容

今天就给大家分享一个油管上KendinYap,K大的Arduino的低成本无线遥控飞机,总共材料费用是在100元左右。

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

除了遥控飞机,今天介绍的制作方式也可以应用在制作无人机、遥控车、遥控船这类东西,解说分成遥控器跟飞机两部分。

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

遥控器能够控制3个舵机跟1个直流电机,这里的控制主板选用的是Arduino Nano,应该是为了降低成本,因为遥控器本身需要连接的电子元件并不多,控制飞机用了两个Joystick摇杆、一个NRF24L01PA的大功率无线收发模块、一个100微法的电容、1个7.4V的锂电池。

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

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

飞机上使用的一样是Arduino Nano,3个SG90舵机、1个39000转的直流电机、100微法的电容、一个30A双向有刷电调,1个NRF24L01无线收发模块,一个7.4V锂电池。

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

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

机身的尺寸是45.3厘米,属于偏迷你大小的飞机,这里制作采用的是泡沫板/PVC板/雪弗板/KT板,使用热熔胶枪粘合。

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

连杆机构使用了舵机夹头跟金属调节器。

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));}‍

飞机上的电路主板也是用Arduino Nano,3个SG90舵机、1个39000转的直流电机、100微法的电容、一个30A双向有刷电调,1个NRF24L01无线收发模块,一个7.4V锂电池。

飞机控制电路图

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

飞机控制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);}

审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 遥控
    +关注

    关注

    11

    文章

    272

    浏览量

    56873
  • RC
    RC
    +关注

    关注

    0

    文章

    214

    浏览量

    48314
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184838
收藏 人收藏

    评论

    相关推荐

    怎样遥控控制两飞机

    最近想研究下飞机模型,主要是直升机,想求教大家怎样改装遥控器可以控制两架飞机。谢谢
    发表于 01-26 14:02

    ARDUINO做的遥控

    本帖最后由 ylylyl007 于 2012-2-5 15:14 编辑 电位器与对无线传输模块,完成遥控小车制作。电位器产生控制电压,由串口无线模块发出。当电压为2至3V
    发表于 02-05 15:12

    新人求教无线遥控飞机

    小弟想做个无线遥控飞机、、、{:7:}
    发表于 04-15 15:53

    飞机拍摄

    大家好我我想做一个在空中拍摄的东西,能时时传回画面的东西,还能用遥控遥控和电脑控制自动飞行,飞机的高度要求在500米,要用什么开发板和发动机。
    发表于 06-28 15:31

    求解!!!红外遥控和LCD1602做一个万年历

    求大神解答!!! 我在用51单片机做一个LCD1602液晶显示的万年历,红外遥控代替了普通按键,但是在写程序的时候,每次摁下红外遥控器,
    发表于 07-29 20:21

    做一个单片机控制的遥控

    本人菜鸟,想要做一个单片机来控制的遥控器,但不知道需要什么部件和工具,求大神指导。
    发表于 10-07 14:06

    遥控飞机是怎样控制平衡的

    `无限遥控飞机是怎样控制飞行平衡的`
    发表于 02-16 11:29

    怎么最基本的元件做一个遥控钥匙,我想自己动动手做一个

    不知道需要准备些什么工具和材料自己动手做一个遥控钥匙那样的遥控器,或者买些元件组装起来也行,重要的是能稳定的实现遥控开关的功能
    发表于 03-15 19:43

    请问怎么Arduino控制RC522刷卡生成坐标?

    我有RC522模块,Arduino做控制器,怎样实现刷卡就能自动生成
    发表于 04-02 19:14

    如何做一个无线遥控的小车?

    如何做一个无线遥控的小车?
    发表于 12-17 06:58

    如何做一个遥控器控制的计算器

    基于arduino uno r3/ Mega2560,做一个遥控器控制的计算器。。。。。目录. 实验材料:(ง •_•)ง...
    发表于 02-15 07:42

    基于Arduino控制器制作漂亮的遥控飞机

    描述M-控制器这张卡可以让我们控制遥控飞机。不幸的是,现在的遥控控制器非常昂贵。所以我做了
    发表于 08-23 06:59

    arduino做一个功能强大的体化万

    教你arduino做一个功能强大的体化万表。附带资料包含PCB设计图、相关代码等。你也可以简单自己制作!
    发表于 09-27 07:06

    如何制作一架RC飞机

    如何制作一个RC飞机
    的头像 发表于 05-27 06:30 4975次阅读

    点亮LCD屏————遥控计算器 arduino

    基于arduino uno r3/ Mega2560,做一个遥控器控制的计算器。。。。。 目录
    发表于 12-16 16:47 17次下载
    点亮LCD屏————<b class='flag-5'>遥控</b>计算器 <b class='flag-5'>arduino</b>