文档章节

TurnipBit口袋编程计算机DIY计数存钱罐

bodasisiter
 bodasisiter
发布于 2017/08/23 17:35
字数 608
阅读 25
收藏 0

  下面使用TurnipBit开发板自己制作了一个计数存钱罐,不光能存钱,还能计数,还能显示存了多少钱,分享出来给大家交流学习一下。

  详细教程可参考:http://turnipbit.tpyboard.com,微-信公众号:MicroPython玩家汇

  实物成品如下图:

  这个计数存钱罐主要原理就是利用了硬币可以导电的基本特性。在盒子放入硬币的入口处设置一个略小于硬币厚度的金属夹片,分别连接IO口和GND,这样在有硬币投入的时候,就可以检测到导通,进而计数保存的硬币数量。

  这个计数存钱罐主要使用的器件如下:

  TurnipBit一块

  纸盒一个

  导线若干

  金属夹片两片

  制作过程如下:

  1)硬件制作

  1.在纸盒顶端做一个开口,大小以正好放入一元硬币为最佳;

  2.在纸盒正面做三个开口,大小以正好露出显示屏和按键为最佳;

  3.放入TurnipBit;

  2)软件制作

  1.做一个数组,用来保存显示图形的段码;

  2.做一个函数,用来显示图形;

  3.在循环中循环扫描两个金属夹片是否短路;

  4.检测都短路,延时一会,再次检测是否短路;

  5.两次均检测到短路,即可判断为有硬币投入,即可计数加一;

  6.在显示屏上显示的数值做相应调整。

  以上为TurnipBit制作计数存钱罐的基本原理和做法,几天代码如下:

  

from microbit import *

coin_count=0
old_count=-1
pinflag=0

def num2img(x):#设置显示函数
	imgarray=[[12,18,18,18,12],[4,12,4,4,14],[14,1,6,8,15],[15,1,2,9,6],[6,10,18,31,2],[31,16,30,1,30],[4,8,14,17,14],[31,2,4,8,16],[14,17,14,17,14],[14,17,14,4,8]]#设置数组,保存显示段码
	numarray=imgarray[x]
	resstr=""
	for i in range(5):
		numstr=(str(bin(numarray[i])).replace("1", "9"))[2:]
		c=5-len(numstr)
		for j in range((c)):
		  	numstr="0"+numstr
			resstr=resstr+numstr+":"
			return resstr[0:len(resstr)-1]

while True:
	if(old_count!=coin_count):
		if(coin_count<10):#判断存钱数量在可固定显示范围内
			display.show(Image(num2img(coin_count)))#显示当前钱数
		old_count=coin_count

	if(coin_count>=10):#判断当前钱数在滚动显示范围
		display.scroll(str(coin_count))#显示当前钱数

	if(pin0.read_digital()==0 and pinflag==1):#判断两个夹片是否真的短路
		coin_count=coin_count+1#钱数加一
		pinflag=0
	if(pin0.read_digital()==1):#检查两个夹片是否短路
		pinflag=1
		sleep(1000)//防抖动延时

 

© 著作权归作者所有

共有 人打赏支持
bodasisiter
粉丝 14
博文 148
码字总数 134395
作品 0
潍坊
编程学习将成为必然趋势,青少年编程,从哪里开始?

  “青年兴则国家兴,青年强则国家强”。青少年是推动未来社会发展变革的重要力量,而随着人工智能逐渐成为全球的共识,学习编程是必然的趋势!中国将来编程也要进入小学课本,这是青少年人...

bodasisiter
2017/11/01
0
0
MicroPython实例:TurnipBit开发板DIY自动浇水系统

1.实验目的: ?学习在PC机系统中扩展简单I/O 接口的方法 ?学习TurnipBit拼插编程 ?学习土壤传感器的工作原理以及使用方法 2.所需原器件: TurnipBit一块 TurnipBit扩展板一块 usb 数据线一条...

bodasisiter
07/03
0
0
MicroPython实战之TurnipBit开发板DIY电子时钟

一、 实验目的: ?学习在PC机系统中扩展简单I/O 接口的方法 ?学习TurnipBit拼插编程 ?学习TurnipBit扩展板与DS3231时钟模块连接接线方式 ?学习时钟模块的使用 二、所需原器件: ?TurnipBit一...

bodasisiter
06/26
0
0
利用TurniBit开发板DIY一套自动窗帘模拟系统

  一、准备工作   TurnipBit 开发板 一块   下载数据线 一条   微型步进电机(28BYJ-48) 一个   步进电机驱动板(ULN2003APG) 一块   光敏传感器 一个   TurnipBit 扩展板 ...

FreeBuf
07/01
0
0
Microbit  Turnipbit  孩子也能做的声光控开关

最近一直在研究Turnipbit这块板子,之前也做了几个小实验,研究了下针脚,发现光敏传感器和声音传感器针脚能对的上,就做了下这个声光控小实验,顺便测试下这块板子的性能。不得不说熟悉Mic...

bodasisiter
03/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

C++ gflags

###定义参数 gflags主要支持的参数类型包括bool,int32, int64, uint64, double, string等,定义参数通过DEFINE_type宏实现, 该宏的三个参数含义分别为命令行参数名,参数默认值,以及参数的...

SibylY
19分钟前
0
0
intellij IDEA Properties中文unicode转码问题

在IDEA中创建了properties文件,发现默认中文不会自动进行unicode转码。如下 在project settings - File Encoding,在标红的选项上打上勾,确定即可 效果图如下: unicode转码后效果...

muzi1994
20分钟前
0
0
Java IO类库之PipedWriter

一、PipedWriter介绍 PipedWriter是字符管道输出流,继承自Writer,功能与PipedOutputStream类似,通过与PipedReader组合使用实现类似管道的功能,在多线程环境下,一个线程使用PipedWriter...

老韭菜
24分钟前
0
0
精简分页组件(手写)

需要引入CSS(没错就是这4行) .pagelist { text-align: center; color: #666; width: 100%; clear: both; margin: 20px 0; padding-top: 20px }.pagelist a { color: #666; margin: 0 2px;......

AK灬
25分钟前
3
0
29 岁成为阿里巴巴 P8,工作前 5 年完成晋升 3 连跳,他如何做到?

泡泡是我的好朋友。今年 31 岁,毕业后就进了阿里巴巴,工作五年内从 P4 晋升至 P6、P7、P8。 和他很少聊到工作,但总觉得他有很棒的职场心得,应该分享出来,于是有了这次采访。希望对职场新...

Java填坑之路
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部