智能小车制作详细过程详解
从机械到电路教你做智能小车

X-SHARK 智能小车V1.0 设计参考手册西安电子科技大学测控技术与仪器教研中心2006-05-091.概述X-SHARK智能巡线小车模型是一辆完全由PCB拼装的小车。
所有的机械结构和零部件都安装固定在电路板上。
因此完全不需要机械加工,非常适合业余机器人爱好者自制。
本文简述了X-SHARK智能巡线小车的设计思路和实现过程。
包括小车的机械结构、电路、软件、控制算法、调试方法等。
可作为一般的设计参考。
小车的左右后轮分别由2只6V直流减速电机提供动力;前导向轮是一只万向轮。
430单片机的PWM发生器产生2路占空比可变的方波,经三极管扩流后分别驱动后轮左右电机。
控制2路PWM的比例,不仅可以调节小车向前运动的速度,还可通过2路PWM占空比的差异,改变小车运动方向。
10只反射式红外传感器位于小车前方,垂直探测地面的黑线。
由传感器采回的数据求出黑线偏移量,由PID算法计算出转弯量,再计算PWM发出两轮的速度差,控制小车沿轨迹行驶。
小车离意外开黑线时,传感器无数据,还有相应的错误处理和寻线程序。
2.机械结构2.1 后轮(驱动轮)两块2mm厚的PCB板通过2支沉头螺栓定为一体,构成了后轮的主体。
用小锉刀沿两板夹缝,挫一道V型槽,上一条O型橡胶圈,就构成一只轮胎。
后轮的固定采用过盈配合。
轮的中心孔为2.8mm,比电机轴略小0.2mm。
PCB板挖空2个圆孔,并用狭缝和中心孔贯通,构成一个有弹性的“卡缝”。
将电机轴用力推入轮中心孔,PCB由于弹性形变会略微扩张,弹力将轴紧紧抱死。
改进:现在的缺点是O型圈容易脱落,可用704硅橡胶固定。
另外为了固定O型圈,需要用挫加工V型槽。
可改为3块PCB构成轮子,中间一块半径略小2mm。
2.2 前轮(导向轮)前轮是决定小车能否灵活拐弯的关键部分。
这辆小车和汽车不同,不是靠前轮摆舵控制转弯,而是靠左右后轮速度差来实现转弯控制。
这样前轮实际上是从动轮。
下图中,当左轮速度高于右轮时,小车右转弯;前轮的速度可以分解为前进的速度和水平侧移的速度。
51智能小车的制作之蓝牙小车的制作

51智能小车的制作之蓝牙小车的制作蓝牙小车是一种使用蓝牙技术进行远程控制的智能小车。
本文将介绍制作蓝牙小车的步骤和所需材料,并给出详细的制作说明。
1.材料准备:-1个小车底盘:可以购买一款适合的小车底盘,也可以自制一个。
-2个直流电机:用于驱动小车轮子的电机。
-2个轮子:连接在电机上,用于让小车运动。
- Arduino控制板:用于控制小车的移动。
-蓝牙模块:用于与智能手机或电脑进行通信。
-电池:用于给电机供电。
-连接线、杜邦线等。
2.连接电路:首先,将两个电机连接到Arduino控制板上。
每个电机连接到一个数字引脚,同时将它们的正极连接到电池的正极,负极连接到电池的负极。
确保电机的方向是一致的,这样它们才能正确地驱动轮子。
然后,将蓝牙模块连接到Arduino的串口引脚。
这些引脚可以通过Arduino的文档或蓝牙模块的说明书来确定。
连接完成后,将Arduino连接到计算机,并上传相应的软件程序。
3.编写程序:使用Arduino IDE软件编写程序。
程序的实现方法因蓝牙模块型号和Arduino控制板型号而不同,可以在网上寻找相应的教程和示例代码。
编写程序的主要目的是实现与蓝牙模块的通信以及控制电机的转动。
通常需要定义一些命令,以便通过蓝牙向小车发送指令。
例如,发送'F'表示前进,发送'B'表示后退,发送'L'表示左转,发送'R'表示右转,等等。
根据收到的指令,程序将控制电机以实现相应的运动。
4.测试与调试:完成程序编写后,将蓝牙模块与智能手机或电脑进行配对。
通过蓝牙串口工具向小车发送指令,观察小车的运动情况。
如果发现小车的运动与指令不一致,可能需要调整电机的连接或编写更准确的程序。
5.优化和扩展:一旦小车能够正常运行,您可以进一步完善和扩展它的功能。
例如,您可以添加超声波传感器,以实现避障功能。
您还可以添加其他传感器,如红外线传感器,以实现更多的智能功能。
如何着手制作一个机器人小车--给初学者【下】

