AVR-ATmega16智能遥控小车

AVR单片机相信不少的伙伴在大学的电设课中接触过,不像51单片机和32单片机的资料这么多,但是学校又要求去学,还要设计结题项目,这是最头疼的。该项目可以作为AVR单片的学习的参考,同时也是我们的结课题目:智能遥控小车。

目录

  • AVR-ATmega16智能遥控小车
  • 智能遥控小车
    • 准备
    • 硬件
    • 实现过程
      • 一、驱动方面无需多言
      • 二、蓝牙方面
      • 三、超声波
      • 四、带AB相的编码电机
      • 五、红外线检测黑线
    • 代码

智能遥控小车

小车也仅仅只是一个半入门级别的作品。需要实现对功能如下:

  • 使用ATmega系列单片机通过遥控的方式实现小车的前进、后退、左转、右转等操作
  • PWM实现电机的转速控制,编码电机返回转速,编写PID程序实现电机转速的控制,实现定速巡航行驶
  • 实现自动寻黑线行驶功能。
  • 实现自动防碰撞模式行驶。

准备

从题目出发确定以下方向:

  • 采用蓝牙对小车进行遥控,通过手机端的蓝牙调试助手进行遥控
  • 通过电机驱动利用PWM进行基本行驶操作
  • 编码电机实现对速度的采集,并通过PID运算将速度保持在一个稳定值。
  • 利用红外线寻黑线
  • 利用超声波防碰撞

总体而言题目算是比较简单但又考验对单片机的综合应用能力。

硬件

  • 主控采用ATmega16
  • 驱动采用TB6612FNG
  • 蓝牙采用经典的HC-05
  • 编码电机
  • 三路红外检测黑线
  • HC-SR04超声波

实现过程

一、驱动方面无需多言

逻辑如下:

二、蓝牙方面

相信熟悉STM32或者51开发的同学对蓝牙不会陌生,对于蓝牙的收发程序也是得心应手。
但对于ATmega16而言值得注意的对芯片晶振的选择

ATmega16默认的是内部的1MHZ的晶振,无法满足蓝牙的波特率需求,因此需要将ATmega16的晶振设置为内部8MHZ的晶振,并在程序中适配蓝牙的波特率。

三、超声波

如果你使用的是HC-SR04,那么恭喜你中奖了,对于该模块的使用我是一言难尽,实际上在较为适合的距离下该模块的精度还是不错的。但是他有一个致命的缺点(当然也可能是我们的实验室的条件不行,具体情况每个地方都有所不同),那就是在超出量程后会间歇性的报给你错误的方波。
一旦你捕捉到了这些错误的方波,那么你的程序就开始失控了。我并没有什么好的解决办法,只能人为调控,使得障碍物在超声波的检测范围内。因此如果你的预算充足的话,可以购入更好的超声波模块。

四、带AB相的编码电机

AB相的编码电机可以检测轮子的转动方向:正转或者反转。因此对正反向的速度有要求的可以选择,虽然我买的也是AB相,的但实际上并没有用到这个功能,仅检测了一个相位,只测量了速度。
具体的逻辑很简单,计算一秒钟内高电平的次数(一秒钟可以根据自己的要求减少),根据每一个轮子的不同,脉冲次数对应的圈数也不同。再根据轮胎半径,

五、红外线检测黑线

对于红外线循迹,市面上大致分为两种,一种为直接返回高低电平,一种为返回电压值。前者在编写程序上极为简单,但是做过的同学的都知道,爬在地上一点点的调节红外的感受。后者再硬件上就省了不少麻烦,你不用调节,也无法调节,位置对好就ok,但是在程序上就需要你耗费一点时间了。两者取舍还要看具体的情况。

代码

代码放在了我的Github账号下,仅供参考,如需自取。随时欢迎来讨论沟通。
点击这里Github网址

