• 首页
  • 问答
  • 圈子
  • 商城
  • 兑换
  • 小钉锤
  • 供求平台
  • 导航
    • 专题
  • 博客
文章
文章用户商铺文档快讯朋友圈导航供求平台

{{userData.name}}已认证

文章

评论

关注

粉丝

¥{{role.user_data.money}}
{{role.user_data.credit}}
您已完成今天任务的
  • 私信列表所有往来私信

  • 财富管理余额、积分管理

  • 推广中心推广有奖励

    NEW
  • 任务中心每日任务

    NEW
  • 成为会员购买付费会员

  • 认证服务申请认证

    NEW
  • 我的订单查看我的订单

  • 我的设置编辑个人资料

  • 小黑屋关进小黑屋的人

    NEW
  • 进入后台管理

  • 遥控玩具
  • 电工技术
  • 小制作
  • arduino
  • 工具使用
投稿

开源:制作一个简单廉价的无线遥控系统,用arduino nano nrf24l01 PS摇杆

  • 小制作
  • 24年12月17日
  • 编辑
鲁宁小钉锤创造迷创始人
开源:制作一个简单廉价的无线遥控系统,用arduino nano nrf24l01 PS摇杆

目录

Toggle
  • 简介:
  • 材料清单:
  • 线路图:
  • 代码:
    • 发射板:
    • 接收板:
  • 原来项目地址:
  • B站博主讲解:
    • 相关文章:

简介:

如何为RC模型飞机、无人机、汽车和船只制作低成本的4通道遥控器。

建造带有比例控制的遥控器,成本约为13-14美元。它可用于各种模型车辆控制,如模型飞机、无人机、汽车、船、坦克。

材料清单:

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 电机

线路图:

开源:制作一个简单廉价的无线遥控系统,用arduino nano nrf24l01 PS摇杆
开源:制作一个简单廉价的无线遥控系统,用arduino nano nrf24l01 PS摇杆

代码:

发射板:

// 4 Channel Transmitter | 4 Kanal Verici

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

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ı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. | 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ü belirler
data.pitch = mapJoystickValues( analogRead(A2), 12, 524, 1020, true );     // "true" or "false" for servo direction | "true" veya "false" servo yönünü belirler
data.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));
}

接收板:

//  4 Channel Receiver | 4 Kanal Alıcı
//  PWM output on pins D2, D3, D4, D5 (Çıkış pinleri)

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>

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 konum
data.throttle = 127; // Motor Stop | Motor Kapalı
data.pitch = 127;  // Center | Merkez
data.roll = 127;   // Center | Merkez
data.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önderiliyor
ch1.writeMicroseconds(ch_width_1);
ch2.writeMicroseconds(ch_width_2);
ch3.writeMicroseconds(ch_width_3);
ch4.writeMicroseconds(ch_width_4);
}

原来项目地址:

https://www.rcpano.net/2020/02/17/simple-and-cheap-radio-control-making-for-rc-models-diy-rc/

B站博主讲解:

开源:制作一个简单廉价的无线遥控系统,用arduino nano nrf24l01 PS摇杆

https://www.bilibili.com/video/BV1m24y1i78U/?spm_id_from=333.337.search-card.all.click&vd_source=9a4d14e2ed6d27c4f44e1d8bf37ede6f

https://www.bilibili.com/read/cv21675045

相关文章:

  1. 如何用用易拉罐做矿石机上的可变电容?
  2. 如何自制人体感应报警器?
  3. 开源项目:如何用PVC水管制作遥控爬楼梯机器人
  4. 开源教程:如何用纸板热熔胶制作一个电动小车?
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
小制作

如何自制人体感应报警器?

2024-12-17 19:26:36

小制作

开源项目:如何用PVC水管制作遥控爬楼梯机器人

2024-12-17 21:50:20

猜你喜欢

如何用用易拉罐做矿石机上的可变电容?

24年12月17日0120

如何自制人体感应报警器?

24年12月17日0192

开源项目:如何用PVC水管制作遥控爬楼梯机器人

24年12月17日0132

开源教程:如何用纸板热熔胶制作一个电动小车?

1月14日0292
1 条回复 A文章作者 M管理员
  1. 鲁宁
    鲁宁AM小钉锤创造迷创始人 初中lv2
    10月29日

❯
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
  • 扫码打开当前页

返回顶部
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分

今日签到

连续签到

  • {{item.credit}}
  • 连续{{item.count}}天
查看所有
我的优惠劵
  • ¥优惠劵
    使用时效:无法使用
    使用时效:

    之前

    使用时效:永久有效
    优惠劵ID:
    ×
    限制以下商品使用: 限制以下商品分类使用: 不限制使用:
    [{{ct.name}}]
    所有商品和商品类型均可使用
没有优惠劵可用!

购物车
  • ×
    删除
购物车空空如也!

清空购物车 前往结算
您有新的私信
没有新私信
写新私信 查看全部

归档

  • 2025 年 11 月
  • 2025 年 10 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月
  • 2024 年 10 月
  • 2021 年 5 月

分类

  • 3D打印
  • arduino
  • 商业
  • 小制作
  • 山地车
  • 工具使用
  • 徒步
  • 无人机
  • 未分类
  • 电动车
  • 电工技术
  • 维修
  • 越野车
  • 遥控玩具
Copyright © 2025 DIY项目库-创造迷
查询 79 次,耗时 1.1415 秒
首页专题认证
搜索菜单我的

目录

×
  • 简介:
  • 材料清单:
  • 线路图:
  • 代码:
    • 发射板:
    • 接收板:
  • 原来项目地址:
  • B站博主讲解:
    • 相关文章:
→ Index
粤ICP备12092598号-13