如何着手制作一个机器人小车--给初学者【下】[三]控制器部分适合机器人的控制芯片有很多:单片机、DSP、甚至我们计算机上所用的CPU,都可以。
不过我们这里主要介绍的针对机器人小车的技术,所以把其他的先放一放,让我们把注意力放到物美价廉的单片机上来。
首先还是理论课,不要抱怨,我的信条是:不懂理论的开发者永远只能是一个拼装师。
单片机:单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
小芯片有大智慧单片机是自动控制系统中应用非常广泛的控制芯片,现在就在我们身边的许多的电器中都有单片机的身影。
想自己动手制作机器人的话,相应的单片机知识是必不可少的。
系统的单片机知识我这里不想多说,想要对单片机系统有一个深入的理解,还是要找一本比较好的单片机教材一页一页的看下去,网上的任何“技巧”“快速入门”(包括本文)都只能算是水果、零食之类,闲暇无事时可以拿来开开胃,真正想要吃饱吃好,还是要用大饼卷馒头就着米饭吃才行。
我这里只提一些基础的入门概念,给真正的入门者起一点抛砖引玉的作用。
一块我们刚刚从商家手里拿到的单片机芯片,还是一块空白,什么也做不了。
如同一个刚出世的孩子,我们开发人员要做的,就是教会单片机处理各种各样的问题,给单片机配备上各种各样的扩展工具,使单片机可以将复杂的问题简单化,数字化。
单片机开发涉及两方面:硬件、软件。
单片机不同于其他电器,拿过插销直接插在电源上就可以使用,一块空白的单片机想要使用,还需要一些其他的电路来支持。
一般来说,最基本的电路就是单片机最小系统:所谓的单片机最小系统就是指可以让单片机工作起来的最基本的电路,在所有的单片机系统中,你都可以找到类似的电路。
至于它的原理,我这里就不累述了,找本书看去吧。
我再介绍一些做机器人需要的扩展电路:程序下载电路:单片机最终需要程序来控制,一般都是在PC上编写好程序,通过下载线来下载到单片机中执行。
使用树莓派制作智能小车

