圆曾经的小车梦,造一台智能小车(一)

简介: 圆曾经的小车梦,造一台智能小车(一)

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编程等等)


大概的内容就是以上这些,会不定期更新,同时也会听取大家的意见,随时进行项目变动,比如今天开源群就有一个小伙伴提了一个需求,能不能把群主分享的各种开源组件在这个小车上用起来呢?

640.png

640.png

没问题,安排!杨工本人做事风格就是这么直接,说做就做,从不放弃也不马虎应付,对于本职工作也是一样,只要是我的东西,着急那就是拼了自己的休息时间回家也得加加班干到凌晨也得干好,这是我个人做事的态度。

2、智能小车套件组装及测试

2.1、智能小车基本框架部分:

小车底盘(一般都会带4个电机,但需要自己组装)

640.jpg

以上是我自己上淘宝买的散装套件,人民币28元。

640.png

https://v.youku.com/v_show/id_XNDEzOTUwMjM3Ng==.html?spm=a2h3j.8428770.3416059.1

4WD小车底盘的安装可以看看上面这个链接的视频,基本上都大同小异,看完跟着实操就对了!


电机驱动模块 我选择的是L298N,一共2个,花了人民币9.2元。

640.png

如图所示,输出A可以接一个电机,输出B也可以接一个电机,所以一个模块可以带两个电机,两个模块可以带四个电机,这样只要给12V端口供电,把GND连接好,当逻辑输入4个引脚只要有管脚电平为1时,电机就可以转动了!如果有共同的电压点,可以用杜邦线串联起来,第一个模块的12V接第二个模块的12V,第一个模块的GND接第二个模块的GND,第一个模块的5V接第二个模块的5V,然后供电单独再引两组线出来,(12V GND)==>接电源,通常是18650的电池三节就够了,(5V GND)==>接单片机开发板,最终效果图如下,这里我将左前轮和右前轮电机接在了最下面的L298N模块,将左后轮和右后轮接在了最上面的L298N模块。

640.jpg

如果觉得杜邦线抵挡不了强大的驱动电流,可以考虑换粗一点的线。

640.png

640.png

640.png

电池供电部分最终效果

640.jpg

2.2、智能小车增加测试的STC单片机开发板(当然你可以选其它的)

测试仅仅只是让单片机IO输出电平,测试电机正反转,以方便我们后面在程序上设计接口,控制小车移动,最终安装效果图如下:

640.jpg

编写一个最简单的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核心板,一个用在小车上,一个备用调试。

640.png

当然还有其它的一些小模块,在后台回复小车即可获取杨工本人购买套件的淘宝链接,最后祝各位DIY小车成功,如果有兴趣DIY小车买回来有任何不明白的地方欢迎与我交流,谢谢大家!

往期精彩

MCU串口命令解析器的实现


Neil的MCU软件框架经验分享


嵌入式云IOT技术圈公众号精选文章专题汇总

目录
打赏
0
1
1
0
70
分享
相关文章
飞机大战-发射子弹(5)
用Python语言编写飞机大战,主要编写发射子弹。
97 0
Threejs实现模拟河流,水面水流,水管水流,海面
Threejs实现模拟河流,水面水流,水管水流,海面
2623 0
Threejs实现模拟河流,水面水流,水管水流,海面
基于Arduino的线性循迹小车
基于Arduino的线性循迹小车
164 0
电机控制中对地的处理
1.当电路中有电机时,尤其是电压比较高的电机,一定要将控制电和动力电的地隔离开。如果不隔离,电机一启动,控制电路就可能不正常,比如复位、通信不正常等。 2.如果是有单独的电机驱动,那么主控板和驱动器的地最好也分开,实在不行也可以共地。
281 0
电机控制中对地的处理
圆曾经的小车梦,造一台智能小车(三)之小车前进后退左右转基本框架
圆曾经的小车梦,造一台智能小车(三)之小车前进后退左右转基本框架
342 0
基于三相坐标系状态方程的感应电动机起动动态计算(Matlab代码实现)
基于三相坐标系状态方程的感应电动机起动动态计算(Matlab代码实现)
107 0
圆曾经的小车梦,造一台智能小车(二)
圆曾经的小车梦,造一台智能小车(二)
153 1
圆曾经的小车梦,造一台智能小车(四)之QT上位机控制小车
圆曾经的小车梦,造一台智能小车(四)之QT上位机控制小车
294 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等