TurnipBit口袋編程計算機DIY計數存錢罐

  下面使用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)//防抖動延時
發佈了63 篇原創文章 · 獲贊 20 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章