ATmega16智能遥控小车相关推荐

  1. 1.树莓派、Python、STM32、上位机、局域网、PC智能遥控小车(含源码)

    整体功能:电脑上观看小车前方画面,通过电脑方向键控制小车前后运动.左右转弯,如前进后退键,按下前进或后退,松开停车,左右同理 关键技术部分:PC端:使用pygame编写上位机,作为服务器 树莓派端:图 ...

  2. 单片机智能遥控小车实战

    能遥控小车实战 单片机视频教程 单机片实战 包含必学的视频教程+说明书 手册 原理图+参考实验 完美的单机片视频教程! 视频教程目录: 视频教程目录: 下载地址:关注wx公众号feixueteam

  3. C51(蓝牙,红外)智能遥控小车

    目录 1模块准备 2实现功能 1模块准备 三轮小车底盘 l298n电机驱动模块 51最小系统开发板 ds1302时钟模块 蓝牙串口模块hc-06 18650电池盒和电池组三节,12v左右 ds18b2 ...

  4. 基于STM32+PS2的智能遥控小车

    1.效果展示 2.物资清单 飞卡C车模(含直流减速电机和舵机).锂电池.PS2手柄+接收器.电源模块.STM32F407核心板.电机驱动模块.(由于之前参加过十六届的飞卡,像车模.锂电池.电源模块.驱 ...

  5. STM32智能遥控小车,超详细-附下载直接可以用,双电源跑贼快!

    简介 小车的动力部分由4个带减速箱的电机,和两个L298N电机驱动模块组成. 通过STM32核心板控制电机驱动模块,JDY-31蓝牙模块与手机通讯. 总共三块电池,一块专门给单片机供电,另外两块串联在 ...

  6. STM32遥控小车下位机及硬件连接部分(Keil MDK5平台的C++编程)

    STM32蓝牙控制小车 简介 一.硬件总体介绍 1. L298N电机驱动模块 2. JDY-31蓝牙模块 3. 电源组成 4. 单片机 二.单片机程序介绍 1. main.c文件 2. bluetoo ...

  7. STM32单片机智能跟随小车_红外遥控(程序+原理图+PCB+论文报告)

    本设计: 基于STM32单片机智能跟随小车_红外遥控(程序+原理图+PCB+论文报告) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0021 资料下载 [ ...

  8. 基于51单片机的智能超声波四轮遥控小车proteus仿真

    硬件设计 下边讲一下遥控小车,同样是基于51单片机,利用超声波进行测距,利用蓝牙模块实现遥控(仿真里边没有蓝牙,所以采用的是RS485通信模拟) 仿真图: 由LCD1602作为显示器,具有蜂鸣器报警, ...

  9. 低成本DIY视频预览遥控小车

    QQ讨论群:301849022 视频:http://v.youku.com/v_show/id_XNTg1NzI4MDg0.html 简介: 对于喜欢电子的人来说,智能小车是每个人都曾经触碰过的项目, ...

最新文章

  1. 关于使用css3属性:transform固定菜单位置,在滑动页面时菜单闪现抖动的问题
  2. target与currentTarget的区别?
  3. chrome拦截弹窗问题的两种解决方式
  4. Oracle游标有何用,Oracle游标使用方法有哪些?
  5. prometheus变量_Prometheus 数据可视化
  6. u-boot2013.01.01 for s5pv210: u-boot启动流程
  7. CentOS6.5系统重启后宕机
  8. [EffectiveC++]item06:若不想使用编译器自动生成的函数,就该明确决绝
  9. SimpleUI 2.0 发布,采用element-ui+vue给django admin带来全新体验
  10. Spring之IOC容器
  11. 单片机技术与c语言编程教学大纲,单片机原理及应用课程教学大纲
  12. python3 词频统计计数分析+可视化词云 jieba+wordcloud 数据分析
  13. iPhone 手势识别
  14. TiDB 在中国电信翼支付的大规模深度实践
  15. srsLTE学习笔记(一)——eNB配置文件enb.conf解析
  16. Java IO流源码学习之二(Buffered字节流)
  17. iOS用Sketch制作APP下拉刷新的GIF动画
  18. 如何修改PDF,怎么把一个PDF拆分成多个
  19. 压力测试工具ab介绍
  20. 大数据平台执行报错,权限问题。

热门文章

  1. 人机对话是怎么产生的?
  2. 深度至尊GHOST_XPSP3快速装机专业版V8.0
  3. 华丽介绍夏日冰点------この青空に約束を
  4. 【数据结构】单链表逆序
  5. SCM工具-Git的相关指令
  6. 拱火AI大战全球最强法务部,艺术家为抵制AI画画出新招
  7. 工厂模式及什么时候用工厂模式
  8. Java编程语言学习:Java语言编程的基础知识之Java的变量与数据类型、符号、运算符、数组Array总结之详细攻略
  9. C语言fgets()函数
  10. excel下拉菜单创建