1、智能小车项目基本规划
智能小车我们再熟悉不过了,读大学期间,部分优秀且动手能力强的小伙伴参加过各种省级、国家级的竞赛,拿到了不少奖,也算是没有给自己的大学留下遗憾。
最近在不少嵌入式相关的群里(我在里面)以及我本人微信公众号后台看到有人问:杨工,智能小车怎么造?需要哪些材料?圆曾经的小车梦吧!二话不说,杨工立马淘宝走起,采购了一批材料,开始把自己曾经造小车的路再走一遍,其一,这可以作为一个开源项目,大家一起来做,提高自己的动手组装硬件小车的能力,提高自己写代码完成项目的能力,其二,增加自己的项目经验,以后出去找工作也有话题和面试官谈。
本期小车规划内容大致如下:
- 1、购买套件,基础小车驱动硬件配置
- 2、红外遥控控制小车基础demo实现
- 3、wifi控制小车基础demo实现
- 4、基于2、3点添加拓展模块增强小车功能(比如wifi图传小车,循迹小车,避障小车等等)
- 5、增加多硬件平台开发经验(不限于51、stm32,还会上stm8、arduino,华大MCU,TK499,imx6ul,imx287a,tiny4412等等)
- 6、增加跨平台开发经验(我们不仅仅只会单片机编程,我们还要根据这个项目进行拓展,学习Android app编程,QT软件编程,嵌入式Linux编程等等)
大概的内容就是以上这些,会不定期更新,同时也会听取大家的意见,随时进行项目变动,比如今天开源群就有一个小伙伴提了一个需求,能不能把群主分享的各种开源组件在这个小车上用起来呢?
没问题,安排!杨工本人做事风格就是这么直接,说做就做,从不放弃也不马虎应付,对于本职工作也是一样,只要是我的东西,着急那就是拼了自己的休息时间回家也得加加班干到凌晨也得干好,这是我个人做事的态度。
2、智能小车套件组装及测试
2.1、智能小车基本框架部分:
小车底盘(一般都会带4个电机,但需要自己组装)
以上是我自己上淘宝买的散装套件,人民币28元。
https://v.youku.com/v_show/id_XNDEzOTUwMjM3Ng==.html?spm=a2h3j.8428770.3416059.1
4WD小车底盘的安装可以看看上面这个链接的视频,基本上都大同小异,看完跟着实操就对了!
电机驱动模块 我选择的是L298N,一共2个,花了人民币9.2元。
如图所示,输出A可以接一个电机,输出B也可以接一个电机,所以一个模块可以带两个电机,两个模块可以带四个电机,这样只要给12V端口供电,把GND连接好,当逻辑输入4个引脚只要有管脚电平为1时,电机就可以转动了!如果有共同的电压点,可以用杜邦线串联起来,第一个模块的12V接第二个模块的12V,第一个模块的GND接第二个模块的GND,第一个模块的5V接第二个模块的5V,然后供电单独再引两组线出来,(12V GND)==>接电源,通常是18650的电池三节就够了,(5V GND)==>接单片机开发板,最终效果图如下,这里我将左前轮和右前轮电机接在了最下面的L298N模块,将左后轮和右后轮接在了最上面的L298N模块。
如果觉得杜邦线抵挡不了强大的驱动电流,可以考虑换粗一点的线。
电池供电部分最终效果:
2.2、智能小车增加测试的STC单片机开发板(当然你可以选其它的)
测试仅仅只是让单片机IO输出电平,测试电机正反转,以方便我们后面在程序上设计接口,控制小车移动,最终安装效果图如下:
编写一个最简单的51单片机控制程序:
#include <reg52.h> //L298N模块1连接 sbit Module1_IN1 = P2 ^ 7 ; sbit Module1_IN2 = P2 ^ 6 ; sbit Module1_IN3 = P2 ^ 5 ; sbit Module1_IN4 = P2 ^ 4 ; //L298N模块2连接 sbit Module2_IN1 = P2 ^ 3 ; sbit Module2_IN2 = P2 ^ 2 ; sbit Module2_IN3 = P2 ^ 1 ; sbit Module2_IN4 = P2 ^ 0 ; /* 1000 ===> 左前轮后转 0100 ===> 左前轮前转 0010 ===> 右前轮前转 0001 ===> 右前轮后转 1000 ===> 左后轮前转 0100 ===> 左后轮后转 0010 ===> 右后轮后转 0001 ===> 右后轮前转 //四轮同时向前转 0110 1001 0x69 //四轮同时向后转 1001 0110 0x96 */ //**************************************************** //主函数 //**************************************************** void main() { while(1) { //四轮同时向前转 P2 = 0x69 ; Delay_ms(2000); //四轮停止 P2 = 0x00 ; Delay_ms(2000); //四轮同时向后转 P2 = 0x96 ; Delay_ms(2000); //四轮停止 P2 = 0x00 ; Delay_ms(2000); } } //**************************************************** //MS延时函数(12M晶振下测试) //**************************************************** void Delay_ms(unsigned int n) { unsigned int i, j; for(i = 0; i < n; i++) for(j = 0; j < 123; j++); }
最终效果:
为了满足我项目最基本的要求,我选购了两个stm32f103zet6核心板,一个用在小车上,一个备用调试。
当然还有其它的一些小模块,在后台回复小车
即可获取杨工本人购买套件的淘宝链接,最后祝各位DIY小车成功,如果有兴趣DIY小车买回来有任何不明白的地方欢迎与我交流,谢谢大家!