回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【大侦探趣味障碍赛】我的小秘密 简单

头像 zhaowl1234 2019.08.17 641 0

我的小秘密

周末和女儿彦彦去文化市场玩。喜欢去文化市场,不经意间总能发现一角处弥漫开淡淡地复古的幽香。当然还有各式各样小玩意儿,堆得零琅满目,小玉坠儿、核桃雕、木制的小家具,在紧紧挨着的地摊儿间,彦彦东瞅瞅,西转转,倒也惬意快活。 彦彦一贯地粘人,但还是很乖巧懂事的,若说坚决不能买的东西,她也就要求着“光让我看看行嘛?”。可结果总是因为予心不忍,或是拜倒于彦彦锲而不舍地“粘缠”精神,到最后总会无奈地提着各式各样的“光看看”的战果而归。 这次,彦彦看中了一本粉红色带锁的密码日记本。本子右侧一排白色的按扭是来设定密码的。摊主告诉彦彦怎么使用后,彦彦就饶有兴致的“背”对着我研究起来。更甚的是,回家的 路上,只要我一回头靠近她,彦彦便停下手中摆弄的宝贝本子,刹有介事、一本正经地捂起来密码按纽对我说:“爸爸,不准偷看我的密码”。彦彦看着密码本,在想放在哪里安全呢,书桌内,好像还是不安全,要去再加一道密码,放入密码盒子中,自己利用暑假期间做一个密码盒子,放放自己的小秘密。

材料清单

  • bit X1
  • bit扩展板 X1
  • 单神经元模块 X1
  • 舵机 X1
  • 按钮 X1
  • LED灯 X1

步骤1 练习单神经元模块

project-image

单神经元模块是一种功能模块,通过运用该模块,我们可以学习和了解人工智能的基础——机器学习。该功能模块模拟的是神经网络中最基础的一个节点——神经元。神经元(neuron,neure),是神经系统的基本结构和机能单位。神经元在人体上有接受、整合和传递信息的功能。而我们用到的单神经元模块也是人工智能神经网络中的一个基础节点,与人体神经元类似。通过单神经元模块的处理,按键按下和松开的时间节奏以及精度都能够得到控制,从而达到机器学习中“训练”和“调整”的目的。

在单神经元模块左侧的输入接口接入传感器,如:按钮开关、光照强度传感器、声音传感器等数字和模拟传感器后,按住单神经元模块上的学习按钮,即可对输入的电信号进行学习,同时学习指示灯点亮。整个学习过程,单神经元模块会记录信号的强度和模式。学习完毕后,松开学习按钮,再次按下并松开学习按钮,此时进入输出模式,输出指示灯点亮。当单神经元模块输入接口接收到学习过程中的同样的电信号强度和模式时,输出接口的信号线会输出高电平,不同的设备可以利用此电压信号实现想要的功能。匹配的精度可以通过精度调节旋钮进行调节。

步骤2 制作密码盒子

project-image

翻出一个鞋盒,在鞋盒的侧面的下部剪去一块,准备安放按钮、灯之类的东西,上面开一个槽,舵机转动需要卡住的地方。

步骤3 硬件连接

project-image

按键-连接分支结构,分支结构一路直接连接bit扩展板,一路通过单神经元模块连接bit扩展板,把舵机也连接到bit扩展板上。

步骤4 编程

project-image
project-image
project-image

按键A让密码程序开始工作,主程序判断密码,如果相同,舵机执行动作,打开秘密盒

步骤5 操作

使用方法,通电,设置密码,把小秘密放入盒子中,按下按键A,快速把盒子盖上,舵机会把盒子的盖子卡住,不能打开盒子了,通过按键输入密码,如果密码不符合,设备没响应,如果密码符合要求,舵机回复到初始位置,就可以把盒子打开。

代码
#include <DFRobot_Servo.h>
#include <Microbit_Matrix.h>

double mind_n_biaoji;

Servo myservo2;
const uint8_t bitmap_lGEl[5] = {B01110,B00010,B01110,B00010,B01110};
const uint8_t bitmap_Ba4z[5] = {B01110,B00010,B01110,B01000,B01110};
const uint8_t bitmap_lslZ[5] = {B00100,B00100,B00100,B00100,B00100};
const uint8_t bitmap_P5C5[5] = {B01110,B01010,B01010,B01010,B01110};

void buttonACallback()
{
	MMatrix.show(bitmap_lGEl);
	delay(1000);
	MMatrix.show(bitmap_Ba4z);
	delay(1000);
	MMatrix.show(bitmap_lslZ);
	delay(1000);
	MMatrix.show(bitmap_P5C5);
	MMatrix.clear();
	mind_n_biaoji = 1;
	myservo2.angle(abs(120));
}


void setup() {
	mind_n_biaoji = 0;
	myservo2.attach(2);
	myservo2.angle(abs(30));
	onEvent(ID_BUTTON_A, PRESS, buttonACallback);
}

void loop() {
	if ((mind_n_biaoji == 1)) {
		if (((digitalRead(0)) == 1)) {
			digitalWrite(8, HIGH);
			delay(200);
		}
		else {
			digitalWrite(8, LOW);
		}
		if ((digitalRead(1))) {
			for (int count = 0; count < 3; count++) {
				digitalWrite(8, HIGH);
				delay(500);
				digitalWrite(8, LOW);
				delay(500);
			}
			mind_n_biaoji = 0;
			myservo2.angle(abs(30));
		}
	}
}

代码:https://gitee.com/zhaowl1234/my_little_secret/tree/master/

评论

user-avatar