Computer Science and Application
Vol.07 No.02(2017), Article ID:19838,5 pages
10.12677/CSA.2017.72016

C++ Programming Design of Robot Car System

Bowei Chen

Shenyang No. 4 Middle School, Shenyang Liaoning

Received: Feb. 5th, 2017; accepted: Feb. 25th, 2017; published: Feb. 28th, 2017

ABSTRACT

This paper introduces the hardware structure and software design method of the robot car control system. In the application of the robot car, the C++ is used to program, including the design idea and the realization process. The effectiveness is verified in practice.

Keywords:Robot Car, Motion Control, Program Design

机器人小车系统C++程序设计

陈伯玮

沈阳市第四中学,辽宁 沈阳

收稿日期:2017年2月5日;录用日期:2017年2月25日;发布日期:2017年2月28日

摘 要

本文介绍了机器人小车控制系统的硬件构成、软件设计方法。在机器人小车应用中,采用C++进行程序设计,包括程序设计思想和实现过程,并在实际中验证了有效性。

关键词 :机器人小车,运动控制,程序设计

Copyright © 2017 by author and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

1. 引言

机器人是指在计算机程序控制下能够自动完成人类部分工作的机器。集中了机械工程、电子学、控制理论、计算机、系统工程、仿生学等多个学科 [1] - [8] 知识,目前是人工智能研究中比较活跃的研究领域,很多青少年希望能亲手设计制作机器人。机器人可以采用单片机控制,通过视觉传感器获取环境的信息,然后由存放在单片机中事先编写好的程序,智能地对这些信息进行分析、处理、控制机器人的动作,能够随着环境参数的变化而改变机器人的行为。机器人小车是一个人工智能的典型问题。本文工作是制作机器人小车,使其在计算机程序 [9] [10] [11] 控制下能够自动完成行走和图像采集的任务。

2. 机器人小车图像采集系统硬件设计

本文的机器人小车单片机主控芯片采用意法半导体公司基于Cortex-M3内核的微控制芯片,最高工作频率为72 MHz,内置高速存储器(高达128 K字节的闪存和20 K字节的SRAM),增强I/O端口和联结到两条APB,总线的外设;驱动器采用L298H桥控制电机旋转,四路TIM口控制电机正反转;因为机器人小车是运动的,根据实际采集需要,在本系统中选用变焦摄像头相机;图像的采集是由摄像头和图像采集卡合作完成,采集卡采用外置USB采集卡,可采集1路标清彩色视频信号;通信模块一路USART串口使用Simple WiFi模块与电脑通信,通信使用TTL电平;输入端接光电距离传感器,该光电传感器测量范围为5~100 cm,用来检测云台小车前后有无障碍物,防止机器人小车受到损坏;单片机供电使用AMS1117系列芯片,它的输出电压为3.267-3.333V;机器人小车还预留了两路高性能I/O口,为小车的后续开发和完善提供接口。

3. 机器人小车图像采集系统软件设计

3.1. 机器人小车图像采集软件流程

根据功能设计的需要,在硬件基础上设计软件,软件分为二部分,图像采集和机器人小车的运动控制。图像采集流程图设计如图1所示。程序具体步骤如下:

1) 网络连接程序:连接到指定ip地址的主机,与主机连接成功,与主机的连接已断开;

2) 走行控制程序:右转按钮,后退按钮,左转按钮,舵机前转按钮,舵机后转按钮,前进按钮;

3) 采集卡初始化部分程序;打开视频设备文件,设置视频设备的数据通道、视频数据传输的模式和要捕捉的图片大小。

4) 视频控制程序:开始录制视频,停止录制视频,截图。

3.2. 机器人小车运动程序

机器人小车的运动控制程序设计将系统在逻辑上划分为客户端与上位机两个部分,系统功能框架如图2所示。

3.3. 系统功能界面

PC客户端软件设计,是为了和上位机进行通讯。基于采集卡的官方SDK和Socket通信协议编写,实现通过无线网络控制小车并接收小车传回图像的功能。图3是设计的PC客户端控制界面,可以在PC

Figure 1. Flow chart of image collecting for robot car

