智能小车制作入门篇

合集下载

51智能小车的制作之蓝牙小车的制作

51智能小车的制作之蓝牙小车的制作

51智能小车的制作之蓝牙小车的制作蓝牙小车是一种使用蓝牙技术进行远程控制的智能小车。

本文将介绍制作蓝牙小车的步骤和所需材料,并给出详细的制作说明。

1.材料准备:-1个小车底盘:可以购买一款适合的小车底盘,也可以自制一个。

-2个直流电机:用于驱动小车轮子的电机。

-2个轮子:连接在电机上,用于让小车运动。

- Arduino控制板:用于控制小车的移动。

-蓝牙模块:用于与智能手机或电脑进行通信。

-电池:用于给电机供电。

-连接线、杜邦线等。

2.连接电路:首先,将两个电机连接到Arduino控制板上。

每个电机连接到一个数字引脚,同时将它们的正极连接到电池的正极,负极连接到电池的负极。

确保电机的方向是一致的,这样它们才能正确地驱动轮子。

然后,将蓝牙模块连接到Arduino的串口引脚。

这些引脚可以通过Arduino的文档或蓝牙模块的说明书来确定。

连接完成后,将Arduino连接到计算机,并上传相应的软件程序。

3.编写程序:使用Arduino IDE软件编写程序。

程序的实现方法因蓝牙模块型号和Arduino控制板型号而不同,可以在网上寻找相应的教程和示例代码。

编写程序的主要目的是实现与蓝牙模块的通信以及控制电机的转动。

通常需要定义一些命令,以便通过蓝牙向小车发送指令。

例如,发送'F'表示前进,发送'B'表示后退,发送'L'表示左转,发送'R'表示右转,等等。

根据收到的指令,程序将控制电机以实现相应的运动。

4.测试与调试:完成程序编写后,将蓝牙模块与智能手机或电脑进行配对。

通过蓝牙串口工具向小车发送指令,观察小车的运动情况。

如果发现小车的运动与指令不一致,可能需要调整电机的连接或编写更准确的程序。

5.优化和扩展:一旦小车能够正常运行,您可以进一步完善和扩展它的功能。

例如,您可以添加超声波传感器,以实现避障功能。

您还可以添加其他传感器,如红外线传感器,以实现更多的智能功能。

使用树莓派制作智能小车

使用树莓派制作智能小车

使⽤树莓派制作智能⼩车电影⾥,时不时地可以看到⼀些这样的场景,⼀辆⼩车,上⾯装有摄像头,这辆⼩车可以通过电脑或都是⼿机进⾏远程遥控,车上摄像头拍到的画⾯,可以实时地显⽰在电脑或⼿机上,就像下图这样。

没有接触过这⽅⾯的朋友或许会觉得这是⼀门很⾼⼤上的技术活,其实,并不然,这种⼩车做起来其实很简单。

那么,这样⼦的⼩车,需要怎么去做呢?其实,我们只需要准备⼀块控制⼩车的电路板(开发板),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.电机驱动模块(内置5V电源输出)4.黑白线循迹模块0.准备所需基本元器件1).基本二驱车体一台。

(本课以穿山乙推出的基本车体为例讲解)2).5x7cm洞洞板、单片机卡槽、51单片机、石英晶体、红色LED、1K电阻、10K排阻各一个;2个瓷片电容、排针40个。

3).5x7cm洞洞板、7805稳压芯片、红色LED、1K电阻各一个;双孔接线柱三个、10u电解电容2个、排针12个、9110驱动芯片2个。

4).5x7cm洞洞板、LM324比较器芯片各一个;红外对管三对、4.7K电阻3个、330电阻三个、红色3mmLED三个。

一、组装车体(图中显示的很清晰吧,照着上螺丝就行了)二、制作单片机控制模块材料:5x7cm洞洞板、单片机卡槽、51单片机、石英晶体、红色LED、1K电阻、10K排阻各一个;2个瓷片电容、排针40个。

电路图如下,主要目的是把单片机的各个引脚用排针引出来,便于使用。

我们也有焊接好的实物图供你参考。

(如果你选用的是STC98系列的单片机在这里可以省掉复位电路不焊,仍能正常工作。

我实物图中就没焊复位)三、制作电机驱动模块材料:5x7cm洞洞板、7805稳压芯片、红色LED、1K电阻各一个;双孔接线柱三个、10u电解电容2个、排针12个、9110驱动芯片2个。

电路图如下,这里我们把电源模块与驱动模块含在了同一个电路板上。

因为电机驱动模块所需的电压是+9V左右(6—15V 均可),而单片机主控和循迹模块所需电压均为+5V。

这里用了一个7805稳压芯片将+9V电压稳出+5V电压。

