【Micro:bit】化身智能垃圾桶(下)-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6284|回复: 2

【Micro:bit】化身智能垃圾桶(下)

[复制链接]
发表于 2018-1-3 14:50 | 显示全部楼层 |阅读模式
教程前言:接着上一篇教程,开始今天的教程。

编程部分

步骤六

这是智能垃圾桶的关键一步,前面为垃圾桶打造了独一无二的身躯,现在就给它植入独一无二的思维,烧录控制程序。

程序实现的功能

       根据我们的设想,以超声波反馈的距离为测试条件,在超声波传感器被手及障碍物遮挡时反馈距离小于预定的值,这样就执行抬起垃圾桶的操作及舵机旋转一定角度。当遮挡取消时及手或者障碍物拿开时,垃圾桶打开一段时间后自动关闭。中间我们也可以配合Micro:bit的功能增加一些声光电你的绚丽效果。

程序逻辑

       在通电后首先垃圾桶处于待机状态,这时我们让Micro:bit的LED屏幕显示叉号并让Robot:bit的RGB灯显示规定颜色这里瞄星人喜欢蓝色让它在待机的时候显示蓝色,这里大家也可以自己规定喜欢的颜色。超声波在读取到距离反馈时及预设超声波的距离值,在被障碍物遮挡读取的值小于规定值时,让舵机旋转。障碍物移开始舵机延时旋转实现垃圾桶延时闭合的功能,这是智能垃圾的简单程序控制逻辑。

实现编程

1.打开Makecode界面,并且插入robot:bit插件,如何插入插件请查看前面的教程。

2.拖入初始程序框架。将箭头所指的积木块拖入右边编程区域

1.jpg

3.规定开机初始状态。这里为了减少误触发情况在程序启动时预置一个标记位,简单的说就是做什么事先里立一个目标,达到了就更该目标的意思,这是程序常用的逻辑,就是立个Flag的意思,这个Flag会随着程序的执行而发生变化。如果要深入了解程序标记位的功能和使用,可以深入学习各种编程语言,这是比较常用放入程序逻辑手段。

2.jpg

点击变量设置新的使用变量距离,对照如图所示的例子预置开机初始状态
下面的图是所需要的积木块

3.jpg

调整亮度积木块



4.jpg


超声波设置积木块


5.jpg




开机状态设置完成

可以看到开机时LED屏幕会显示叉号,这里我们先立一个flag及标记位设置为0,定义超声波引脚输出的值为变量距离,并预置初始距离值为30由于初始状态RGB灯可能比较亮,建议如图的亮度值,这里我们设置RGB灯的颜色为蓝色。

设置完初始状态,就是编写主控制程序。先晒图看一下主程序

175124dik360ffiiwb7p3q.jpg

程序讲解

1.将超声波引脚数据作为距离变量参考值。

2.通过如果那么的程序逻辑,如果检测距离小于100MM,或者大于等于5MM这里就是与指令亦或者标记位为0时及检测到启动状态时,将标记位Flag设置为1.

3.因为Flag标志位为1,可以进入下一段层序,这里使用判断指令if…else…,及如果标志位为1,这时检测距离如果发现距离小于20MM,则控制程序启动,LED显示勾标记,伴随蜂鸣器响提示音,RGB指示灯显示绿色这时垃圾桶即将进入开启状态之后舵机旋转85°延时两秒关闭,并伴随着提示音,这里的程序可以随意组合,这就看亲们的创造力了。如果检测值都不在程序执行的范围内,垃圾桶就处于关闭状态。正如程序后面所写的否则舵机角度为0°并且程序回归原始状态距离预设为30MM,标记位flag清零,这样就能避免程序进入死循环。

4.这样按照如图的积木搭积顺序我们就能完成对垃圾桶的手势控制智能。赶快烧录试验一下吧!

教程完美结束,接下来就是大家自由体验了。

最后喵星人还为大家准备了原文件设计压缩包,需要的喵粉快来喵家论坛下载吧~



发表于 2019-1-3 09:40 | 显示全部楼层
这个3D打印的费用大概多少???
发表于 2019-1-3 09:41 | 显示全部楼层
哈哈,谢谢分享,我想问下,这个3D打印的费用大概多少,还有就是源文件的地址无法访问了呢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 00:58 , Processed in 0.270786 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表