Cyber遥控车制作

编程入门 行业动态 更新时间:2024-10-18 14:21:52

Cyber<a href=https://www.elefans.com/category/jswz/34/1429875.html style=遥控车制作"/>

Cyber遥控车制作

基于K60的UART通信智能车遥控车制作思路

  • Introduction
  • 硬件结构
    • 智能车硬件
    • 遥控器硬件
  • 代码部分
    • 发送代码
    • 接收代码

-Lxy

Introduction

第十六届智能车竞赛取消了对K60芯片的使用,大量芯片论斤卖,发挥一下芯片的余热,基于上一次的UART串口通信内容,制作一辆遥控车。

硬件结构

智能车硬件

车上的板子就是实验室流传下来的板子,大致功能就是给电机、芯片供电以及接收UART串口信号实现单片机之间的双向通信。

遥控器硬件

遥控器是自己用洞洞板做的,飞了很多线。芯片用的是K60,供电用的是3.7V锂电池经过稳压芯片稳压后供电。
制作的模型仿照PS手柄,有侧边按键以及遥感,但是是非常的粗制滥造。
摇杆相当于电位器,要求是5V供电,但是单片机ADC信号采集只有3.3V,因此采用3.3V供电即可。另加入无线通信模块即可通过代码来实现单片机之间的通信。


代码部分

发送代码

代码发送很简单,只要调用山外库的uart_putchar函数就可以发送一个字节的数据了,但是一个字节是远远不够用的,因此可以把数据拆分成多个字节进行使用。如果一次发送多个字节的数据,因为发送端单片机是在一直发送,所以接收端就要识别数据的头和尾,因此接受代码就显得尤为重要。

接收代码

接受代码使用的是UART串口中断,因为uart_getchar函数如果没有接收到数据就会处于等待状态,单片机程序就会卡住。放到中断后,有数据到来时才执行这个函数,就不会导致程序的卡死。
众所周知,想要识别真正的数据,数据就要有头和尾。
方案一
一开始我使用了原子哥的STM32中UART串口通信实验的代码,但是接收到的数据效果十分不好,经过计算发现经常丢失一个字节,于是我就换了一种思路。
方案二
我在发送的数据的头部加入了两个八位校验码,也就是符号 {
和符号 ,因为如果只有一位,那么符号的ASCII码有可能和数据相同造成干扰,但是两位检验码出错的概率就会变小。当然,也可以找那些在数据范围以外的字符组合作为校验码,这样就会大大减小出错的概率。
注意事项
在实验中还发现OLED显示函数所占用的时间还是很大的,不能放到串口中断中,否则会造成程序的卡死。

更多推荐

Cyber遥控车制作

本文发布于:2024-02-25 14:17:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699249.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:遥控车   Cyber

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!