使⽤树莓派制作智能⼩车电影⾥,时不时地可以看到⼀些这样的场景,⼀辆⼩车,上⾯装有摄像头,这辆⼩车可以通过电脑或都是⼿机进⾏远程遥控,车上摄像头拍到的画⾯,可以实时地显⽰在电脑或⼿机上,就像下图这样。
没有接触过这⽅⾯的朋友或许会觉得这是⼀门很⾼⼤上的技术活,其实,并不然,这种⼩车做起来其实很简单。
那么,这样⼦的⼩车,需要怎么去做呢?其实,我们只需要准备⼀块控制⼩车的电路板(开发板),2到4个电机(马达)、⼩车架⼦⼀个、摄像头以及摄像头云台⼀个,以上这些基础配件,然后对开发板进⾏编程、控制就可以了,整体硬件成本加起来不到500块钱。
开发板:开发板有很多种,⽐如51单⽚机、树莓派、STM32、Arduino、micro:bit等等,都可以做为⼩车的控制板,我使⽤的是树莓派开发板,然后,可持树莓派有很多版本、型号,最便宜的树莓派zero 68元就可以买到,不过不建议买这种,没有⽹卡,需要另外买⽹线模块,我使⽤的是树莓派3B,价格220元,带有⽆线和有线⽹卡,还带有蓝⽛。
⼩车架⼦:某宝上有很多这种车架⼦,各式各样的,只需要在某宝上搜索“智能⼩车”就能找到,带上马达⼀整套,也就五六⼗块钱。
摄像头+云台:某宝上也是⼀搜⼀⼤堆,⽐如我下⾯⽤的那个,45块钱。
配件准备好了,就是给⼩车的开发板装系统,然后对⼩车进⾏编程控制。
⼩车的控制最主要有两⽅⾯的控制,⼀个是⼩车的前后左右的运动控制,⼀个是摄像头的拍摄、上下左右转运的控制。
#-*- coding:UTF-8 -*-import RPi.GPIO as GPIOimport time#⼩车电机引脚定义LeftIn1 = 20LeftIn2 = 21LeftSpeed = 16RightIn1 = 19RightIn2 = 26RightSpeed = 13#设置GPIO⼝为BCM编码⽅式GPIO.setmode(GPIO.BCM)#忽略警告信息GPIO.setwarnings(False)#电机引脚初始化操作def car_init():global pwm_LeftSpeedglobal pwm_RightSpeedglobal delaytimeGPIO.setup(LeftSpeed,GPIO.OUT,initial=GPIO.LOW)GPIO.setup(LeftIn1,GPIO.OUT,initial=GPIO.LOW)GPIO.setup(LeftIn2,GPIO.OUT,initial=GPIO.LOW)GPIO.setup(RightSpeed,GPIO.OUT,initial=GPIO.LOW)GPIO.setup(RightIn1,GPIO.OUT,initial=GPIO.LOW)GPIO.setup(RightIn2,GPIO.OUT,initial=GPIO.LOW)#设置pwm引脚和频率为2000hzpwm_LeftSpeed = GPIO.PWM(LeftSpeed, 2000)pwm_RightSpeed = GPIO.PWM(RightSpeed, 2000)pwm_LeftSpeed.start(0)pwm_RightSpeed.start(0)#⼩车前进def run(delaytime):GPIO.output(LeftIn1, GPIO.HIGH)GPIO.output(LeftIn2, GPIO.LOW)GPIO.output(RightIn1, GPIO.HIGH)GPIO.output(RightIn2, GPIO.LOW)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)#⼩车后退def back(delaytime):GPIO.output(LeftIn1, GPIO.LOW)GPIO.output(LeftIn2, GPIO.HIGH)GPIO.output(RightIn1, GPIO.LOW)GPIO.output(RightIn2, GPIO.HIGH)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)#⼩车左转def left(delaytime):GPIO.output(LeftIn1, GPIO.LOW)GPIO.output(LeftIn2, GPIO.LOW)GPIO.output(RightIn1, GPIO.HIGH)GPIO.output(RightIn2, GPIO.LOW)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)#⼩车右转def right(delaytime):GPIO.output(LeftIn1, GPIO.HIGH)GPIO.output(LeftIn2, GPIO.LOW)GPIO.output(RightIn1, GPIO.LOW)GPIO.output(RightIn2, GPIO.LOW)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)#⼩车原地左转def spin_left(delaytime):GPIO.output(LeftIn1, GPIO.LOW)GPIO.output(LeftIn2, GPIO.HIGH)GPIO.output(RightIn1, GPIO.HIGH)GPIO.output(RightIn2, GPIO.LOW)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)#⼩车原地右转def spin_right(delaytime):GPIO.output(LeftIn1, GPIO.HIGH)GPIO.output(LeftIn2, GPIO.LOW)GPIO.output(RightIn1, GPIO.LOW)GPIO.output(RightIn2, GPIO.HIGH)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)#⼩车停⽌def brake(delaytime):GPIO.output(LeftIn1, GPIO.LOW)GPIO.output(LeftIn2, GPIO.LOW)GPIO.output(RightIn1, GPIO.LOW)GPIO.output(RightIn2, GPIO.LOW)pwm_LeftSpeed.ChangeDutyCycle(80)pwm_RightSpeed.ChangeDutyCycle(80)time.sleep(delaytime)摄像头控制有两部分,⼀是拍摄、⼆是云台转动。
机器人智能小车制作与编程

机器人智能小车制作与编程
一、智能小车的制作
1、准备材料:电机、智能小车及其相关的板、轮子、电池、杜邦线、螺丝刀、钳子、电钻、活动榫头、把手以及其他相关材料。
2、连接电机与电池:将电机与电池连接起来,用杜邦线将正极引脚
连接到电机的正极,负极引脚连接到电机的负极,确保电池与电机之间的
稳定连接和电路的正确性。
3、安装电机:将电机安装在智能小车的底盘上,使用螺丝刀将电机
固定在底盘上,确保电机的稳定性和牢固性。
4、连接轮子:将轮子连接到电机上,将活动榫头连接到轮子上,再
将把手连接到活动榫头上,以保证轮子与电机之间的稳定连接。
5、安装智能小车板:将智能小车板安装在轮子上,使用螺丝刀将其
固定在轮子上,以保证智能小车板的稳定性和牢固性。
二、智能小车的编程
2、配置参数:将智能小车的电机、电池、摄像头等硬件连接到计算
机上,打开Arduino IDE软件,根据硬件的设置进行参数配置,确保硬件
参数的正确性。
3、编写代码:根据智能小车的功能,利用Arduino IDE进行软件编写,编写完成后,将代码上传到智能小车板上。
智能小车的设计与制作

