跟着我做。这篇文章会叫你如何一步一步的制造一辆Android智能汽车。若是需要相关的软件和平台,可与博主联系。开始之前,让我们先看一下这是一个怎样的东西。(以下多图,慎入)
在这个项目中,我会将各个任务进行划分,按优先级进行排列:
1,模块化:我需要将所有的大问题化解成各个小问题。为了实现这一点,可以讲车辆分解成三个部分和若干等级。
2,使用最少的连接线:原则上线缆越少则错误(短路、开路等等)发生的概率也就越小。
3,需要可配置:这就是为什么要采用模块化的原因,是的组装储量更加灵活。
4,可维护性:使得系统易于修改和维护。
最后要说的是,整个过程会是一个框架性的教程,我不会聊到非常细的环节,比如如何安装速度编码器或者如何校准电子速度控制器等等。我觉得重点应该是引导我们去开发出有自己特色的东西。然后向那些早期的使用Android开发自主智能机器的人们致敬。
下面,我进入该文章的本体:
项目的组件
1,1/10比例模型汽车:
原型车是R/C汽车系列中的HSP赛车,当然,你想使用类似底牌的汽车也可以的。
2,Arduino Mega开发板
Arduino Mega控制板应该有人很熟悉,它能搭配非常多的传感器和电机。但它不负责控制这个模型,而只是将数据传递给Android手机。
3,蓝牙模块(HC-05)
HC-05蓝牙模块是一款性价比很高的模块。它可以以Anduino mega核心进行通信。与核心相连的接口一般是串口,然后通过无线的方式将数据发送到任何一个与它相连的设备。放在接收数据时,可以通过判断HC-05模块上的一个Activity引脚确认是否有数据进行传输。
4,电子速度控制器:
电子速度控制器,发送PWM信号用来驱动电机,他收到Arduino核心的控制,另外链接一块电池。
5,伺服电机
伺服电机,它有Arduino通过PWM信号进行控制,能控制车辆行进的方向。它需要链接电池而不是直接接到Arduino板子的电源输出,因为它的运行需要较大的电流。
6,超声波传感器(HC-SR04)
超声波传感器使用一个超声波的脉冲来计算距离的,通过声波对一个物体的反射计算出它距离物体还有多少距离。每个传感器连接到Arduino的一个数字引脚。
7,夏普的红外传感器(SHARP GP2D120)
红外传感器的工作方式与超声波的工作方式类似。也是通过波长的传播测量出物体的距离。这个模块连接到Arduino的一个模拟引脚。一般,我们可以通过红外传感器来检测有效距离是4厘米到25厘米。
8,速度编码器(对4个轮子的运动进行编码)
速度编码器连接到车轮,使我们能够计算出它走了多少距离。通过检测车轮内侧的黑色条纹装饰,传感器可以感知出它运行了多少距离,从而得知车子的运行状态。改编码器连接到一个Arduino的中断。
9,九轴的运动传感器:
该组件提供了对三维空间的汽车运动反馈,它包含一个为控制器(atmega328p),加速度计,陀螺仪和磁力计。但是有与电磁可能会有干扰,所以它的测量数据未必准确,但,能够通过软件的方法加以改善,我们目前可以不用它的数据。
10,陀螺仪(L3G4200D)
陀螺仪是用来计算车辆的转向角度,或者说是偏航。这对于停车特别有帮助。
11,红外阵列传感器
红外线阵列是由三个红外线传感器组成,每个都能返回一个信号。它们能够检测白色的表面,我们用它来检测车辆是否行使在车道的中间,这样能够提高超车性能和精度。四个信号(每个两个)通过或门连接到Arduino的中断脚。
12,二输入或门芯片(74HC32)
或门芯片电路焊接成一块小板子以方便连接。用来接收红外阵列的信号,以减少直接连接到Arduino芯片上的引脚数量。我们使用四个信号(两个红外传感器),当其中一个检测到信号,就能出发中断,机器就能判断是在那一边越线了。
13,遥控器
把遥控器作为汽车的默认配置,是因为如果在紧急的情况下,使用遥控器进行控制是特别有效的。因为一般情况下使用自动驾驶不会有问题,而处于安全考虑,我们必须要配置遥控器。
14,发光二极管,电阻,以及其他
这些是一些附件,但是不可或缺。
连接原理图
在上面,你能看到各种连接如何配置,还有如何实现灵活的修改。
例如,汽车顶部的隔室包括了各种距离传感器和驱动板。中间舱主要是一个黑色塑料片组成的组件,我已安装在车辆上。这些包括Arduino板子,蓝牙模块,遥控模块,连接头,陀螺仪,九轴传感器等。
蓝牙模块和九轴传感器可以考虑安装在车厢底部,因为它们直接连接到车厢。考虑到访问方面,并没有将它们分到下部隔室组件中。
最后,最底部,是由哪些底盘组件组成,如电池,电机,ESC,阵列速度编码器,红外灯。我特意将它们隔开,是的这些部件尽可能少的接触。这样就能做大模块化。
底部部件
底部隔室的组成你几乎不用做什么调整。包括直流电机,调速器,伺服电机,速度编码器,红外线阵列。同时,在电池和其他组件之间添加一个开关是个很好的做法。
中间部件
在中间隔室,我见零件放在也给塑料片上,我把这部分放在了汽车的梁上。将一张纸钻四个孔,这样允许你在下面通过电缆。包括Arduino板子,蓝牙模块,遥控收发器,连接端子,陀螺仪和九轴传感器。有些需要您到车厢顶部,还好,底盘上有螺丝孔之类的,这让固定变得容易些。
顶部
顶部的隔室安装在汽车车上外壳的内侧。在上面,我已经安装了各种传感器和驱动板。改隔室通过通信总线连接到中间层,这有助于把持布线的相对干净。
然后是安装Android设备,该设备的屏幕背对汽车,通话和音量键朝上。
用Android驾驶车子
组装的汽车使用Android应用进行控制,通过蓝牙进行通信。该应用程序与主板上的微控制器相连,驱动电机和分析来自传感器的数据。应用程序有图形控制界面。
Android的应用程序,我称之为Carduino,在Android的Jelly Bean、KitKat、Lollipop版本上运行。并在以下手机上进行了测试:XiaoMi Mi3,OnePluse One
你可以尝试和添加不同的功能,比如停车、超车、等等。
優態客(Yourtechnic)的博客:www.yourtechnic.com
優態客(Yourtechnic)的联系方式:postmaster@yourtechnic.com