Hello大家好,我是伊娃老师,今天介绍DIY大神KendinYap的无人机DIY。
很多做飞机的都是靠K大启蒙的,我们来看他用Arduino做一个无人机。
在这里我特别佩服K大的是他直接用焊接电路的PCB板加工成无人机的机身,再直接焊接需要的电路,真可以说是一举两得,省了材料也省了重量。
解说过程大家可以看看视频,一共15分钟,讲解遥控器跟无人机两部分。
视频中用到的工具跟材料,我都对应了某宝关键字找到了,大家觉得有帮助的话,就帮我多转发、关注吧,最下面也可以点喜欢作者支持我哟~
准备工具
焊枪+焊锡
尖嘴钳
剥线钱
台锯
台钻
笔刀
平口钳夹具
热熔胶枪+胶
双面胶
螺丝刀
胶带
遥控器制作
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));}
接收器制作
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));}
无人机制作
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