智能小车的设计与制作(二)引言概述智能小车作为当今智能科技领域的一项重要研究课题,具有广泛的应用前景和深远的影响力。
在智能小车的设计与制作过程中,需要综合应用计算机科学、机械工程、电子技术等多个学科领域的知识和技术。
本文将对智能小车的设计与制作进行详细阐述,旨在为从事相关领域研究的人员提供一些指导和参考。
正文内容:一、硬件设计1.选择合适的底盘结构:根据智能小车的用途和环境要求来选择合适的底盘结构,包括四轮驱动、两轮驱动、全向轮等类型。
2.电源系统设计:设计合理的电源系统,包括电池容量的选择、充电电路的设计以及电源管理模块的选用。
3.传感器选择和布局:根据智能小车的功能需求,选择合适的传感器,如红外线传感器、超声波传感器、摄像头等,并合理布局在小车上。
4.控制器选用:根据小车的复杂程度和功能要求,选择合适的控制器,如单片机、Arduino、树莓派等。
5.软件与硬件协同设计:设计合理的软件与硬件协同设计方案,确保硬件能够有效地被控制和驱动。
二、感知与决策系统1.数据采集与处理:通过传感器采集环境信息,并进行合理的数据处理与滤波,从而得到准确的环境状态信息。
2.环境地图构建:基于传感器数据和定位系统,构建环境地图,并将其应用于路径规划、避障等问题。
3.目标检测与识别:通过图像处理和机器学习技术,进行目标检测与识别,实现对场景中目标物体的感知与识别。
4.位置与姿态估计:利用定位系统和传感器数据,对小车的位置与姿态进行估计,以便实现精确的运动控制。
5.决策与规划算法:根据环境信息和目标要求,设计有效的决策与规划算法,使小车能够做出正确的决策和路径规划。
三、运动控制系统1.底盘控制算法:设计底盘控制算法,实现小车的运动控制,包括速度控制、转向控制等。
2.摄像头云台控制:设计摄像头云台控制算法,实现对摄像头方向的控制,以便进行目标跟踪和图像采集。
3.避障算法:设计避障算法,使小车能够基于传感器数据来避免障碍物,保障行驶的安全性。
智能小车制作详细教程

智能小车制作详细教程智能小车是一种具有自主导航和智能决策能力的机器人车辆。
它可以通过传感器感知周围环境,并根据程序进行自主控制,实现不同场景下的导航、避障和定位等功能。
下面将为你介绍如何制作一辆智能小车的详细教程。
首先,我们需要准备以下材料和设备:1. 一个底盘,它可以是一个具有轮子的坚固平台,也可以是一个注重设计的小车模型。
2. 两个直流电机,用于驱动车辆的轮子。
3. 一个电源,例如锂电池,用于给电机和电子设备供电。
4. 一个主控制器,如Arduino板或Raspberry Pi,用于处理传感器数据和执行控制程序。
5. 一套传感器,例如超声波传感器、红外线传感器和摄像头,用于感知周围环境。
6. 一些导线、电路板和螺丝等连接和固定材料。
7. 一个电脑,用于程序开发和调试。
接下来,我们可以开始制作智能小车:1. 首先,将直流电机连接到主控制器上,确保它们可以通过电源进行驱动。
2. 通过编程,编写一个基本的控制程序,使电机可以运行并控制车辆的前进、后退、左转和右转等行为。
3. 安装传感器模块,例如超声波传感器或红外线传感器,用于检测障碍物和测量距离。
4. 根据传感器的数据,更新控制程序,使车辆能够在遇到障碍物时自动停下或转向避开障碍物。
5. 如果需要进行定位和导航,可以添加一个GPS模块或采用视觉识别技术,例如使用摄像头检测道路标志或地标。
6. 调试程序并优化车辆的导航和控制性能。
7. 最后,将所有组件和电子设备固定在底盘上,确保它们牢固可靠。
通过以上步骤,我们可以制作出一辆基本的智能小车。
当然,实际制作中可能会遇到一些困难和挑战,需要更深入的知识和技能来解决。
不过,这个简单的教程可以为初学者提供一个入门指南,让他们了解智能小车制作的基本流程和方法。
希望这个教程对你有所帮助!。
手把手教做智能小车

