57390浏览
查看: 57390|回复: 0

[动态] 【比赛优秀作品】数量认知教学天平

[复制链接]
本帖最后由 虚怀若谷 于 2024-4-29 13:58 编辑

【比赛优秀作品】数量认知教学天平

作品来源:第五届全国青少年人工智能创新挑战赛——开源硬件创意智造专项赛

参赛学生:

  • 彭楚寻    重庆市第八中学校   

  • 刘雯萱    重庆市第八中学校   

原文链接:

https://contest.dfrobot.com.cn/tcwl2022/project/312685?p=dfrobot2022sh

步骤1 结构设计

随着时代的发展,信息的普及度越来越超前,许多学龄儿童沉迷于网络,不能有一个好的启蒙教育,对数字的敏感度越来越低,为了让学龄儿童对数字保持敏感,我们设计了这个便设计了这个天平。

我们的启发来源于天平以及数字的对应关系,天平是学习物理和化学及生活中常用工具。一般用于科研机构、学校实验室、药店等场所,用来称一些小计量物品。但是,由于现实中的天平操作复杂,不便于学龄儿童的的操作。所以我们简化了天平的使用。

大致流程:当天平两端的托盘上没有任何物体的时候,会提醒使用者“正在初始化,请稍候”以及“请在左侧托盘放入物体,并在右侧托盘放入物品的个数,按下按钮开始检测。”,然后使用者便可以在天平的一个托盘上放上相同的物品,而另外一端放上数字卡片,然后会说“检查放入物品的个数”以及“检查写出的数字。”。在摄像头分别在两个托盘上扫描过物体的数字以及卡片上的数字后,便会比较他们的大小,如果是相等的话便会对使用者说“恭喜你数对了,托盘两侧的物品和数字相等。”,如果卡片数字小于物品的个数,则会说“写出的数字比放入的物品少一些。”,如果是卡片数字大于物品的个数,则会说“写出的数字比放入的物品多一些”。整个程序结束。

【比赛优秀作品】数量认知教学天平图1

步骤2 结构搭建

我们简单搭建了一个天平的外形,在上面加装一大一小的舵机以及一个语音合成模块,语音合成模块可以在使用者,大舵机用于调节天平的平衡,而小舵机则是用于摄像头在两个托盘上移动,使摄像头可以精准地分别照到托盘上的物体,从而去辨别托盘上的物体数量。托盘的一边可以放物体,而摄像头在此托盘上方时便可以识别物体的个数便记录,而托盘的另一边则是放数字卡片的,当数字卡片上的数字等于另一托盘上物体的个数时,大舵机便不动,使天平控制在平衡位置,若数字大于或小于物体的个数时,托盘便会向大的那一边倾斜。

【比赛优秀作品】数量认知教学天平图2

【比赛优秀作品】数量认知教学天平图3

【比赛优秀作品】数量认知教学天平图4

【比赛优秀作品】数量认知教学天平图5

【比赛优秀作品】数量认知教学天平图6

步骤3 软件源代码

【比赛优秀作品】数量认知教学天平图7

代码


/*!
 * MindPlus
 * uno
 *
 */
#include <DFRobot_Servo.h>
#include <DFRobot_HuskyLens.h>
#include <DFRobot_SpeechSynthesis_M.h>

// 动态变量
volatile float mind_n_geshu, mind_n_shuzi;
// 创建对象
DFRobot_SpeechSynthesis_I2C sstts;
DFRobot_HuskyLens           huskylens;
Servo                       servo_10;
Servo                       servo_11;

// 主程序开始
void setup() {
        Serial.begin(9600);
        servo_10.attach(10);
        servo_11.attach(11);
        delay(2000);
        sstts.begin(sstts.eV1);
        sstts.speak("正在初始化,请稍候");
        delay(1000);
        huskylens.beginI2CUntilSuccess();
        servo_10.angle(abs(90));
        sstts.speak("请在左侧托盘放入物品,并在右侧托盘放入物品的个数,按下按钮开始检测");
}
void loop() {
        if ((analogRead(A0)<500)) {
                servo_10.angle(abs(90));
                servo_11.angle(abs(10));
                huskylens.writeAlgorithm(ALGORITHM_TAG_RECOGNITION);
                sstts.speak("检查放入物品的个数");
                delay(3000);
                huskylens.request();
                mind_n_geshu = huskylens.readCount(HUSKYLENSResultBlock);
                Serial.println(mind_n_geshu);
                servo_11.angle(abs(165));
                huskylens.writeAlgorithm(ALGORITHM_OBJECT_CLASSIFICATION);
                sstts.speak("检查写出的数字");
                delay(3000);
                huskylens.request();
                mind_n_shuzi = huskylens.readBlockParameterDirect(1).ID;
                Serial.println(mind_n_shuzi);
                if ((mind_n_geshu==mind_n_shuzi)) {
                        servo_10.angle(abs(90));
                        sstts.speak("恭喜你数对了,托盘两侧的物品和数字相等");
                }
                else {
                        if ((mind_n_geshu>mind_n_shuzi)) {
                                servo_10.angle(abs(105));
                                sstts.speak("写出的数字比放入的物品少一些");
                        }
                        else {
                                servo_10.angle(abs(75));
                                sstts.speak("写出的数字比放入的物品多一些");
                        }
                }
                delay(2000);
                sstts.speak("请在左侧托盘放入物品,并在右侧托盘放入物品的个数,按下按钮开始检测");
        }
}

下载附件刘雯萱 彭楚寻 天平程序.zip

步骤4 附件

下载附件刘雯萱 彭楚寻 天平建模.zip

步骤5 作品演示视频

https://www.bilibili.com/video/BV1Em4y1Y71i/

硬件清单

步骤6 硬件接线图

【比赛优秀作品】数量认知教学天平图8

往期推荐











您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail