完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
本来应当着手轨迹检测和走轨迹控制的程序设计,但为了让学习者更易实施,此篇改为基于单MCU控制的程序设计,本篇主要完成电机驱动部分,即将前面所述的电机驱动合并到一个MCU中。 从前一篇文章中已看到,使用我原来设计的方案在这个小车上有些不合理,如果再加上一个控制板,则更显“臃肿”,而正巧我认识的一个大学生基于前面的设计自己做了修改,采用一片MCU完成小车寻迹的所有功能,从设计的PCB上看,这个方式更适合学习者采纳,所以我暂且放弃了前面的设计,用这块PCB继续完成后面的内容——寻迹控制。 7、单MCU控制的程序设计 7.1、硬件简介 这个学生所作的修改主要是将原来设计的三个MCU功能合并到一个MCU中,简化了一些备用的功能,如转动方向采集、无线模块控制等,而主要功能实现的电路与原来相同,如:电机的驱动部分、码盘的采样部分、轨迹的采样部分。 主要修改的是MCU的资源分配,电路如下:
图中:他在设计PCB时还设计了一个扩展区,可以方便的焊接一些器件以扩充功能。 焊好的控制硬件如下:
组装后:
底部:
前视(注意光电采样器的安装,用的是网线,因是单股硬线,所以可以固定,而且便于调整)
7.2 程序设计概述 由于此程序将要完成小车寻迹的所有功能,如果再集中在一个程序文件中处理,将给阅读、调试带来困难,也不便于维护,而且也不符合正规的程序开发方式。 因为正规的程序开发通常需要多人合作,各人负责一部分功能,所以必须将程序分成多个独立的模块,每个模块涉及一个相对独立的功能,相互间确定好接口,这样才能合作完成一个功能复杂的程序。学习者也应当尝试这种模式。 目前这个小车项目分为4个模块: 主控模块 —— 初始化系统,根据消息调度各模块的功能;学会多模块编程是能进行嵌入式应用软件编写的重要标志。 7.3 主控模块程序设计 主控模块只负责初始化系统的硬件和软件,而且为了使各模块的相关功能更加内聚,将属于各模块的硬件、变量初始化也交给各功能模块处理,主控程序只负责初始化自用的变量。 此外,主控模块只负责根据消息调用相应模块的处理函数,具体如何处理这些消息由各功能模块中的对应函数决定。 这样设计主要是为了日后便于向使用RTOS(Real - time Operating System)过渡,因为一个略为复杂的应用如果需要程序可靠、可维护,最好使用RTOS。所以作为学习者有必要了解、掌握相关的知识。 7.4 电机驱动模块程序设计 因为驱动的H桥电路、码盘采样电路均未变,所以控制的逻辑也不用修改,只需完成: 1)对应I/O口定义的修改,以适应新的MCU资源分配;主要工作是逻辑整合。 电机 1 的引脚控制逻辑关系:电机1控制逻辑:
电机2 与电机1完全相同,只是映射在P2口的高4位。 前面所做的单个电机的控制程序,可以很方便的移植过来。 首先将所有与电机对应的变量改为2维数组,一维对应一个电机。 然后在程序中所有涉及电机变量的初始化和赋值的地方改为循环,有关的函数增加一个电机序号参数输入,函数中修改为根据序号处理相应的数组单元。 上述修改的关键在于变量的构建,合理的变量将大大减少程序的处理难度。 在电机输出及测速中断的处理中,没有使用下标变量方式来节省代码,因为需要速度,可以仔细比较使用下标变量时的目标代码与直接指定下标时的差别。 此部分功能暂未作任何改进和添加,只是将两个电机的驱动并入了一个MCU控制。 7.5 轨迹采样模块程序设计 轨迹采样器为4个反射式光电采样器,经缓冲后作背景光减除处理,之后放大送单片机AD转换。 此模块完成:本来期望能按照国外那个桌面寻迹小车的处理方式对采样信号预处理的,但是仔细分析后发现,按目前所用的采样器及轨迹的关系(轨迹通常为 2cm 宽,而采样器距地面5 – 8mm)无法实现,因为采样器在黑色轨迹上移动时有一段时间不会有变化,所以没有办法得到一个连续的位置偏移信息(详细请看:http://elm-chan.org/works/ltc/report.html)。 为了便于日后过渡到这种模式,还是将采样器布置为一条直线,相互间距小于轨迹的宽度,而4个采样器的AD结果仍然转换成逻辑值后再作处理。 4个采样器的布置如下: 顶视: 左 —— 右 |
|
相关推荐
11 个讨论
|
|
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
140 浏览 0 评论
483 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
815 浏览 0 评论
1346 浏览 2 评论
804 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16904 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 19:35 , Processed in 0.972472 second(s), Total 78, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3204