基于stm32f4的蓝牙控制小车
ARM-STM32校园创新大赛
项目报告
题目:基于stm32f4的蓝牙控制小车
学校:中南民族大学
指导教师:
视频观看地址:https://www.360docs.net/doc/0e64342.html,/v_show/id_XNjA3NTE4MzU2.html
题目:基于stm32f4的蓝牙控制小车
关键词:STM32F4 LM2940-5.0 L298N FBT06_LPDB 蓝牙串口通信android
摘要
“基于stm32f4的蓝牙控制小车”是一个基于意法半导体与ARM公司生产的STM32F4 DISCOVERY开发板的集电机驱动模块、电源管理模块、stm32f4主控模块、蓝牙串口通信模块、android控制端模块。电机驱动模块使用了两个L298N 芯片来驱动4路电机,使能端连接4路来自主控板的PWM波信号,8个输入端接主控板的8个输出端口;电源管理模块使用了LM2940-5.0芯片进行12V到5V 的转换,12V用于电机模块的供电,5V用于蓝牙模块、传感器等的供电;主控模块采用了MDK编辑程序,然后下载到主控板,实现硬件与软件的交互;蓝牙串口通信模块则是采用了FBT06_LPDB针插蓝牙模块,与主控板进行串口通信,同时与android手机进行通信;android控制端模块是一个集开启蓝牙、搜索蓝牙、控制小车等功能。用户可以通过android控制端进行控制小车的运动,实现一些用户需要的功能和服务。
1.引言
蓝牙的创始人是瑞典爱立信公司,蓝牙技术是一种无限数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。手机之间通过蓝牙实现数据共享成为常理,将手机变为遥控器为人们的生活带来无限方便。遥控小车在工业、国防、科研等领域应用越来越广泛,例如说:消防遥控小车、探测小车等。本文详细阐述了使用蓝牙通信的手机遥控小车前行、倒退、左转、右转和停止等功能的软硬件设计过程。
2.系统方案
该系统分为电机驱动模块、电源管理模块、主控板、蓝牙通信模块、android 控制端等5个模块,如图2.1所示:
图2.1 系统模块图
3. 系统硬件设计
3.1 电机驱动模块 3.1.1 L298N 的封装
H 桥电路虽然有着诸多的优点,但是在实际制作过程中,由于元件较多,电路的搭建也较为麻烦,增加了硬件设计的复杂度。
由于H 桥电路有诸多的优点,但是在实际制作过程中电路又比较麻烦,因此在本设计中我们采用H 桥集成电机驱动芯片L298。L298N 的工作原理和以上介绍的H 桥相同,引脚图如图3.1 所示:
图3.1 L298N封装图
3.1.2 L298N的原理图设计
L298N 是ST 公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15 脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H 桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N 芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。L298 的参考电路图如图3.2所示。
图3.2 电机驱动电路原理图
3.1.3 电机驱动模块实物
1、控制板内部带5V逻辑电平转换芯片,不需要额外的5V供电。
2、如果EN1、EN2、EN
3、EN4不接PWM调速信号,次脚需要和对应的管教短接。
3、GND和12V接电机电源,其中12V可以接7V--24V电平,板子上的电源开关只是控制逻辑5V电平的开关,L298的12V电源不受此开关控制.
4、输出端和输入端一一对应,当输入端为5V时,输出端也为高电平,输入端为
低电平时输出亦为低电平。
图3.3 L298N电机驱动模块实物图
3.2 电源管理模块
3.2.1智能车电源设计要点
电源是整个系统稳定工作的前提,因此必须有一个合理的电源设计,对于小车来说电源设计应
注意两点:
1. 与一般的稳压电源不同,小车的电池电压一般在6-8V 左右,还要考虑在电池损耗的情况下电压的降低,因此常用的78 系列稳压芯片不再能够满足要求,因此必须采用低压差的稳压芯片,在本文中以较为常见的LM2940-5.0 为例。
2. 单片机必须与大电流器件分开供电,避免大电流器件对单片机造成干扰,影响单片机的稳定运行。
现在各种新型的电源芯片层出不穷,各位读者可以根据自己的需求自行选择电源芯片,对于本设计应该主要注意稳压压差和最大输出电流两个指标能否满足设计要求。
3.2.2 低压差稳压芯片LM2940 简介
LM2940 系列是输出电压固定的低压差三端端稳压器;输出电压有5V、8V、10V 多种;最大输出电流1A;输出电流1A 时,最小输入输出电压差小于0.8V;最大输入电压26V;工作温度-40~+125℃;
内含静态电流降低电路、电流限制、过热保护、电池反接和反插入保护电路。同时LM2940 价格适中而且较容易购买,非常适合在本设计中使用。LM2940-5.0 封装和实物如图3.4所示。
图3.4 LM2940 封装和实物图
如图3.5所示,采用两路供电,这样可以使用其中一路单独为STM32F4discovery 电路板供电,指示灯等供电。另外一路提供L298N、舵机、蓝牙的工作电压,L298N 的驱动电压由电池不经任何处理直接给出。舵机可以用6V 供电,也可以直接用5V 供电。
图3.5 电源模块原理图
如图3.6中的PCB图:
图3.6 电源模块PCB图
图3.7 是运用腐蚀液自制的电源管理模块,具有12v\5v的供电模块,可同时给电机模块和主控板(STM32DISCOVERY)供电:
图3.7 电源管理模块实物图
4.系统软件设计
4.1 主控板程序设计
4.1.1 main程序设计
主函数主要分为延迟时间初始化、串口接收模块程序、电机初始化三部分。主函数的流程图如图4.1所示:
图4.1 主函数流程图
主函数程序代码如下:
int main(void)
{
delay_init(168);//延迟时间初始化
uart_init(9600);//串口初始化
Direction(1);//电机初始化
delay_ms(10);//延迟10ms
printf(" welcome to control the smart car!:\n\r");//输入语句
while(1);
}
4.1.2 串口接收模块程序
主控板接收到蓝牙从串口传来的数据后存入Res变量,然后通过分支程序来选择执行前进、后退、左转、右转和停止等功能。该模块的程序流程图如图2
所示:
图2 串口接收程序流程图
4.1.3 修改PWM输出值程序
该程序是基于“4_PWM的实现”中的程序改编的。代码如下:void Change_PWM(int duty1,int duty2,int duty3,int duty4)
{
SCB->AIRCR=0x05AF00;// 中断优先级分组抢占:响应=3:1 RCC->AHB1ENR|=(1<<2);// 打开GPIOC时钟
GPIOC->MODER|=0x000AA000;// pc6789第二功能,推挽输出GPIOC->OSPEEDR|=0x000FF000;//输出速度为100m
GPIOC->PUPDR|=0x00055000;//上拉
GPIOC->AFR[0]|=0x22000000;//pc6789的第二功能为AF2 GPIOC->AFR[1]|=0x00000022;
RCC->APB1ENR|=(1<<1);//打开TIM3时钟
TIM3->PSC=83;//对84M时钟进行84分频,使得计数频率为1M TIM3->ARR=10000;//周期为10ms
TIM3->EGR|=1;//产生一次更新时间
TIM3->CCMR1|=0x6060;//PWM模式1
TIM3->CCMR2|=0x6060;//PWM模式2
TIM3->CCR1=duty1;//1路PWM
TIM3->CCR2=duty2;//2路PWM
TIM3->CCR3=duty3;//3路PWM
TIM3->CCR4=duty4;//4路PWM
TIM3->CCER|=0x1111;//使能比较输出
TIM3->CCMR1|=0x0808;//启动预装载
TIM3->CCMR2|=0x8080;
TIM3->CR1|=1;//开始计时
}
4.1.4 设置电机转向程序
改程序将电机驱动模块的8个输入端口接到了主控板的8个GPIO口,通过推挽输出,从而控制电机的转向,代码如下:
void Direction(int direction)
{
SysTick_Config(SystemCoreClock / 1000); //时钟中断设为1ms
RCC->AHB1ENR |= 0x00000005; //使能GPIOA和GPIOD时钟
RCC->APB2ENR |= (1<<14); //使能syscfg时钟
if(direction==0)
{
GPIOA->MODER &= 0xffff0000; //设置PA0,1,2,3为输出
GPIOA->MODER |= 0x00005555;
GPIOA->OTYPER &= 0xFFFFff00; //设置PA0,1,2,3为推挽输出
GPIOA->OSPEEDR &= 0xffff0000; //设置PA0,1,2,3的输出速度为100M GPIOA->OSPEEDR |= 0x0000ffff;
SYSCFG->CMPCR = 0x00000001; //使用IO补偿单元
GPIOA->PUPDR &= 0xffffff00; //设置PA0,1,2,3无上拉,无下拉
GPIOA->BSRRH = 0x00ff; //复位GPIOA_BSRRH寄存器
GPIOA->BSRRL = 0x0055;
}
else
{
GPIOA->MODER &= 0xffff0000; //设置PA0,1,2,3为输出
GPIOA->MODER |= 0x0000005555;
GPIOA->OTYPER &= 0xFFFFff00; //设置PA0,1,2,3为推挽输出
GPIOA->OSPEEDR &= 0xffff0000; //设置PA0,1,2,3的输出速度为100M GPIOA->OSPEEDR |= 0x0000ffff;
SYSCFG->CMPCR = 0x00000001; //使用IO补偿单元
GPIOA->PUPDR &= 0xffffff00; //设置PA0,1,2,3无上拉,无下拉
GPIOA->BSRRH = 0x00ff; //复位GPIOA_BSRRH寄存器
GPIOA->BSRRL = 0x00AA;
}
}
4.2 android客户端程序设计
4.2.1 控制界面的布局
控制界面主要运用了线性布局、相对布局和表格布局。整体采用线性布局,局部采用相对布局,而控制按钮采用了表格布局。控制界面的布局如图4.1所示:
图4.1 控制界面的布局
4.2.2 布局的代码如下:
android:layout_width="wrap_content" android:layout_height="fill_parent" android:orientation="vertical"> android:id = "@+id/container" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > android:layout_width="fill_parent" android:layout_height="wrap_content" android:id= "@+id/edit_bottombar" android:layout_alignParentBottom = "true"> android:id="@+id/list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/edit_bottombar" android:layout_below="@id/container" android:layout_weight="1.0" android:divider="#ffc6c6c6" android:scrollingCache="false" android:visibility="visible"/> android:layout_width="match_parent" android:layout_height="wrap_content"> android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content"> android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:visibility="invisible"/> android:id="@+id/start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="0dp" android:text="start" android:width="120px"/> android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1"> android:id="@+id/left" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="0dp" android:text="left" android:width="120px"/> android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="stop" android:width="120px"/> android:id="@+id/right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="right" android:width="120px"/> android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content"> android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:visibility="invisible"/> android:id="@+id/back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Back"/>
4.2.3 android客户端的界面如图4.2所示:
图4.2 android控制界面
4.2.4 发送按钮的代码
sendButton= (Button)findViewById(R.id.btn_msg_send);
sendButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String msgText =editMsgView.getText().toString();//获取编辑框内的内容
if (msgText.length()>0) {
sendMessageHandle(msgText);//发送编辑框的内容给串口
editMsgView.setText("");//清空编辑框
editMsgView.clearFocus();
//close InputMethodManager
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editMsgView.getWindowToken(), 0); }
else
Toast.makeText(mContext, "发送内容不能为空!", Toast.LENGTH_SHORT).show(); }
});
4.2.5 控制按钮的代码
以左转按钮为例:
sendButton= (Button)findViewById(R.id.left);
sendButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String msgText ="1"; // 发送左转命令“l”
if (msgText.length()>0) {
sendMessageHandle(msgText);//发送“l”给串口
editMsgView.setText("");//清空编辑框
editMsgView.clearFocus();
//close InputMethodManager
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(editMsgView.getWindowToken(), 0);
}
else
Toast.makeText(mContext, "发送内容不能为空!", Toast.LENGTH_SHORT).show(); }
});
5.系统创新
自从有了智能手机,机器人的应用也就多了一个新的方向:手机控制机器人。2005年日本第二大电信运营商KDDI和机械制造商I Bee KK联合推出了第一款手机控制机器人。当然了,想要操纵这种机器人,你首先需要使用KDDI网络,并且用户的手机上,本身还需要带有蓝牙功能,然后再通过KDDI 提供BREW方式下载机器人的驱动程式和控制系统。不过这种机器人的价格却相对高昂,预售市价约合人民币15000元。随着Android系统技术的普及,可以做个基于Android的客户端,在小车上装个接收蓝牙信号的FBT蓝牙接收模块,然后就可以通过客户端发送蓝牙信号,来对蓝牙小车进行控制控制,其接收可达15米,完全能适应对小车的要求。其中这个FBT蓝牙接收模块是低耗能,这样就把更多的能量用在小车的驱动上。
小车需要很大的马力和很好的灵活性以应对不同的地形。这辆车的车轮使用四驱的直流电机来驱动的,用PWM波来控制小车的速度,可以很方便的更改其速度,有主控板通过推挽输出来控制电机的翻转以让车子进行后退的速度。这样就可以胜任对小车的要求。
6.评测与结论
首先,给电源模块上12v的电源,然后打开电机驱动模块开关,同时将主控板的供电端连接到电源管理模块。然后,在android手机上安装“蓝牙通信”
应用程序后,打开该APP,然后选择“允许打开蓝牙”。点击设备列表中的“开始搜索按钮”,在设备列表中选择蓝牙模块的名字进行连接。
完成上述工作以后,就可以在手机上通过按下“start”、“left”、“stop”、“right”、“back”通过蓝牙给小车发送“前进”、“左转”、“停止”、“右转”、“后退”5个命令。小车可以解析命令轻松进行前进、后退、左转、右转和停止。
附录
图6-1 作品成果1
图6-2 作品成果2
基于stm32f4的蓝牙控制小车
ARM-STM32校园创新大赛 项目报告 题目:基于stm32f4的蓝牙控制小车 学校:中南民族大学 指导教师: 视频观看地址:https://www.360docs.net/doc/0e64342.html,/v_show/id_XNjA3NTE4MzU2.html
题目:基于stm32f4的蓝牙控制小车 关键词:STM32F4 LM2940-5.0 L298N FBT06_LPDB 蓝牙串口通信android 摘要 “基于stm32f4的蓝牙控制小车”是一个基于意法半导体与ARM公司生产的STM32F4 DISCOVERY开发板的集电机驱动模块、电源管理模块、stm32f4主控模块、蓝牙串口通信模块、android控制端模块。电机驱动模块使用了两个L298N 芯片来驱动4路电机,使能端连接4路来自主控板的PWM波信号,8个输入端接主控板的8个输出端口;电源管理模块使用了LM2940-5.0芯片进行12V到5V 的转换,12V用于电机模块的供电,5V用于蓝牙模块、传感器等的供电;主控模块采用了MDK编辑程序,然后下载到主控板,实现硬件与软件的交互;蓝牙串口通信模块则是采用了FBT06_LPDB针插蓝牙模块,与主控板进行串口通信,同时与android手机进行通信;android控制端模块是一个集开启蓝牙、搜索蓝牙、控制小车等功能。用户可以通过android控制端进行控制小车的运动,实现一些用户需要的功能和服务。 1.引言 蓝牙的创始人是瑞典爱立信公司,蓝牙技术是一种无限数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。手机之间通过蓝牙实现数据共享成为常理,将手机变为遥控器为人们的生活带来无限方便。遥控小车在工业、国防、科研等领域应用越来越广泛,例如说:消防遥控小车、探测小车等。本文详细阐述了使用蓝牙通信的手机遥控小车前行、倒退、左转、右转和停止等功能的软硬件设计过程。 2.系统方案 该系统分为电机驱动模块、电源管理模块、主控板、蓝牙通信模块、android 控制端等5个模块,如图2.1所示:
指挥车辆的手势图
停车场保安制度 1.0 严格执行公司的车场管理制度,服从上级安排,听从指令; 2.0 熟悉小区车辆和车场的行驶路线及各种交通指示牌; 3.0 熟悉车场的地理环境,各个消防通道、进出口及车位的具体编号情况; 4.0 熟悉车场消防设施的配备情况,掌握消防器材的使用,以及车场软件配套设施; 5.0 熟练掌握车辆指挥手势和文明执勤用语; 6.0对进出车辆必须坚持“车到人迎,车走人送”的服务宗旨,指挥车辆停放在指定位置; 7.0 做好进出车辆的登记工作及验证工作,车牌号、车位编号、停车卡号一定要相符; 8.0当值必须按公司具体收费标准执行,杜绝收费不撕票或乱收费现象,及时协助收费员催促车主按时交纳停车管理费; 9.0 当值必须熟悉业主车辆的车牌号及业主的单元号,以方便开展工作; 10.0当值必须坚守岗位,每班提前15分钟交接班,交代清楚停车登记表、车票和岗位情况; 11.0定时巡查车场,发现问题及时处理并记录备案; 12.0当值过程中,发现有车门未锁的,一定要先通知领班到场查看,并及时通知车主,若发现有遗留物品,保管并登记等候认领; 13.0禁止载有易燃易爆物品的车辆进入,禁止在车场内洗车、修车,闲杂人等不得在车场内逗留; 14.0定期检查车场的公共设施,维护车场的清洁,及时提出维护、修复建议,确保车场正常使用; 15.0定期总结车场的车辆停放问题及车位使用问题,及时汇报,提出整改意见; 保安员指挥手势 直行指挥动作 1)二手侧平举,头往右 2)右前臂横向左,手掌向内,头往右 3)头往右,注视车辆移动 4)手放下(车即将到眼前) 5)敬礼(车到跟前),眼睛注视车辆移动 6)敬礼毕 7)跨立 8)立正 小转弯指挥动作 1)半向左转(车辆转弯灯或开始转弯) 2)左手侧平举,手掌向外,头往右,目视车辆 3)右手臂侧后移,半内举,手掌侧向左 4)手放下,半向右转(车即将到跟前) 5)敬礼(车到跟前)
蓝牙串口通信遥控小车
蓝牙串口通信遥控小车
————————————————————————————————作者:————————————————————————————————日期:
蓝牙串口通信遥控小车 目录 1系统方案论证及方案选择 2本系统软硬件设计 2.1单元硬件电路设计 2.2软件部分设计 参考文献 附录1原器件清单 附录2电路原理图及印制板图 附录3程序 1. 系统方案论证及方案选择 1.总体设计方案 题目要求设计一个蓝牙串口遥控小车,通过对电机转速的控制,调节速度的大小,改变小车角度,并能实现转弯和旋转。设计主要由主控单片机STC 12C5A60S2驱动直流电机,使车轮工作,带动小车的转动。
2.基本工作原理
3.STC89C52RC有定时器T0 T1 T2,在自动控制领域经常把T1作为串口通信了T0作PWM调速用因此有必要把T2定时器拿出来作定时器作为声音频谱程序。下面介绍T2的用法 STC89C52RC有定时器T2 ?void main(void) ?{ ?/* T2定时器赋预装载值,溢出16次就是1秒。*/ ?RCAP2H=(65536-5000)/256; ?RCAP2L=(65536-5000)%256; ?ET2=1; //允许T2定时器中断 ?EA=1; //打开总中断 ?TR2=1; //启动T2定时器
?while(1); // 死循环,等待T2定时器的溢出中断 ?} ?void Timer2_Server(void) interrupt5 ?{ ?staticuint Timer2_Server_Count; ?// 定义静态变量,用来计数T2定时器的溢出次数(进入本函数的次数) ?TF2=0; ?// T2定时器发生溢出中断时,需要用户自己清除溢出标记,而51的其他定时器是自动清除的 ?Timer2_Server_Count++; ?if(Timer2_Server_Count==16)// T2定时器的预装载值为0x0BDC,溢出16次就是1秒钟。 ?{ ?Timer2_Server_Count=0; ?P1_7=~P1_7; // LED11反转显示。 ?} ?} ?voidTimer2_Server(void)interrupt5
手势识别智能小车创意书
2014年重庆大学生 “合泰杯”单片机应用设计竞赛参赛 作品创意书 作品名称:手势智能小车 参赛学校:重庆工商职业学院 系名称:电子信息工程学院 指导老师:刘旭飞老师 参赛学生1:易虹羊 参赛学生2:胡照华 参赛学生3:姚正兰 2014年12月26日
作品创意书 一、摘要 智能小车作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。智能小车能够实时显示时间、速度、里程,具有自动寻迹、寻光、避障功能,可程控行驶速度、准确定位停车,远程传输图像等功能。手势控制智能小车的移动,小车具有自动循迹、避障等功能。提供一种更有趣、更方便的服务。 二、作品介绍 基于目前的普遍情况来看,多数智能小车遥控方式包括无线电遥控、红外线遥控和超声波遥控等。随着计算机的广泛应用,人机交互(Human Computer Interaction,HCI)已成为人们日常生活中的重要部分。人机交互的最终目标是实现人与机器自然的交流,因此手势识别研究顺应了发展需求。 1、国外手势识别研究状况 目前,手势识别已被广泛研究,尤其是基于视觉的手势识别。韩国Inda大学和Korea Polytechnic大学的JongShill Lee、YouongJoo Lee 等人用熵分析法从背景复杂的视频流中分割出手势区域并进行手势识别。使用链码的方法检测手势区域的轮廓,最后计算出从手势区域的质心到轮廓边界的距离。该系统课识别6种手势,平均识别率超过95%;6个人分别做每个手势的识别率平均达到90%—100%。印度研究者Meenaskshi Panwar在视觉手势识别的基础上提出了一种基于结
基于STM32 智能抓物小车的设计 电子设计II课程报告
摘要 本实验主要分析把握对象的智能车基于STM32F103的设计。智能系统的组成主要包括STM32F103控制器、伺服驱动电路、红外检测电路、超声波避障电路。本试验采用STM32F103微处理器作为核心芯片,速度和转向的控制采用PWM技术,跟踪模块、检测、障碍物检测和避免功能避障模块等外围电路,实现系统的整体功能。 小车行驶时,避障程序跟踪程序,具有红外线跟踪功能的汽车检测电路。然后用颜色传感器识别物体的颜色和抓取。在硬件设计的基础上提出了实现伺服控制功能,简单的智能车跟踪和避障功能的软件设计和控制程序,在STM32集成开发环境IAR编译,并使用JLINK下载程序。 关键词:stm32;红外探测;超声波避障;颜色传感;舵机控制
ABSTRACT This experiment mainly analyzed the grasping object intelligent car based on STM32F103 design. The composition of the intelligent system mainly includes STM32F103 controller, servo drive circuit, infrared detection circuit, ultrasonic obstacle avoidance circuit. This test uses the STM32F103 microprocessor as the core chip, the speed and steering control using PWM technology, tracking module and detection, obstacle avoidance module for obstacle detection and avoidance function, other peripheral circuit to achieve the overall function of the system. The car is moving, obstacle avoidance procedures prior to tracking program, car tracking function with infrared detection circuit. Then use color sensor to recognize object color and grab. On the basis of the hardware design is proposed to realize the servo control function, simple intelligent car tracking and obstacle avoidance function of the software design, and the control program is compiled in the STM32 integrated development environment IAR, and download the program using Jlink. Key words: STM32; infrared detection; ultrasonic obstacle avoidance; color sensing; steering control
单片机蓝牙控制小车
课题:基于单片机得蓝牙控制小车专业: 班级: 学号: 姓名: 指导教师: 设计日期: 成绩: 重庆大学城市科技学院电气信息学院
目录 1、设计目得作用 (2) 2、设计要求.............................................. 23、设计得具体实现?2 3、1设计原理 (2) 3、2系统设计12? 3、3系统实现13? 4、总结19? 参考文献................................................ 20附录 ................................................... 21附录121? 附录22?2
C51蓝牙控制小车设计报告 1设计目得与意义 目得与意义:提高学生动手能力,培养学生得思维,巩固理论知识,让我们能对单片机更加深入得了解,加深同学们对单片机得认识,通过自己动手让小车跑起来还能让同学们更加有积极性,参与感,成就感.让学生们亲自体验这门课程得神奇性。 因为无线技术得广泛使用,使蓝牙技术得发展成为了趋势之一,蓝牙可以发送与接受语音与数据,满足了大多数人得需求,它也融合了其她相关产品得特点,也就是这样技术变得更多样性。实现了无线控制小车,摆脱了有线控制得不方便,更加智能。 2设计要求 SPP蓝牙串口调试助手---—》聊天窗口-—》 1、在Bluetooth_Car项目中添加超声波躲避障碍功能(在小车前进得过程中,实时检测障碍物,一旦检测得距离,接近设定得值,触发蜂鸣器,报警系统工作,小车停止前进); 2、在Bluetooth_Car项目中得串口中断服务函数中,添加小车前进得8个方向 ,前后左右,左前,右前,左后,右后; 3、利用外部中断,强制停止小车运行(无论小车现在处于什么状态),蜂鸣器报警1s后,可再运行; 4、用手机得蓝牙串口调试助手来远程操作小车。 3、设计得具体实现 3、1设计原理 芯片常识: STM8、C52 、STM32 、ARM C52:主要做末端得控制11、0592MHZ STM32:主要做工业控制领域--智能设备168M ARM:主要做消费市场——手机
5.智能小车-按键控制小车的启动
实验五:树莓派平台-------按键控制小车启动实验 1、实验前准备 图1-1 树莓派主控板 图1-2 按键开关 2、实验目的 ssh服务登录树莓派系统之后,编译运行按键控制小车启动实验后,按下KEY 启动小车,小车会自动先前进1s,后退1s,左转2s,右转2s,原地左转3s,原地右转3s,接着停止0.5s。 3、实验原理
按键消抖:通常我们的按键开关一般都是机械弹性开关,当机械触点断开,闭合时,由于机械触点的弹性作用,一个按键开关子在闭合时不会马上就能稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开时会伴随着一连串的抖动。 图3-1 按键抖动状态图 抖动时间一般都是由按键的机械特性决定的,一般都会在10ms以内,为了确保程序对按键的一次闭合后一次断开只响应一次,必须进行按键的消抖处理,有硬件消抖和软件消抖。 其中,软件消抖指的是检测出键闭合后执行一个延时程序,产生5ms~10ms 的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。 硬件消抖是在开关两段接一个0.1uf的电容。本次实验我们采取的是软件延时去抖。 4、实验步骤 4-1.看懂原理图
图4-1 树莓派主控板电路图 图4-2 按键
图4-3 树莓派40pin引脚对照表 4-2 由电路原理图可知按键是直接连接到主控板上的wiringPi编码的10口。我们设置10口为输入模式,并当按下按键时通过检测该引脚的电平状态,来判断按键是否被按下。 4-3 程序代码如下:
常用车辆指挥手势
常用车辆指挥手势 直行手势: 1、身体保持正直,头右摆45度,右手平起与肩同高,五指并拢,掌心向前; 2、右手放下,摆头45度成立正姿势; 3、摆头45度,左手平起与肩同高,五指合拢,掌心向前; 4、左手放下,头摆45度成立正姿势。 要求:出手力度要强,头与手同时进行,摆头45度,两眼目视前方。 直行辅助手势: 1、出左手与肩同高,头左摆45度; 2、出右手与肩同高,头右摆45度; 3、收右手折于胸前,头摆左45度; 4、右手复原,头右摆45度; 5、右手收于胸前,摆头45度; 6、收右臂垂直放下,头摆正; 7、左手放下,成立正姿势。 要求:头与手走,摆臂要有力度,折臂要快。 左转弯手势: 1、右手立掌向前方平伸,头摆左45度; 2、出左手向斜前方摆45度,头摆正; 3、收左手头摆45度成转弯式; 4、出左手向斜前方摆45度,头摆正; 5、收左手头斜摆45度; 6、收右手成立正式。 要求:出左手时斜前方45度,头迅速摆正,目视前方,动作干净利索。 右转弯手势: 1、出左手立掌向前伸,头摆右45度; 2、出右手斜前方摆45度,头摆正; 3、收右手,摆头45度; 4、出右手斜前方摆45度,头摆正; 5、收右手,白头45度; 6、左手迅速放下成立正姿势。 要求:出右手时斜前方45度,头迅速摆正,目视前方,动作干净利索。 待转手势: 1、出左手向前方斜45度,两眼目视左手; 2、左手下摆15度,两眼目光随手走; 3、回位于左手45度; 4、左手下摆15度,两眼目光随手走; 5、左手收回成例证姿势。 要求:左手摆45度时,两眼目视左手,做到目光随手动。
停车手势: 1、左手立掌于头顶角度125度,五指并拢,两眼目视前方; 2、左手迅速放下成例证姿势。 要求:出手定位迅速。 停车辅助手势: 1、手向前平伸,反掌,手心向上,两臂夹紧,成90度直角; 2、两臂向上折起,成90度直角; 3、手向前平伸,反掌,手心向上,两臂夹紧,成90度直角; 4、两臂迅速收回,成立正姿势。 要求:双臂折起要成直角90度,动作有力,干净利索。 倒车指挥辅助手势: 1、左手向前平伸,立掌,成90度直角; 2、右手向前平伸,反掌,掌心向上,成90度直角; 3、右手折起成90度直角; 4、右手平伸,掌心向上; 5、右手迅速折起成90度直角; 6、两手迅速回收,成例证姿势。 要求:左右手平伸时,两肩夹紧;右手成90度直角时,动作有力,干净利索。注明:车场指挥手势的角度均是臂与身体的角度,要注意掌握。
智能小车控制程序1
/*实现前进与后退功能*/ /*控制智能车向前行驶10秒,然后停3秒,再向后行驶6秒,停止*/ /********************************************************/ #include { go(); //前进 delay(10000); //前进10秒 stop(); //停止 delay(3000); //停3秒 back(); //后退 delay(6000); //后退6秒 stop(); //停止 } 分类号编号 烟台大学 毕业论文(设计) 基于STM32的智能小车 摄像头循迹系统 Intelligent Car Tracking System Based on STM 32 Camera 申请学位:工学学士 院系:光电信息科学技术学院 专业:电子信息工程 姓名:王坤 学号: 200813503229 指导老师:杨尚明(教授) 2012年5 月21 日 烟台大学EDA实验室 基于STM32的智能小车摄像头循迹系统 姓名:王坤 导师:杨尚明(教授) 2012年5 月21 日 烟台大学EDA实验室 烟台大学毕业论文(设计)任务书院(系):光电信息科学技术学院 姓名王坤学号200813503229 毕业届别2012 专业电子信息工程 毕业论文(设计) 基于STM32的智能小车摄像头循迹系统题目 指导教师杨尚明学历本科职称教授所学专业无线电技术 具体要求(主要内容、基本要求、主要参考资料等): 主要内容:设计一个抗干扰能力强的智能小车循迹系统。 基本要求:通过对本课程的设计,能够利用OV7670实现黑白线信息采集;并且能够达到一定的抗干扰效果;能够实现实时采集外界环境信息的效果。 主要参考资料: [1]陈启军.嵌入式系统及其应用:基于Cortex-M3内核和STM32F103系列微控制器的系统设计与开发. [M].北京: 同济大学出版社,2008. [2]谭浩强. C语言程序设计. [M].北京: 清华大学出版社,2010. [3]曾星星. 基于摄像头的路径识别智能车控制系统设计[J].湖北汽车工业学院学报, 2008(6): P76-80. 进度安排: 第一阶段:1~4周通过资料、网络、导师了解本设计所需要的知识、资料、相关软件及设计思路方案; 第二阶段:5~8周请教老师查阅资料按要求并由实际情况逐渐得出设计方案及方法;第三阶段:9~11周根据方案在老师的指导下完成相关的软硬件设计; 第四阶段:12~13周撰写论文(分初稿、定稿、审合、打印论文); 第五阶段:14周进行优化调试达到目标并进行论文答辩。 指导教师(签字): 年月日 院(系)意见: 教学院长(主任)(签字): 年月日 备注: 上次成功实现了通过笔记本电脑蓝牙来控制智能小车机器人的运动,但是通过电脑控制毕竟不方便,于是乎~本人打算将控制程序移植到手机上。 目前主流的手机操作系统有塞班、安卓(Android)、Windows Mobile,对比了一下,首先,塞班是用C++写的,这么多门语言我唯独看到C++就头大···,放弃了···,Windows Moblie 其实和之前发的电脑端程序基本是一样的,也就没什么意思了,最后决定选择目前正火的Android手机作为控制平台。 Android是个开源的应用,使用Java语言对其编程。于是这次的开发我选用Eclipse作为开发工具,用Java语言开发手机端的控制程序,由于之前对Android的蓝牙通信这块涉及不多,一开始感觉有点小茫然,而网上也少有这方面的例程,有少数人做出了类似的东西,但是只传了个视频装X!雪特···· 经过几天的研究,最终确定了手机蓝牙通信其实就是Socket编程,再经过一番编写和调试,昨晚终于大功告成! 这是视频: 下面开始介绍Android手机端控制程序的编写: 首先打开Eclipse,当然之前的Java开发环境和安卓开发工具自己得先配置好,这里就不多说了,网上教程一大摞。 然后新建一个Android项目,修改布局文件main.xml,代码如下: 目录 摘要 (2) 一、绪论 (3) (一)避障小车的作用和意义 (3) (二)避障小车的的现状 (4) 二、方案设计与论证 (4) (一)避障模块 (4) (二)主控系统 (5) (三)电机驱动模块 (7) (四)机械系统 (8) (五)电源系统 (8) 三、硬件设计 (9) (一)信号检测模块 (9) (二)主控电路 (9) (三)驱动电路 (10) (四)总体设计 (11) 四、软件设计 (13) (一)总体结构框图 (13) (二)总体程序流程图 (14) (三)总程序 (15) 五、安装和调试 (23) 结束语 (25) 参考文献 (25) 论文摘要 利用红外光对管检测黑线,并以STC89C52单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹的功能。其中小车驱动由L298N驱动电路完成,速度由单片机输出的PWM波控制。 关键词:智能小车STC89C52单片机 L298N 红外光对管 蓝牙控制&自动避障小车的设计 —基于STC89C52单片机 王聪 (开封大学机电工程学院应用电子专业) 一、绪论 (一)智能小车的作用和意义 自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。 随着科学技术的发展,机器人的感系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航一种实用有效的方法。 机器人要实现避障功能就必须要感知障碍物,避障控制系统是基于自动导引小车(AVG—auto-guide vehicle)系统,基于它的智能小车实现自动避开障碍,选择正确的行进路线。使用传感器感知障碍并作出判断和相应的执行动作。 该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、CPU、执行部分。基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。单片机驱动直流电机一般有两种方案:第一,勿需占用单片机资源, 一、前言 设计背景: 在科学探索和紧急抢险中经常会遇到对与一些危险或人类不能直接到达的地域的探测,这些就需要用机器人来完成。而在机器人在复杂地形中行进时自动避障是一项必不可少也是最基本的功能。因此,自动避障系统的研发就应运而生。我们的自动避障小车就是基于这一系统开发而成的。意义随着科技的发展,对于未知空间和人类所不能直接到达的地域的探索逐步成为热门,这就使机器人的自动避障有了重大的意义。我们的自动避障小车就是自动避障机器人中的一类。自动避障小车可以作为地域探索机器人和紧急抢险机器人的运动系统,让机器人在行进中自动避过障碍物。成员情况本组三位成员均为2005级基地班学生,都选修过数字电路课程。二、总体方案设计 1、设计要求 小车从无障碍地区启动前进,感应前进路线上的障碍物后,根据障碍物的位置选择下一步行进方向。并可通过两个独立按键对小车进行控速。 2、小车自动避障的原理 小车车头处装有三个光电开关,中间一个光电开关对向正前方,两侧的光电开关向两边各分开30度,(如右图所示)。小车在行进过程中由光电开关向前方发射出红外线,当红外线遇到障碍物时发生漫反射,反射光被光电开关接收。小车根据三个光电开关接受信号的情况来判断前方障碍物的分布并做出相应的动作。光电开关的平均探测距离为30cm。 3、模块方案比较及论证 根据设计要求,我们的自动避障小车主要由六个模块构成:车体框架、电源 及稳压模块、主控模块、逻辑模块、探测模块、电机驱动模块组成。各模块分述如下: 3.1车体框架 在设计车体框架时,我们有两套起始方案,自己制作和直接购买玩具电动车。方案一:自己设计制作车架自己制作小车底盘,用两个直流减速电机作为主动轮,利用两电机的转速差完成直行、左转、右转、左后转、右后转、倒车等动作。减速电机扭矩大,转速较慢,易于控制和调速,符合避障小车的要求。而且自己制作小车框架,可以根据电路板及传感器安装需求设计空间,使得车体美观紧凑。但自己制作小车设计制作周期较长,且费用较高,因而我们放弃这一方案。方案二:购买玩具电动车 玩具电动车价格低廉,有完整的驱动、传动和控制单元,其中传动装置是我们所需的,缩短了开发周期。但玩具电动车采用普通直流电机驱动,带负载能力差,调速方面对程序要求较高。同时,玩具电动车转向 依靠前轮电机带动前轮转向完成,精度低。 考虑到利用玩具电动小车做车架开发周期短,可留够充分的时间用于系统调试,且硬件上的不足我们有信心用优良的算法来弥补,故我们选择方案二。 多种手势控制技术在汽车电子中的应用 手势控制在我们的日常生活中应用的越来越广泛,比如说手势控制电脑,手势控制电视,还有更加智能的是利用手势控制摄像头来隔空玩游戏。手势控制让我们的生活越来越精彩,在某些方面也让我们的操作越来越简便。 1. 手势控制在汽车上的应用 在汽车上,手势控制也有很大的用处,其最大的优势就是可以简化操作,让车主可以更加快捷的实现各种操作。想象平时驾驶时需要用到的操作吧,左手转向灯、右手雨刷器、双手同时把握方向盘,对于手动挡车型而言,左脚离合右脚刹车和油门,右手还要操纵换挡杆。这还不算诸如调节车窗、后视镜、座椅,以及对付按钮众多的中控台(即使是触屏时代,虚拟按钮也依然存在)。 CES展上,大众展出的高尔夫R Touch概念车非常酷炫。在车外对着后视镜摆摆手就自动展开;坐进车里,抬起手在头顶旁边扫一下,天窗自动打开;手对着中控台往上划一下,音量就变大。也许这些夸张了点,但是最基本的手势控制可以实现包括地点导航、调整车内温度、调整车载音乐音量、选择歌曲、调整座椅位置及改变巡航控制系统的速度等。 2. 手势识别的类型 手势控制的核心是手势识别技术,就目前的技术而言,大都的手势识别采用的是计算机视觉技术。手势识别由简单粗略的到复杂精细的,大致可以分为三个等级:二维手型识别、二维手势识别、三维手势识别。 前两种手势识别技术,完全是基于二维层面的,而第三种手势识别技术,是基于三维层面的。三维手势识别与二维手势识别的最根本区别就在于,三维手势识别需要的输入是包含有深度的信息,这就使得三维手势识别在硬件和软件两方面都比二维手势识别要复杂得多。当然三维识别也能够识别更多的动作。 三维识别的硬件实现一般包括三种方式:光飞时间、结构光、多角成像。下面就来看看这些技术的原理和在汽车上的应用。 智能车转角与速度控制算法 1.检测黑线中点Center:设黑、白点两个计数数组black、white,从第一个白点开始,检测到一个白点,白点计数器就加1,检测到第一个黑点,黑点计数器就加1,并且白点计数器停止,以此类推扫描每一行;黑线中点=白点个数+(黑点的个数/2) 2.判断弯直道: 找出黑线的平均位置avg (以每10行或者20…作为参照,行数待定) 算出相对位移之和(每一行黑线中点与黑线平均位置距离的绝对值之和) 然后用Curve的大小来确定是否弯直道(Curve的阀值待定)。 3.控制速度: 根据弯度的大小控制速度大小。 //*****************************弯度检测函数*******************************// Curvecontrol () { int black[N]; //黑点计数器 int white[N]; //白点计数器 int center[N]; //黑线中点位置 int avg; //黑线中点平均位置 int curve;//N行的相对位移之和 if(白点) ++white[N]; //判断黑白点的个数 else ++black[N]; center[N]=white[N]+black[N]/2; //每一行的黑线中点avg=(center[1]+center[2]+...+center[N])/N; //求出黑线中点的平均位置 curve=(|avg-center[1]|+|avg-center[2]|+...+|avg-center[N]|)/N //求出N行的相对位移之和 return curve; //返回弯度大小 海南大学 毕业论文(设计) 题目:基于stm32的智能小车设计学号:20112834320005 姓名:陈亚文 年级:2011级 学院:应用科技学院(儋州校区) 学部:工学部 专业:电子科学与技术 指导教师:张健 完成日期:2014 年12 月 1 日 摘要 本次试验主要分析了基于STM32F103微处理器的智能小车控制系统的系统设计过程。此智能系统的组成主要包括STM32F103控制器、电机驱动电路、红外探测电路、超声波避障电路。本次试验采用STM32F103微处理器为核心芯片,利用PWM技术对速度以及舵机转向进行控制,循迹模块进行黑白检测,避障模块进行障碍物检测并避障功能,其他外围扩展电路实现系统整体功能。小车在运动时,避障程序优先于循迹程序,用超声波避障电路进行测距并避障,在超声波模块下我们使用舵机来控制超声波的发射方向,用红外探测电路实现小车循迹功能。在硬件设计的基础上提出了实现电机控制功能、智能小车简单循迹和避障功能的软件设计方案,并在STM32集成开发环境Keil下编写了相应的控制程序,并使用mcuisp软件进行程序下载。 关键词:stm32;红外探测;超声波避障;PWM;电机控制 Abstract This experiment mainly analyzes the control system of smart car based on microprocessor STM32F103 system design process. The composition of the intelligent system mainly including STM32F103 controller, motor drive circuit, infrared detection circuit, circuit of ultrasonic obstacle avoidance. This experiment adopts STM32F103 microprocessor as the core chip, using PWM technique to control speed and steering gear steering, tracking module is used to detect the black and white, obstacle avoidance module for obstacle detection and obstacle avoidance function, other peripheral extended circuit to realize the whole system function. When the car is moving, obstacle avoidance program prior to tracking, using ultrasonic ranging and obstacle avoidance obstacle avoidance circuit, we use steering gear under ultrasonic module to control the emission direction of ultrasonic, infrared detection circuit is used to implement the car tracking function. On the basis of the hardware design is proposed for motor control function, simple intelligent car tracking and obstacle avoidance function of software design, and in the STM32 integrated development environment under the Keil. Write the corresponding control program, and use McUisp program download software. Keywords:STM32;Infrared detection;Ultrasonic obstacle avoidance;PWM;Motor control 智能小车控制系统设计 ——ARM控制模块设计 EasyARM615是一款基于32位ARM处理器,集学习和研发于一体的入门级开发套件,该套件采用Luminary Micro(流明诺瑞)公司生产的Stellaris系列微控制器LM3S615。本系统设计是以EasyARM615开发板为核心,通过灰度传感器检测路面上的黑线,运用PWM直流电机调速技术,完成对小车运动轨迹等一系列的控制。同时利用外扩的液晶显示器显示出各个参数。以达到一个简易的智能小车。 本文叙述了系统的设计原理及方法,讨论了ISR集成开发环境的使用,系统调试过程中出现的问题及解决方法。 据观察,普通的玩具小车一般需要在外加条件下才能按照自己的的设想轨迹去行驶,而目前可借助嵌入式技术让小车无需外加条件便可完成智能化。在小车行驶之前所需作的准备工作是在地面上布好黑线轨迹,设计好的小车便可按此黑线行驶,即为智能小车。其设计流程如下: 1、电机模块 采用由达林顿管组成的H型PWM电路。PWM电路由四个大功率晶体管组成,H桥电路构成,四个晶体管分为两组,交替导通和截止,用单片机控制达林顿管使之工作在开关状态,根据调整输入控制脉冲的占空比,精确调整电机转速。这种电路由于管子工作只在饱和和截止状态下,效率非常没。H型电路使实现转速和方向的控制简单化,且电子开关的速度很快,稳定性也极强,是一种广泛采用的PWM调整技术。 具体电路如下图所示。本电路采用的是基于PWM原理的H型驱动电路。该电路采用TIP132大功率达林顿管,以保证电动机启动瞬间的8安培电流要求。 2、传感器模块 灰度测量模块,是一种能够区分出不同颜色的的电子部件。灰度测量模块是专为机器人设计的灰度传感器。例如:沿着黑色轨迹线行走,不偏离黑色轨迹线;沿着桌面边沿行走,不掉到地上,等等。足球比赛时,识别场地中灰度不同的地面,以便于进行定位。不同的物体对红外线的反射率不同,黑色最低,白色最高;它通过发射红外线并测量红外线被反射的强度来输出反映物体颜色的电压信号,有效距离3-30毫米。 其技术规格如下: 已知灰度传感器的输出电压为0-3.3V,所以可通过ARM615开发板上的ADC 模块转换成数字信号,最后通过不断测试得出黑线与白线的大概参数值,完成对小车传感器部分的设计。 在本次设计中选择二个灰度传感器,其实现效果与布局如下所示。 【机器人创意工作室教程一】WIFI智能小车机器人基本原理 [复制链接] liuv ikin g 管 理 员 做 中 国 人 自 己 的 W I F I 机 器 人 ! 贡献 2 4 9 电梯直达 楼主 发表于 2012-5-13 11:58:55 |只看该作者|倒序浏览 分享到:11 WIFI智能小车机器人是很多人童年时的梦想,就好比当年看着《小鬼当家》里面的那个视频遥控车一样,看着就激动! 然而对于大部分初学者而言,本身并非电子专业,也不是计算机专业,可是却对WIFI/蓝牙控制的智 能小车机器人情有独钟,怎么办呢?对于一个专业不对的人来说,确实是隔行如隔山,但是没有关系,从今天起,WIFI机器人网·机器人创意工作室不间断地推出一系列教程,手把手教你如何DIY一个属 于自己的智能小车机器人。 鉴于蓝牙智能车和WIFI智能车其实很类似的,只是把WIFI模块换成了蓝牙模块,所以蓝牙车就不再 详细阐述了,弄明白了WIFI车,蓝牙车也一样的。 OK,进入正题,机器人创意工作室教程第一讲《WIFI智能小车机器人基本原理》 我们的这款WIFI智能小车机器人采用的路由器+PC或者手机、网页控制方式。其基本原理分为4大块: 1、把普通的无线路由器通过刷入开源的Openwrt系统,使之成为一个运行了Linux系统的小电脑,何 为Openwrt? 请看: 什么是OpenWRT? 1. 关于 OpenWrt 当Linksys 释放 WRT54G/GS 的源码后,网上出现了很多 不同版本的 Firmware 去增强原有的功能。大多数的 Firmware 都是99%使用 Linksys的源码,只有 1%是加上去的,每一种 Firmware 都是针对特定的市场而设计,这样做有2个缺点,第一个是难以集 合各版本Firmware的长处,第二个是这版本距离 Linux 正式发行版越来越远。OpenWrt 选择了另一 条路,它从零开始,一点一点的把各软件加入去,使其接近 Linksys 版 Firmware的功能,而OpenWrt 的成功之处是它的文件系统是可写的,开发者无需在每一次修改后重新编译,令它更像一个小型的 Linux 电脑系统,也加快了开发速度。 以上解释摘自百度百科。简而言之,就是从思科的路由源码改造过来的,一个适用于某些特定芯片的 路由器的小型Linux系统,有了这个系统,我们的路由就不再是上网那么简单了,我们可以在上面安 装各种程序、驱动,以路由为平台,用户可以自由地加载USB摄像头、网卡、声卡、等等设备。 我们的WIFI板上运行着一款程序,叫做mjpg-streamer,这个程序可以把USB摄像头的视频进行编码,然后通过WIFI返回给上位机,这样,我们就可以看到来自机器人的视频了。 同时路由一般都预留有TTL串口,TTL串口是用来调试或者刷机用的,我们把这个TTL串口引出来, 然后通过安装在路由里面的Ser2net软件,就能把来自WIFI信道的指令转到串口输出,而串口在这里 的作用就是与单片机芯片MCU通信,让单片机知道用户要让他做什么动作。关于TTL的介绍,请看后 文。 WIFI(路由)模块:基于STM32的智能小车摄像头循迹系统
成功实现手机蓝牙控制智能小车机器人!视频+程序源代码(Android)
蓝牙控制&自动避障小车的设计(毕业论文)
智能小车原理
多种手势控制技术在汽车电子中的应用
智能车控制算法
基于stm32的智能小车设计毕业设计
智能小车控制系统设计
智能小车控制基本原理