+9V这是工作室做的电源+驱动模块,仅作参考四、制作循迹模块材料:5x7cm洞洞板、LM324比较器芯片各一个;红外对管三对、4.7K电阻3个、330电阻三个、红色3mmLED三个。

LM324电压比较器工作原理:该芯片内部有四组比较器,原理就是反相输入端Vi—与同相输入端Vi+的电压进行比较,若Vi+大于Vi—则比较器的输出端OUT输出高电平+5V;若Vi+小于Vi—则比较器的输出端OUT输出低电平0V;TCRT5000红外对管工作原理:工作时由蓝色发射管发射红外线,红外线由遮挡物反射回来被接收管接收。

科技小发明制作简易遥控汽车

科技小发明制作简易遥控汽车

科技小发明制作简易遥控汽车在科技飞速发展的今天,遥控汽车已经成为孩子们喜爱的玩具之一。

然而,市面上的遥控汽车价格不菲,且缺乏自己动手制作的乐趣。

今天,就让我们一起探索如何亲手制作一辆简易遥控汽车,感受科技与创意的奇妙结合。

一、所需材料要制作一辆简易遥控汽车,我们需要准备以下材料:1、一块小型电路板2、一个直流电机3、一组电池(可选用干电池或充电电池)4、一个遥控器(可以购买现成的遥控模块)5、一些电线6、一个塑料或木质的车架7、四个车轮8、螺丝、螺母等固定零件9、电钻、剪刀、钳子等工具二、制作步骤1、首先,我们需要搭建车架。

可以使用塑料板或者木板,根据自己的设计剪出合适的形状,然后用螺丝和螺母将其固定成一个框架。

确保车架足够坚固,能够承受汽车运行时的震动和冲击。

2、接下来,安装车轮。

将四个车轮通过轴安装在车架的四个角落,并确保车轮能够自由转动。

3、把直流电机固定在车架上,通常可以选择在车架的后部中间位置。

使用螺丝将电机固定牢固,然后用电线将电机的正负极与电池盒连接起来。

4、在车架上合适的位置安装电池盒,将电池放入其中,并连接好电线,为整个电路提供电源。

5、关键的一步是安装电路板。

将电路板固定在车架上一个便于操作和保护的位置。

然后,根据电路板的说明书,将电机、电池和遥控器的接收模块与电路板进行正确的连接。

6、完成电路连接后,我们需要对遥控汽车进行调试。

打开遥控器和汽车电源,测试电机的转动方向和速度是否正常。

如果电机转动方向不正确,可以通过调换电机的正负极电线来解决。

三、原理介绍简易遥控汽车的工作原理其实并不复杂。

遥控器发出特定频率的信号,汽车上的接收模块接收到这个信号后,将其传递给电路板。

电路板根据接收到的信号指令,控制电机的转动方向和速度,从而实现汽车的前进、后退、左转和右转等动作。

在这个过程中,直流电机起到了将电能转化为机械能的作用,它带动车轮转动,使汽车能够行驶。

而电池则为整个系统提供了所需的电能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

智能小车制作入门篇最近接触了很多机器人爱好者,很多人都对机器人技术展示出了浓厚的兴趣,也在计划如何动手制作自己的第一个机器人。

但是似乎很多的人都摸不到门路,只能是站在大门外满怀兴趣的向内观望,观望了一阵兴趣渐失只好叹口气走开……很多初学者可能都是看了一些视频或是现场的比赛,勾起了儿时的美好回忆,兴起了自己动手制作机器人的念头,很多人可能并不是嵌入式开发的业内人士,甚至没有听说过单片机、步进电机这些名词,看着别人满地乱跑的各种机器人,颇有无处下手的感觉。

