跳舞机器人上位机设计
扫描二维码
随时随地手机看文章
通过前两周介绍的小π机器人硬件部分和软件部分,你打造的小π机器人是否已经可以运动起来了?这周小编将主要介绍小π机器人的上位机部分,让你可以自由控制自己的小π。小π机器人的上位机部分分为电脑端的上位机软件和手机端的APP。
一、手机APP
1、appinventor简介
App Inventor 原是Google实验室(Google Lab)的一个子计划,由一群Google工程师和勇于挑战的Google使用者共同参与设计完成。Google App Inventor是一个完全在线开发的Android编程环境,抛弃复杂的程式代码而使用积木式的堆叠法来完成开发者的Android程式。除此之外它也正式支持乐高NXT机器人,对于Android初学者或是机器人开发者来说是一大福音。因为对于想要用手机控制机器人的使用者而言,他们不大需要太华丽的界面,只要使用基本元件例如按钮、文字输入输出即可。
2、手机APP开发
手机app部分主要包括三部分功能:实时遥控,重力遥控,动作记录。实时遥控功能即按一个动作,小π完成一个动作。可以实现较复杂动作如摇头、抬脚、晃腿、弹跳等,比如重力遥控功能主要是使用手机的重力感应模块,可以控制小π的前进、左转、右转、后退等简易动作。动作记录功能,可以实现一组动作的记录。可以实现跳舞等功能,也可以自由扩展,达到意想不到的效果。
我们所做出的APP,是一款用于操作小π实现一系列动作的APP,下面是已经制作出来的APP操作界面。
图1、2、3中按钮为button,提示(如图2中的“改变背景颜色:”等)为label,文本输入框为textbox等,点击按钮时会触发相应的事件,执行对应的代码。例如,当点击按钮“前”时,手机就会通过蓝牙向单片机发送的命令。
图1 重力感应界面
图2 控制界面
图3 编辑舞步界面
使用者可以下达不同的动作指令(如运动方向、运动形态等),来完成对机器人的动作控制。并且可以通过下达其他指令(如背景颜色、音乐播放),来完成更为复杂的控制。图3为设计舞步界面,用户能设计一套属于自己的舞蹈动作。我们还设置了3套固定的动作,供用户调用。
3、内部实现
通信协议的基本格式为。
当APP检测到前进的按钮被按下后,APP通过手机蓝牙向小π机器人发送指令。这条指令的意思就是向前走1步。其它动作指令也是类似的。
在重力感应模式下,手机通过内置的加速度传感器和陀螺仪获取手机当前的姿态信息,通过对姿态信息的判断发送前后左右运动命令。
灯光颜色选择指令由三条指令构成,分别为,和。R、G、B的参数变化范围为0-255,这样就可以变化出1600多万种颜色。例如发送红色命令就是。
当手机APP接收到超声波距离、温湿度等信息时,将接收到的信息在APP界面上显示出来。
下图是手机APP和HC-06蓝牙模块建立连接的核心代码截图,供大家参考。
图4 APP核心代码
二、电脑上位机开发
1、C#简介
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
2、电脑端串口调试助手
串口调试助手通过C#编写,界面如下图所示。通过“串口设置”来设置串口的相应参数,“串口检测”可以用来检测计算机可用的串口。“发送数据”可以将“数据发送”栏中的数据通过串口发送出去。一旦串口接收到数据,则会在“数据接收”栏中显示出来,通过先前设置的“字符显示”或者“HEX显示”来以字符显示或者以十六进制数显示。“清空数据”则可以清除“数据接收”栏以及“收据发送”栏中的所有数据。通过串口调试助手发送相关的命令可以对小π机器人进行调试。
图5 电脑上位机界面
串口调试助手的程序流程大致为开始进行串口初始化,在串口初始化过程中对串口号、波特率、奇偶校验、数据位、停止位等进行设置。初始化结束后可以对命令进行收发。小π机器人中波特率为115200,无奇偶校验、数据位为8位、停止位为1位。
3、平板端上位机开发
Win10 IoT是微软开发的一款基于win10的物联网操作系统。在装有win10 IoT系统的平板电脑中可以直接运行小π机器人的平板端程序。平板端程序功能和手机APP程序类似,可以通过蓝牙对小π机器人进行相应的控制。程序是通过C#编写的,程序界面如下图所示。
图6 平板上位机界面