社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  python开源

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

bodasister • 7 年前 • 1114 次点击  

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

详细教程可参考:www.turnipbit.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)//防抖动延时
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3164
 
1114 次点击