航天飞行器操作与控制实验
航天飞行器操作与控制实验课程设计
——基于开源硬件Arduino的电机丝杠语音控制的实现
教师:董云峰
学生:王慧疆
2016.5.16.
目录
第一章 Arduino简介............................................................................................................3
1.1 Arduino简介 .........................................................................................................3
1.2项目制作预期目标 ...................................................................................................4 第二章 方案选择与论证.......................................................................................................5
2.1蓝牙通信
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
..........................................................................................................5
2.2 控制代码编写 .........................................................................................................6
2.3 语音控制的实现......................................................................................................7 第三章 总结与思考..............................................................................................................8
北京航空航天大学《航天飞行器操作与控制实验》课程设计
第一章 Arduino简介
1.1 Arduino简介
Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板,本课程设计实验使用了arduino uno R3的开发板)和软件(Arduino IDE)。是一款非常受欢迎的开源硬件平台,在国内广受青睐。
其开发团队原为欧洲开发团队于2005年冬季开发。它构建于开放原始码介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么,使用非常方便。
图1 Arduino uno R3开发电路板
3
北京航空航天大学《航天飞行器操作与控制实验》课程设计
图2 Arduino IDE电脑编程界面
同时,Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。
1.2项目制作预期目标
根据Arduino的开源特点,我们可以使用Arduino来进行多种多样的实验,本课程中使用Arduino来控制一个可以前后移动的微型电机丝杠,由于该电路板不能直接驱动微型电机丝杠的四个引脚,我们需要通过Arduino来给电机丝杠驱动器发送命令,然后通过电机丝杠驱动器来控制微型电机丝杠的前后移动,这里我使用的微型电机丝杠驱动器为A4988,其内部连线图如下。
4
北京航空航天大学《航天飞行器操作与控制实验》课程设计
图 3 A4988步进电机驱动器原理图
图 4 步进电机丝杠和A4988实物接线
第二章 方案选择与论证
2.1蓝牙通信协议
蓝牙无线技术是使用范围最广泛的全球短距离无线
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
之一,这里我使用了蓝牙通信模块HC-05来实现Arduino和外界的通信,并且和后面的语音控制相结合,实现对电机丝杠的控制,其中HC-05蓝牙模块如下图所示。
5
北京航空航天大学《航天飞行器操作与控制实验》课程设计
图 5 HC-05蓝牙通信模块
2.2 控制代码编写
根据Arduino编程语言的设定,进行对程序代码的设定,其编写规则和C语言非常类似,
便于初学者上手,附上程序代码。
#include
Servo myservo1;
Servo myservo2;
int pos = 0;
void setup()
{
Serial.begin(9600);
myservo1.attach(9);
myservo2.attach(6);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(11, OUTPUT);
digitalWrite(11,LOW); }
void loop()
{
while(Serial.available())
{
char c=Serial.read();
if(c=='4') //Go Left programm code
6
北京航空航天大学《航天飞行器操作与控制实验》课程设计
{Serial.println("Go Left!!!向左~");
digitalWrite(8,HIGH);
for(int i=0;i<1000;i++) {
digitalWrite(7, HIGH);
delayMicroseconds(800);
digitalWrite(7, LOW);
delayMicroseconds(800);
}
delay(1000);
}
else if(c=='6') //Go Right programm code
{Serial.println("Go Right!!!向右~");
digitalWrite(8,LOW);
for(int i=0;i<1000;i++) {
digitalWrite(7, HIGH);
delayMicroseconds(800);
digitalWrite(7, LOW);
delayMicroseconds(800);
}
delay(1000);
}
}
}
2.3 语音控制的实现
语音控制的实现方式为通过手机识别人的语音,然后将特定指令转换为信号发送到蓝牙模块上面,当Arduino接收到相应的型号时则执行相应的命令,此处我设定为,当识别到“左”这个字的时候发送数字4到蓝牙模块,而程序中规定当收到信号“4”时该执行的动作(即向左移动丝杠);同时规定识别到“右”时发送数字“6”到蓝牙模块,向右运动。
从上面我们可以看出,问题的关键在于怎样实现手机对于语音的识别,实现方法为,通过调用科大讯飞的SDK,在线识别语音,然后开发基于安卓操作系统的APP将识别到的命令转化为数字发送给蓝牙模块,此处附上语音识别核心部分代码。
if (isConnected) {
String contString =data;
7
北京航空航天大学《航天飞行器操作与控制实验》课程设计
if (contString.length() > 0)
{
if(data.length()>=2){
if(data.contains("左")){
send("4");displayToast("4");
}
if(data.contains("右")){
send("6");displayToast("6");
}
}
第三章 总结与思考
通过对本《航天飞行器操作与控制实验》课程的学习,我觉得自己最大的收获在于提高了动手的能力和检索资料的能力,从刚刚开学时候的对开源软件的什么都不懂,到现在学会了使用开源来做自己喜欢的小东西,并且乐在其中,我感到非常的充实。同时,让我收获最大的另一点就是,我学会了如何在网上去搜索我自己需要的信息,上知网,看万方,论文检索,逛航模论坛,看贴吧,可以说我开始慢慢变得知道怎么去获得自己想要的知识,这也在另一个方面提高了我自己的学习能力。
在以后的生活中,不论读研也好,生活工作学习也好,我觉得在这门课中学到的东西能够让我受用一生,因为这门课并不是老师“填鸭式”的给我们灌输知识,它是我们自己根据自己的星期,真真切切做出来的,我觉得自己在这门课中受益匪浅,在以后的生活中,我也会继续努力下去,兴趣是最大的老师,从未如此真切的体会到这句话的内涵,继续加油~
8