极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17560|回复: 2

【DIY】基于arduino的nrf24L01收发通信的遥控小车,附nrf24l01源码

[复制链接]
发表于 2018-7-16 10:53:26 | 显示全部楼层 |阅读模式
本帖最后由 straka 于 2018-8-22 11:06 编辑

最近弄了两个nrf24l01的模块,想试试之后往智能家居上用,正好之前有一个小车用来验证导航算法的,还有一个小四轴的控制手柄,所以萌生了结合三者弄个遥控车玩一玩。小四轴基于STC15系列主控,51架构,而小车主控是arduino平台,那么nrf24l01的代码就需要分开写。nrf24l01采用SPI总线通信,虽然占引脚数多,但是收发速度快,模块通信速率可达2Mbps,而功耗控制在待机22uA,如果掉电模式可以仅900nA,如果其余传感器功耗控制合理,用干电池驱动整个模块工作数月了,这可是其他通信模块不具备的特性,高速低耗,2.4Ghz的抗干扰能力也不错,穿透性稍差,但是家庭环境使用还是够的。

官方给了C语言的库,先拿两个51单片机试了下,OK,再从网上下载了arudino的库,试了下,???无法收发,换个库,还是不行,纳闷了,对照手册看源码,经过数次修改,始终不能成功,调试又非常不方便,手册我都看的快背下来了。遂放弃,想到51版本的可以用,那就根据51版本的改过来用呗。代码就不贴了,可以看我的原博客。

经测试,自己的库是通了。那既然两个平台都通了,可以试试在遥控器和小车上了。小四轴遥控器原本用的就是nrf24L01,将两个摇杆的位置信息映射到0~255的uchar类型,那么小车上只需要将nrf24L01模块地址设置为相同的接收地址,解析对应通道数据并转换成速度信息即可。由于理论上摇杆回中对应的值为128,但是实际摇杆回中值会有个浮动,导致当我没控制摇杆,即摇杆处于回中状态时小车会低速运动,因此,做个判断,将128附近值屏蔽。

51单片机直接的联调

Arduino的联调

成品

原博客:http://www.straka.cn/blog/nrf24l01_arduino/
源码:
https://github.com/atp798/BlogStraka/tree/master/ArduinoNrf24l01

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2018-7-20 15:39:29 | 显示全部楼层
楼主一桌子单片机,厉害
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-22 11:01:30 | 显示全部楼层
看到挺多人用arduino控制nrf24l01不成功,我把我的源码也贴上吧
https://github.com/atp798/BlogStraka/tree/master/ArduinoNrf24l01
原博客有源码简单解释
http://www.straka.cn/blog/nrf24l01_arduino/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 20:37 , Processed in 0.043680 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表