文档章节

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

bodasisiter
 bodasisiter
发布于 2017/08/23 17:35
字数 608
阅读 60
收藏 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
粉丝 31
博文 209
码字总数 196976
作品 0
潍坊
私信 提问
加载中

评论(0)

TurnipBit:可视化拼插式编程,全面激发青少年的编程热情

  “全民编程”已成一股热潮,青少年编程很快就会成为“下一个基础学科”。而今年起,浙江省高考也把信息技术作为选项之一加入了高考,编程就是其中的重点内容,加上很多编程比赛有可能成为...

bodasisiter
2017/08/09
5
0
Python这么强大, 怎样才能快速入坑?

作为一种年轻的编程语言,Python为何能在短短几年的时间内就以迅雷不及掩耳之势驰骋编程界?答案很简单,在人工智能时代,AlphaGo 都在使用的 Python语言,是最接近 AI 的编程语言。 随着Pyt...

bodasisiter
2018/08/23
355
0
全民编程新时代—TPYBoard重磅产品TurnipBit来了!

  说到编程、谈到硬件,你也许会想到屌丝逆袭女神的“传奇”故事,也许会浮现出带着眼镜、头发稀少、无精打采的程序猿形象。“编程”,听起来高大上却似乎离我们很远也让很多人包括很多家长...

bodasisiter
2017/06/27
0
0
编程学习将成为必然趋势,青少年编程,从哪里开始?

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

bodasisiter
2017/11/01
88
0
[详细实例]MicroPython拼插编程实战:DIY一台会思考的壁障车

(转载请注明文章来源,更多教程可自助参考www.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇) 在日常生活中,大家会经常见到各种各样的遥控车,它需要我们人为的操作...

bodasisiter
2018/09/08
213
0

没有更多内容

加载失败,请刷新页面

加载更多

JavaWeb基础-Junit\反射\注解

一、Junit单元测试 对于测试分为黑盒测试和白盒测试,Junit属于白盒测试,需要在程序中写入代码。 Junit测试步骤: 1.定义一个测试类,类名命名格式: 包名package:XXX.test 被测试类+Test...

osc_cgh49c55
6分钟前
11
0
Vue-组件、传值props

目录 一、全局组件-关键词component 一、局部组件 二、子父组件-父向子组件传递数值 Props关键字: 三-子组件向父组件传值 四、组件插槽 五、具名插槽 必须先注册组件才能够使用 一、全局组件...

osc_2sv5yx4m
7分钟前
11
0
idea 打war包, 部署到本地服务器上

.先保证把项目跑起来, .修改pom文件中的jar改成war ..即:<packaging>war</packaging> .maven project中 ..clean一下 ..install一下 .然后去仓库找已经打好的war包, ..默人仓库在.m2里面 ..找...

阿_宁
8分钟前
14
0
Java-函数式接口Lambda,注解的使用

有且只有一个抽象方法的接口。函数式接口适用于函数式编程,在java函数式编程的体现就是 Lambda:()->{} 特点: 延迟加载(解释:满足条件执行,不满足条件不执行,避免性能浪费) 定义格式...

osc_97kpb2b5
8分钟前
11
0
GreenPlum 每个连接资源消耗的想法

早在1月份,发现gp的master上conn占用内存太高了,只是方式没有一起足够的重视,才导致了这次事故的发生。 我们如何得知某个conn被哪些PPID 执行过? 通过该命令可以得知posgrePID一共fork了...

osc_zgt6zhsy
10分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部