图1. 机器人小车图像采集流程图

Figure 2. Flow chart of motion for robot car

图2. 机器人小车运动流程图

Figure 3. Client interface

图3. 客户端界面

上实现机器人小车的方向控制、舵机控制和图像采集。

3.4. 部分设计代码

3.4.1. 图像采集代码(节选)

private void btnStartRecord_Click(object sender, EventArgs e) {

//m_hCapDev = m_pMainForm.m_hCapDev;

btnStartRecord.Enabled = false;

btnStopRecord.Enabled = true;

//m_bSupportGPU1 = m_checkGPU1.Checked;

= picDestination.Text + \\0 +DateTime.Now.Minute.ToString()+0+ DateTime.Now.Second.ToString() + .BMP

EXPORTS.QCAP_SNAPSHOT_BMP(m_hCapDev, ref strBmpName);

}

}

3.4.2. 机器人小车运控制代码(节选)如下

private void button7_Click(object sender, EventArgs e) {

try

{

string msg = q

Byte[] bya = System.Text.Encoding.Default.GetBytes(msg.ToCharArray());

sock.Send(bya, bya.Length, SocketFlags.None);

}

catch

{

MessageBox.Show(连接尚未建立,无法发送);

}

}

通过以上设计,实现了机器人小车的遥控运动,当机器人小车运行到指定位置时,通过无线传输将遥控摄像头旋转的信号传输到机器人小车上,舵盘与机器人固定,舵机体旋转,带动摄像头旋转,进行图像拍摄。在实际应用中经过试验,达到了预期要求,实时采集和传输了图像到笔记本电脑,今后可以在此基础上进行分析处理。

4. 结语

利用机器人小车硬件设计基础,借助C++编程,实现了对机器人小车的运动控制和图像采集,实现了机器人小车的相应功能,完成了机器人小车的控制任务,为青少年、教师运用机器人小车系统进行科技创新提供了有益的尝试。

文章引用

陈伯玮. 机器人小车系统C++程序设计
C++ Programming Design of Robot Car System[J]. 计算机科学与应用, 2017, 07(02): 129-133. http://dx.doi.org/10.12677/CSA.2017.72016

参考文献 (References)

  1. 1. 张润梅, 龚剑. 基于机器人足球的大学生创新素质培养的探索与实践[J]. 计算机教育, 2009(2): 22-23, 29.

  2. 2. 杨子夫, 米良川, 李德升. 舞蹈机器人步进电机驱动电路和程序设计[J]. 电子工程师, 2002, 28(9): 1-5.

  3. 3. 杜佩君, 张瑞锋. 基于增广ESN的机器人轨迹跟踪控制[J]. 信息与控制, 2013, 42(4): 443-448.

  4. 4. 崔茂源, 董再励, 田彦涛, 朱枫, 周船. 面向任务的虚拟环境和人机交互方法研究[J]. 信息与控制, 2002, 31(2): 153-158.

  5. 5. 李航, 宋春华, 罗胜彬, 韦兴平, 刘小利. 机器人的研究现状及其发展趋势[J]. 微特电机, 2013, 41(4): 49-51.

  6. 6. 张德龙, 李威凌, 吴怀宇, 陈洋. 基于学习机制的移动机器人动态场景自适应导航方法[J]. 信息与控制, 2016, 45(5): 521-529.

  7. 7. 涂俊. 电脑智能机器人活动—培养学生综合素质的新载体[J]. 大众科技, 2011, 143(7): 130-131.

  8. 8. 李卫红. 基于B/S的乐高NXT中文固件系统的研究及实现[J]. 价值工程, 2011(4): 146-147.

  9. 9. 程来法. 基于C语言的电脑机器人足球进攻程序设计[J]. 电脑编程技巧与维护, 2012(5): 28-32.

  10. 10. 谭浩强. C++程序设计[M]. 北京: 清华大学出版社, 2004.

  11. 11. 许春山, 王建平, 曹广益, 赵锡芳. 基于Visual C++6.0的机器人控制系统软件实现[J]. 计算机应用与软件, 2003(10): 12-14.

期刊菜单