当前位置:文档之家› 手机蓝牙控制的智能车系统设计_余威明

手机蓝牙控制的智能车系统设计_余威明

54
作者简介: 余威明,浙江工贸职业技术学院电子工程系, 副教授,硕士,研究方向:单片机及嵌入式系统应 用研究 电话:0577-88312536;18958750662 电子信箱:yuwm08@ 联系地址:浙江省温州市黎明东路17号 浙江 工贸职业技术学院电子工程系(325003)
基金项目: 浙江工贸职业技术学院2010年度教师科技创新 活动计划项目(G100104)
参考文献: [1] 符强,任风华.基于手机蓝牙的遥控小车的设计[J]. 现代计算机,2011(12): 77-79. [2] 吕立亚,王兆伍.基于蓝牙的汽车CAN网络信号 无线测量系统[J].计算机测量与控制,2009.17(2):
281-283 [3] 刘军.例说STM32[M]. 北京:北京航空航天大学出版社, 2011.
void BT_motor_control(u8 ctr_num,u8 pwm) { switch(ctr_num) { case '1':
Mt_forward(pwm); //前进 break; case '2':
53
电子技术设计与应用 Electronics Design & Application
关键词:Android手机;蓝牙;智能车;STM32F103
Design of Intelligent Car System Controlled by Bluetooth of Smart Mobilephone
Yu Weiming (Electronic Engineering Department, Zhejiang Industry & Trade Polytechnic, Wenzhou, Zhejiang ) Abstract: An intelligent car control system based on bluetooth of mobilephone is designed. The system is composed of mobilephone and car control system. The car control system communicates with smart mobilephone through HC-06 bluetooth module. The HC-06 bluetooth module converts bluetooth signal into serial signal. The car control system uses STM32F103 to receive serial signal from HC-06 module and control car. Application software is developed on Android mobilephone. The buttons in software accomplish the car's run aห้องสมุดไป่ตู้d rotation control, and seekbar in software achieves speed control of the car. The system has advantage of easy operation based on the PWM function on STM32F103 processor. Key words: Android mobilephone;Bluetooth;intelligent car;STM32F103
4 智能车电机驱动控制 4.1 STM32F103处理器蓝牙解码控制 STM32F103通过串口与蓝牙模块HC-06连接, 接收手机蓝牙发送的控制命令,每组控制命令包含 两个字节,第一字节为控制编号,第二字节为电机 速度控制的PWM值,这两个字节作为蓝牙电机控制 程序的两个参数。蓝牙电机控制的程序如下:
图1 系统组成框图 (参见右栏)
图1 系统组成框图
2 Android系统的蓝牙开发 2.1 Android手机蓝牙实现 首先要在PC机端搭建Java开发环境和Android开 发环境,具体开发环境的搭建过程本文不再详述。 创建蓝牙连接需要实现的类和接口主要有 BluetoothAdapter(本地的蓝牙适配器)、Bluetooth Device( 远 程 的 蓝 牙 设 备 ) 、 BluetoothSocket、 BluetoothServiceSocket、BluetoothClass、Bluetooth Profile、 BluetoothHeadset、 BluetoothA2dp、 BluetoothProfiles、ServiceListener等[1]。Android蓝 牙APIs完成数据交换过程如图2所示。 图2 Android蓝牙APIs完成数据交换过程 (参见下页)
Mt_LSpin(pwm); //左转 break; case '3': Mt_back(pwm); //后退 break; case '4': Mt_RSpin(pwm); //右转 break; case '5': Mt_stop(); //停止 break; default:break; } } 4.2 STM32F103处理器PWM信号产生 智能车电机的PWM控制信号是利用STM32F103 的 定 时 器 设 置 成 PWM模 式 产 生 。 STM32的 TIM2~TIM5每个定时器可同时产生4路PWM输出。 TIM2~TIM5的PWM输出通过改变自动重装载寄存 器ARR的值改变PWM信号输出的周期,通过改变比 较捕获寄存器CCR的值改变信号输出的占空比[3]。 PWM信号产生示意图如图5所示。PWM信号的占空 比为:
电子技术设计与应用 Electronics Design & Application
10.3969/j.issn.1000-0755.2013.01.018
手机蓝牙控制的智能车系统设计
余威明 (浙江工贸职业技术学院 电子工程系,浙江 温州)
摘 要:设计了一种通过手机蓝牙实现对车载控制的系统。该系统由带蓝牙功能的智能手机和车载控制 系统组成,车载控制系统通过蓝牙模块HC-06与智能手机建立蓝牙通信,并将蓝牙信号转换成串口信号,车 载控制系统以STM32F103作为主控芯片,接收蓝牙模块传送的信号,驱动电机做相应的动作。在Android手 机上开发应用软件,通过设计的按钮实现对车的停启和转动控制,另外通过滑动条实现对车的速度控制。 该系统充分利用了智能手机触摸屏的灵活的操作功能,另外车载系统端的STM32F103处理器所带的PWM功 能实现了对车的便捷调速功能。
3 蓝牙模块与处理器接口及配置 3.1 蓝牙模块与STM32F103接口 蓝牙模块选用HC-06模块,该模块集成蓝牙芯片 BC41713、Flash存储芯片M29W800及蓝牙天线等,
图4 HC-06蓝牙模块与STM32F103接口图
3.2 蓝牙模块参数配置 HC-06蓝牙模块通过串口的AT命令集对其进行 配置。主要包括测试通讯、修改串口通信波特率、 修改蓝牙名称、修改蓝牙配对密码等操作[2],AT命 令集如下: (1)测试通讯。发送:AT ,返回:OK (2)修改蓝牙串口通讯波特率。发送: AT+BAUDn n取值为0~9、A、B、C,不同取值分别 代表不同的波特率。 例如发送:AT+BAUD4,返回:OK9600,代 表设定波特率为9600bps。 (3)修改蓝牙名称。发送:AT+NAMEname, 返回:OKname 参数name:所要设置的当前名称,即蓝牙被搜 索到的名称。20个字符以内。 例如发送AT+NAMEancient,返回Okname,此 时蓝牙名称改为ancient。 (4)修改蓝牙配对密码。发送:AT+PINxxxx, 返回:OKsetpin 参数xxxx:所要设置的配对密码,4个字节。 例如发送AT+PIN1234,返回Oksetpin,这时蓝牙配 对密码改为1234。
1 系统总体设计 手机蓝牙控制的智能车系统的总体组成框图如 图1所示,由带蓝牙功能的智能手机和小车控制系统 组成,小车控制系统通过蓝牙模块HC-06与智能手 机建立蓝牙通信,并将蓝牙信号转换成串口信号, 小车控制系统以ARM Cortex-M3内核的STM32F103 作为主控芯片,接收蓝牙模块传送的信号,驱动电 机做相应的动作,系统通过传感器检测信息,当智 能手机发送查询命令时,小车系统将传感器检测信 息通过蓝牙发送至手机。
52
电子技术设计与应用 Electronics Design & Application
微处理器只需通过串口与该模块建立连接即可。 HC-06模块与STM32F103处理器的接口图如图4所示。
图2 Android蓝牙APIs完成数据交换过程
2.2 Android手机软件界面设计 Android蓝牙智能车控制的软件界面如图3 所 示 。布局界面的设计在布局文件main.xml文件下 设计实现。界面主要包括一个拖动条(Seekbar),五 个按钮(Button),其中拖动条用以设置车运行速度 的占空比,五个按钮分别控制前进、后退、左转、 右转和停止。
图3 Android蓝牙智能车控制软件界面
main.xml文件下的部分设计代码如下: <Button //"前进"按钮代码 android:id="@+id/btnF" android:layout_width="wrap_content" android:layout_height="50px" android:layout_x="121dp" android:layout_y="104dp" android:text="前进" /> <SeekBar //"PWM设置"拖动条代码 android:id="@+id/seekBarPWM" android:layout_width="181dp" android:layout_height="30px" android:layout_marginTop="20px" android:layout_x="58dp" android:layout_y="76dp" android:max="0" android:paddingLeft="16px" android:paddingRight="15px" android:progress="0" android:secondaryProgress="0" />
相关主题