有的人一上来就准备做一个可以双足行走的人形机器人,可以平稳行走,可以靠摄像头来读取环境信息,可以语音识别,最好还可以变形…… :—(我的意见是:新手最好还是老老实实的从小车开始吧。

人形机器人可以说是一个系统的大工程,不是一个人玩的起来的,而且资金上的投入也是不可计量的。

一个人形机器人的成型产品最少要卖到几千块——要知道,你在开发过程中是不可能没有错误投入的。

机器人小车技术上门槛较低,资金投入也少,市场上的各种产品和零配件的支持也较多,虽然简单,但可以实现的功能可一点也不少。

我在这里凭自己的经验介绍一些自己动手制作机器人小车的基础知识,如果你是曾经自己动手做过的高手,那么你可以绕行,我这里介绍的都是为未入门者准备的最基本的理论知识和一些动手经验。

那么现在我们开始,首先是理论部分——小车的控制结构。

[一]小车的整体控制系统小车是怎么来控制的?为什么小车判断出障碍物后可以自动的绕开?理论:控制工程——处理自动控制系统各种工程实现问题的综合性工程技术。

包括对自动控制系统提出要求(即规定指标)、进行设计、构造、运行、分析、检验等过程。

它是在电气工程和机械工程的基础上发展起来的。

闭环控制:闭环控制有反馈环节,通过反馈系统是系统的精确度提高,响应时间缩短,适合于对系统的响应时间,稳定性要求高的系统。

开环控制:开环控制没有反馈环节,系统的稳定性不高,响应时间相对来说很长,精确度不高,使用于对系统稳定性精确度要求不高的简单的系统。

一般稍微复杂一点的机器人小车都是闭环控制,也就是说它有一个反馈机制,会根据自己配备的各种传感器来读取环境信息,并且根据这些环境信息来决定自己下一步的行动,决定好后将行动指令发给执行系统,使机器人做出合适的动作。

当然也有的机器人小车是开环控制,我就见过一个机器人小车配了一支笔,将机器人放在纸上,机器人一转,刷的一下在纸上画出一个圈来,当然由于摩擦力和机械误差等原因,画出来的圆圈可能不闭合,也可能不圆。

不过人家阿Q都说了:“孙子才画的圆呢……”有点迷糊?没关系,其实简单一点说就是这样:机器人可以分为三部分——传感器部分、控制器部分、执行器部分。

传感器部分:机器人用来读取各种外部信号的传感器,以及控制机器人行动的各种开关。

好比人的眼睛、耳朵等感觉器官。

控制器部分:接收传感器部分传递过来的信号,并根据事前写入的决策系统(软件程序),来决定机器人对外部信号的反应,将控制信号发给执行器部分。

好比人的大脑。

执行器部分:驱动机器人做出各种行为,包括发出各种信号(点亮发光二极管、发出声音)的部分,并且可以根据控制器部分的信号调整自己的状态。

对机器人小车来说,最基本的就是轮子。

这部分就好比人的四肢一样。

好的,现在我们来分析一下机器人小车的避障行为控制:机器人正在行走过程中(人在路上走),忽然接收到装在机器人前部的传感器发来的一个“左前方有障碍物”的信号(人眼发现左前方有一根电线杆),我们事先写在机器人控制芯片中的程序算法要求机器人发现左前方有障碍物就往右边转(人发现左前方有电线杆就应该往右躲——什么,你还要继续往前走?你牛!那我就等着听响了,哦,原来你只是想去看上面的小广告……),控制芯片对机器人的驱动器——或是轮子,或是双足——发出向右转的指令(人大脑发出向右转的指令,通俗点说就是“拐了拐了”),此时机器人的执行器部分应该立即响应控制器的指令,改变自己的状态,使机器人的前进方向改变,避开障碍物(恭喜你,躲开了电线杆)。

怎么样,是不是有了点机器“人”的意思?那么这三部分是怎么联系起来的呢?很简单:电!其实机器人小车就是一个电子作品,传感器将外部的光信号、声音信号、温度信号等全部转换为控制部分可以接受的电信号,控制系统发出的指令也是各种电信号,通过执行部分转变为电机输出的扭矩、声音、光信号等等。

下面我来分别介绍一下这三个部分。

[二]传感器部分传感器是机器人的眼睛,想要小车完成不同的任务就要配备各种不同的传感器。

现在市场上林林总总的传感器数不胜数,一般个人机器人爱好者经常使用的有碰撞检测传感器(碰撞开关)、红外测障传感器、红外测距传感器、光敏电阻、电子温度计、电子指南针等等。

一般机器人用的传感器返回的信号分两种:一种返回值很简单,只有两个状态:“有”或者“没有”;“是”或者“不是”;“0”或者“1”。

我一般习惯把这种量称为“状态量”。

它所反映的是一种状态,只是简简单单的“是”或“否”。

比如“机器人左边有没有障碍物”,“有没有声音信号”等。

还有一种返回值返回的是一个已知范围内任意值,比如一只光敏电阻返回的信号就可能是0~5V范围内的任意电压信号。

我一般把这种量称为“强度量”。

它所反映的是一个有效范围内的强度。

比如“机器人左边的障碍物有多远”,“现在的声音信号有多强”等。

“状态量”反映的信息较简单,相应的传感器也较简单,成本较低。

而“强度量”反映的信息则较丰富,相应的传感器的成本就会比较高,同时给控制上也带来了更大的灵活性和复杂性。

下面我们来看一些常用的传感器:碰撞开关:电路常开,碰到障碍物后连通,可以用来检测机器人是否发生碰撞。

光敏电阻:光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。

光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。

可以用来检测光线强度。

红外测障传感器:红外测障传感器利用红外线遇到障碍物会反射的原理,来检测某一方向上是否有障碍物的存在。

红外测距传感器:红外测距传感器利用红外信号遇到障碍物距离的不同反射的强度也不同的原理,进行障碍物远近的检测。

红外测距传感器具有一对红外信号发射与接收二极管,发射管发射特定频率的红外信号,接收管接收这种频率的红外信号。

超声波测距传感器:超声波测距传感器利用声音在空气中的传输距离和传输时间成正比的原理,通过检测不同远近的反射面对超声波反射回去的时间不同来检测障碍物的距离。

对于传感器,很多人觉得只要看看文档,知道怎么用了就行。

但我的建议是:不但要知道怎么用,还要知道其检测原理。

只有深刻的理解了传感器的检测原理,才能具有更好的发散性思维。

我举一个例子:当初在学校开展机器人灭火比赛,我们用了厂家提供的地面灰度传感器依靠可见光反射来检测地面白线,效果一直不是很理想。

后来有同学仔细研究了当时电机上配备的光电编码器,发现其原理就是利用红外线在不同颜色表明上反射率不同检测高速旋转的电机上黑白相间的码盘来测出电机的旋转速度,动手将光电编码器上的红外检测模块拆下来装在机器人底部,用来检测地面白线,检测效果一下子好了很多。

购买途径:当地的电子市场,或是网上购买(现在很多机器人商家都有各种各样的传感器提供,其实原理和适用范围都差不多,很多都可以互换通用)。

购买时需要注意的是传感器的电压范围和有效范围。

终极开发:图像识别依靠一只摄像头,根据摄像头返回的视频信号,计算出各个不同物体距自己的距离以及其运动速度等等。

如果你可以迈入这一步,那么,有一门叫做“机器视觉”的学科的大门也就向你敞开了。

[三]控制器部分适合机器人的控制芯片有很多:单片机、DSP、甚至我们计算机上所用的CPU,都可以。

不过我们这里主要介绍的针对机器人小车的技术,所以把其他的先放一放,让我们把注意力放到物美价廉的单片机上来。

首先还是理论课,不要抱怨,我的信条是:不懂理论的开发者永远只能是一个拼装师。

单片机:单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

概括的讲:一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

小芯片有大智慧单片机是自动控制系统中应用非常广泛的控制芯片,现在就在我们身边的许多的电器中都有单片机的身影。

想自己动手制作机器人的话,相应的单片机知识是必不可少的。

系统的单片机知识我这里不想多说,想要对单片机系统有一个深入的理解,还是要找一本比较好的单片机教材一页一页的看下去,网上的任何“技巧”“快速入门”(包括本文)都只能算是水果、零食之类,闲暇无事时可以拿来开开胃,真正想要吃饱吃好,还是要用大饼卷馒头就着米饭吃才行。

我这里只提一些基础的入门概念,给真正的入门者起一点抛砖引玉的作用。

一块我们刚刚从商家手里拿到的单片机芯片,还是一块空白,什么也做不了。

如同一个刚出世的孩子,我们开发人员要做的,就是教会单片机处理各种各样的问题,给单片机配备上各种各样的扩展工具,使单片机可以将复杂的问题简单化,数字化。

单片机开发涉及两方面:硬件、软件。

单片机不同于其他电器,拿过插销直接插在电源上就可以使用,一块空白的单片机想要使用,还需要一些其他的电路来支持。

一般来说,最基本的电路就是单片机最小系统:所谓的单片机最小系统就是指可以让单片机工作起来的最基本的电路,在所有的单片机系统中,你都可以找到类似的电路。

至于它的原理,我这里就不累述了,找本书看去吧。

我再介绍一些做机器人需要的扩展电路:程序下载电路:单片机最终需要程序来控制,一般都是在PC上编写好程序,通过下载线来下载到单片机中执行。

下载需要一个电路来支持,以前的通常做法是连接到PC的串口,不过现在有很多通过USB下载程序的电路。

以上两个电路就是机器人开发所需要的最基本的单片机电路,其他也许还需要一些电机驱动、A/D转换、开关选择等电路。

也许你有些迷糊,可以有一点感到棘手了,这些电路对于一个从未接触过单片机的新手来说可能有些头大,没关系,现在市场上有很多成熟的单片机开发系统出售,价格极为低廉,如果不想在底层电路上多花精力的话,到一些电子商务网站上搜索一下“单片机开发板”,一百多就可以买到功能十分齐全,赠送软件+教程还有技术支持服务的适用开发板了(当然,你如果自己动手的话,成本会更低)。

软件:说白了就是你自己给单片机开发的智能程序,让机器人可以具有最简单的智能。

不要看到“智能”这两个字就觉得多么高深,看到前面有电线杆知道要拐,这,就是智能。

不同的单片机需要不同的开发环境,这个要在购买的时候就弄清楚,很多单片机公司都有自己配套的开发软件,很多都是可以在公司网站上免费下载。

一般来说,国外的很多芯片公司在自己的网站上都有非常丰富和适用的资料,抱本英汉词典,将网站上的资料浏览一下,你会发现一切都变得十分简单。

相关文档
最新文档