APP下载

树莓派六足机器人实现智能分类搬运(三)

2023-05-08杨广峰

电脑报 2023年17期
关键词:监听自动控制控件

杨广峰

通过之前的操作,树莓派六足机器人相继实现了正对目标物体的识别搬运、任意位置目标物体的识别搬运、多任务目标物体的识别搬运。今天要实现用手机微信控制机器人,同时可以实现自动与手动任意切换。

一、实验器材及连接

器材清单:树莓派六足机器人一套(六足机器人、树莓派4B 板、古德微扩展板、电机驱动板、USB 摄像头), 目标物体两个(如图1)。

二、手机控件部分

1. 添加“自动控制”与“手动控制”控件

在古德微积木编程界面点击“更多功能→控件控制”进入应用界面。

填写应用名称为“手机控制机器人”,点击 “测试连接”,右侧会出现“连接成功”字样,这时单击“添加控件”按钮,进入添加控件页面(如图2)。

2. 添加“自动控制”与“手动控制”控件信息

在添加控件信息页面,完成控件类型、设备编号、功能描述和自定义主题的填写。其中,控制类型填写“按钮”,设备编号填写你的古德微平台登录账号,功能描述填写“自动控制与手动控制”。注意,这里的功能描述将来会显示在控制页面中。自定义主题填写“六足机器人”,在后续的编程中需要填写这个主题名称。

然后,点击“启用更多按钮配置”按钮,依次填写两个按钮标题和按下两个按钮发送的消息。按钮标题填写“自动控制”“手动控制”,按下按钮发送的消息填写“自动”“手动”,后续程序中要根据发送的消息进行相应的判断(如图3)。

最后点击“确定”按钮。“自动控制”与“手动控制”按钮添加完毕(如图4)。

3. 创建“自动控制”与“手动控制”控件

点击图4 中的“添加控件”,在添加控件信息页面,首先完成控件类型、设备编号、功能描述和自定义主题的填写。其中,控制类型填写“按钮”,设备编号填写你的古德微平台登录账号,功能描述填写“前进控制与后退控制”。注意,这里的功能描述将来会显示在控制页面中。自定义主题填写“六足机器人”,后续的编程中还需要填写这个主题名称。

然后,点击“启用更多按钮配置”按钮。按钮标题填写“前进控制”“后退控制”。按钮发送的消息填写“前进”“后退”。

4. 生成微信控制二维码

点击确定后,页面如图5。

保存当前的应用,点击“生成新网页”按钮,打开一个新网网页,点击分享可生成一个二维码,使用手机扫描即可在手机获得一个如网页一样的控制页面。点击更多应用按钮,即可返回图形化编程界面。

三、物联网监听线程

1. 物联网监听线程

从“积木→线程”中拖出“添加子线程”积木,线程函数名填“物联网监听”。

2. 物联网监听函数

为“物联网监听”线程创建“物联网监听”函数。

判断是否收到主题“六足机器人”的新数据。如果收到,则将新数据赋值给变量“命令文本”。

使用判断语句根据命令文本的值进行操作,如在手机页面中点击了按钮“自动控制”,则将变量“自动控制”的值设为1,启动自动控制;如手机页面中点击了按钮“手动控制”,则将变量“自动控制”的值设为0,关闭自动控制。

如在手机页面中点击了按钮“前进控制”,则控制六足机器人前进3步;如在手机页面中点击了按钮“后退控制”,则控制六足机器人后退3 步(如图6)。

四、自动控制机器人子线程编程

1. 自动控制机器人线程

从“积木→线程”中拖出“添加子线程”积木,线程函数名填“自动控制机器人”。

2. 自动控制机器人函数

为“自动控制机器人”线程创建“自动控制机器人”函数。然后,创建一个名为“自动控制”的变量,为该函数运行添加一个开关条件,当变量“自动控制”为1 时,该函数才能正常运行。

最后,将多任务控制机器人的主程序拖入“自动控制机器人”函数中。注意这里我们去掉了“重复当真”的部分,因为在古德微的图形化编程中,当线程启用时,线程函数本身就是重复循环执行的(如图7)。

五、程序初始化函数

首先,控制摄像头两个舵机,调整其最佳拍摄角度,设置机器人的最初姿态。然后设置互联网服务器为默认值,监听“六足机器人”,并设置初始值为0。最后将机器人任务的开关变量“步骤”设为1,将机器人“自动控制”变量设为0,将来通过手机控制修改為1。

创建“目标列表”,记录需要完成的目标物体名称,完成对机器人的初始化。这里设计了两个任务,其目标物体的名称为“红色”和“蓝色”,如需要更多的夹取任务,在列表追加项目即可(如图8)。

六、主程序

首先,调用程序初始化函数,对机器人和手机微信控制进行初始化。然后,调用子线程“自动控制机器人”,等待接收到自动控制时,机器人自动开启多任务搬运工作。最后开启子线程“物联网监听”,监听手机微信的相关按钮指令,控制机器人的相应操作(如图9)。

经过多次测试,机器人能在手机上手动控制前进后退,能在点击“自动控制”按钮时,自动开启搬运任务,当点击“手动控制”按钮时,自动停止搬运任务。在这个例子的基础上,我们还可继续思考为六足机器人添加更多的功能,如利用语音检测实现语音控制机器人。

猜你喜欢

监听自动控制控件
简易热水器自动控制设计
千元监听风格Hi-Fi箱新选择 Summer audio A-401
关于.net控件数组的探讨
基于DCS自动控制循环水液面的改造
网络监听的防范措施
编组站停车器自动控制开通方案
唐钢热轧1810线工艺润滑改造自动控制的实现
应召反潜时无人机监听航路的规划
ASP.NET服务器端验证控件的使用
局域网监听软件的设计