手把手教做智能小车我们学习完51单片机入门之后,一定要多做一些有意思的小制作,才能将单片机知识理解的更加深刻,而智能小车不失为一个不错的选择,今天将全程介绍智能小车的制作过程。
一般而言,常见的智能小车分为:蓝牙遥控、超声波避障、光电寻迹等。
这次主要介绍蓝牙遥控和超声波避障。
1.蓝牙遥控小车1.1功能要求使用手机串口软件和小车上的蓝牙芯片进行通信,控制小车转向、前进、后退、停止、启动等。
1.2元器件准备STC89C52单片机一片(其他型号的51同样可以,注意要有配套的下载器或者开发板,下载程序比较方便);L298N驱动模块两个;亚克力板车架一个(淘宝有卖,配有电机、轮胎);蓝牙模块一个(型号HC06);电池盒、电池(建议两节18650电池);杜邦线若干;上述所有的原材料淘宝均有卖,请自行选购。
1.3小车拼装购买齐备上述原材料之后,可以查看卖家提供的说明或者相应芯片的Datasheet,并使用杜邦线将各部分电路连接起来。
既然选择学习单片机和电子制作,就要有一定的探索精神和钻研精神,小车拼装过程比较简单,就不再一一赘述,拼装完如下:这是我几年之前做的,比较简陋,刚开始使用的是四节小电池,动力不够强劲,后来改成两节18650就跑的飞起。
1.4程序设计部分小车的基本功能要求有了,主体也实现了,接下来当然是程序设计了。
下面以STC89C52单片机为例,以KEIL2为开发软件,程序如下,比较简单,自行理解:#includesbit IN1=P1^0;sbitIN2=P1^1;sbit IN3=P1^2;sbit IN4=P1^3;sbit IN5=P1^4;sbit IN6=P1^5;sbit IN7=P1^6;sbit IN8=P1^7;#define left_go {IN1=1,IN2=0,IN3=1,IN4=0;}//P1:0-3控制左边#defineleft_back {IN1=0,IN2=1,IN3=0,IN4=1;}#define left_stop {IN1=0,IN2=0,IN3=0,IN4=0;}#define right_go{IN5=1,IN6=0,IN7=1,IN8=0;}//P1:4-7控制右边#define right_back {IN5=0,IN6=1,IN7=0,IN8=1;}#define right_stop {IN5=0,IN6=0,IN7=0,IN8=0;}#define uchar unsignedchar#define uint unsigned intvoid run();void backrun();void leftrun();void rightrun();void stoprun();void delay(uchar time);void init();uchar flag,com;void main(){ init(); while(1) { if(flag==1) { switch(com) { case 1: run(); break; case 2: backrun(); break; case 3: leftrun(); break; case 4: rightrun(); break; case 5: stoprun(); break; default: break; } }RI=1; }}void init(){ TMOD=0x20; TH1=0xfd; TL1=0xfd;TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1;flag=0;}void run(){ left_go; right_go;}voidbackrun(){ left_back; right_back;}void leftrun(){ left_back; right_go;}void rightrun(){ left_go; right_back;}voidstoprun(){ left_stop; right_stop;}void ser() interrupt 4{ RI=0; com=SBUF; flag=1;} 几年前初学单片机写的C51程序,献丑了!1.5 完成至此,蓝牙小车就初步完成,在网上找一个串口软件,连上小车上的蓝牙芯片,就可以实现相应的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小车底部装配
取出连接扣的技巧
小车前部的装配
万向轮装配
电机变速箱装配
车轮装配
喇叭架装配
电池盒及电主板装配
传感器的装配
发光二极管装配
控制电路连接
智 能 小 车 全 貌
构建小车的成员
连接扣
有四种长度 分别为: 10.5mm 14mm 21mm 28mm
弹性垫圈
弹性垫圈 用于构件 的连接。 有三种规 格: 单孔 双孔 三孔
连杆
上述为直板连杆,有:13孔、 11孔、9孔、7孔、5孔。
智能小车的装配
1、小车底部装配 2、小车前部装配 3、万向轮装配 4、电机变速箱装配、车轮装配 5、喇叭架装配 6、电池盒与控制主板的装配 7、传感器装配 8、控制电路连接 9、整车美化整理