最详细的Arduino四轴无人机教学-四轴无人机介绍

Hello大家好,我是伊娃老师,今天介绍DIY大神KendinYap的无人机DIY。

最详细的Arduino四轴无人机教学-四轴无人机介绍

很多做飞机的都是靠K大启蒙的,我们来看他用Arduino做一个无人机。

在这里我特别佩服K大的是他直接用焊接电路的PCB板加工成无人机的机身,再直接焊接需要的电路,真可以说是一举两得,省了材料也省了重量。

最详细的Arduino四轴无人机教学-四轴无人机介绍

解说过程大家可以看看视频,一共15分钟,讲解遥控器跟无人机两部分。

视频中用到的工具跟材料,我都对应了某宝关键字找到了,大家觉得有帮助的话,就帮我多转发、关注吧,最下面也可以点喜欢作者支持我哟~

最详细的Arduino四轴无人机教学-四轴无人机介绍

最详细的Arduino四轴无人机教学-四轴无人机介绍

最详细的Arduino四轴无人机教学-四轴无人机介绍

准备工具

焊枪+焊锡

尖嘴钳

剥线钱

台锯

台钻

笔刀

平口钳夹具

热熔胶枪+胶

双面胶

螺丝刀

胶带

遥控器制作

最详细的Arduino四轴无人机教学-四轴无人机介绍

1 xArduinoNano

2 x双轴按键传感器

1 x3档摇臂开关

1 x100uF电容

1 xNRF24L01 + PA大功率无线收发模块

1 x7.4v460Mah锂电池

1 x680R电阻

若干x5mmKT板、PCB板、2.54插座、电子连接线

// 6 Channel Transmitter | 6 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(9, 10); // select CE,CSN pin | CE ve CSN pinlerin seçimi struct Signal { byte throttle; byte pitch; byte roll; byte yaw; byte aux1; byte aux2;}; Signal data; void ResetData() { data.throttle = 12; // Motor stop | 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) data.aux1 = 127; // Center | merkez (Signal lost position | sinyal kesildiğindeki pozisyon) data.aux2 = 127; // Center | merkez (Signal lost position | sinyal kesildiğindeki pozisyon)} void setup(){ //Start everything up radio.begin(); radio.openWritingPipe(pipeOut); radio.setAutoAck(false); radio.setDataRate(RF24_250KBPS); radio.setPALevel(RF24_PA_HIGH); radio.stopListening(); //start the radio comunication for Transmitter | Verici olarak sinyal iletişimi başlatılıyor ResetData(); } // 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); else val = 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. | :Kontrol kolların doğru değerleri için ayar gerekebilir. data.throttle = mapJoystickValues( analogRead(A0), 12, 524, 1020, true ); // “true” or “false” for signal direction | “true” veya “false” sinyal yönünü belirler data.roll = mapJoystickValues( analogRead(A3), 12, 524, 1020, true ); // “true” or “false” for servo direction | “true” veya “false” servo yönünü belirler data.pitch = mapJoystickValues( analogRead(A2), 12, 524, 1020, false ); // “true” or “false” for servo direction | “true” veya “false” servo yönünü belirler data.yaw = mapJoystickValues( analogRead(A1), 12, 524, 1020, false ); // “true” or “false” for servo direction | “true” veya “false” servo yönünü belirler data.aux1 = mapJoystickValues( analogRead(A6), 12, 524, 1020, true ); // “true” or “false” for servo direction | “true” veya “false” servo yönünü belirler data.aux2 = mapJoystickValues( analogRead(A7), 12, 524, 1020, true ); // “true” or “false” for servo direction | “true” veya “false” servo yönünü belirler radio.write(&data, sizeof(Signal));}

接收器制作

最详细的Arduino四轴无人机教学-四轴无人机介绍

1 xArduinoNano

1 x7.4v460Mah锂电池

1 xNRF24L01 + PA大功率无线收发模块

1 x100uF电容

若干xPCB板、2.54插座、2.54排针、电子连接线

// 6 Channel Transmitter | 6 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(9, 10); // select CE,CSN pin | CE ve CSN pinlerin seçimi struct Signal { byte throttle; byte pitch; byte roll; byte yaw; byte aux1; byte aux2;}; Signal data; void ResetData() { data.throttle = 12; // Motor stop | 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) data.aux1 = 127; // Center | merkez (Signal lost position | sinyal kesildiğindeki pozisyon) data.aux2 = 127; // Center | merkez (Signal lost position | sinyal kesildiğindeki pozisyon)} void setup(){ //Start everything up radio.begin(); radio.openWritingPipe(pipeOut); radio.setAutoAck(false); radio.setDataRate(RF24_250KBPS); radio.setPALevel(RF24_PA_HIGH); radio.stopListening(); //start the radio comunication for Transmitter | Verici olarak sinyal iletişimi başlatılıyor ResetData(); } // 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); else val = 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. | :Kontrol kolların doğru değerleri için ayar gerekebilir. data.throttle = mapJoystickValues( analogRead(A0), 12, 524, 1020, true ); // “true” or “false” for signal direction | “true” veya “false” sinyal yönünü belirler data.roll = mapJoystickValues( analogRead(A3), 12, 524, 1020, true ); // “true” or “false” for servo direction | “true” veya “false” servo yönünü belirler data.pitch = mapJoystickValues( analogRead(A2), 12, 524, 1020, false ); // “true” or “false” for servo direction | “true” veya “false” servo yönünü belirler data.yaw = mapJoystickValues( analogRead(A1), 12, 524, 1020, false ); // “true” or “false” for servo direction | “true” veya “false” servo yönünü belirler data.aux1 = mapJoystickValues( analogRead(A6), 12, 524, 1020, true ); // “true” or “false” for servo direction | “true” veya “false” servo yönünü belirler data.aux2 = mapJoystickValues( analogRead(A7), 12, 524, 1020, true ); // “true” or “false” for servo direction | “true” veya “false” servo yönünü belirler radio.write(&data, sizeof(Signal));}

无人机制作

最详细的Arduino四轴无人机教学-四轴无人机介绍

最详细的Arduino四轴无人机教学-四轴无人机介绍

最详细的Arduino四轴无人机教学-四轴无人机介绍

1 xKK2.15飞控

4 x1806 2380KV无刷电机

4 x4045螺旋桨

4 x12A电子调速器

6 x塑料六角隔离柱

若干x5mmKT板、PCB板、M3螺丝、M3垫片、M3螺母、2mm电线对接头、热缩管、JST母头插座、电子连接线、T型插头

审核编辑黄宇

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:最详细的Arduino四轴无人机教学-四轴无人机介绍 https://www.yhzz.com.cn/a/4645.html

上一篇 2023-04-11 04:19:57
下一篇 2023-04-11 04:25:12

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。