2017年10月30日 星期一

當彈珠台遇到了arduino 之mBlock程式設計 ( mBlock: Taiwan Pinball Project )

本篇文章主要講解 Arduino 台式彈珠台的程式設計部分。

硬體材料:
1. Arduino UNO R3 板子 x 1
2. 感應開關(限位開關) x 9
3. 公對公杜邦線 x 11 (開關 9 條,麵包板+5V 與 GND 各一條)
4. 公對母杜邦線 x 24 (開關 18 條,蜂鳴器 2 條,LCD 4 條)
5. 麵包板 x 1
6. 蜂鳴器 x 1
7. I2C LCD x 1
8. 1K 電阻 x 9

接線對應腳位
開關接 D2 ~ D10
蜂鳴器接 D12
LCD SDA 接 A4
LCD SCL 接 A5

mBlock I2C LCD 擴展
要讓 mBlock 可以使用 I2C LCD 的積木,需在 mBlock中,開啟擴展管理員安裝擴展 LCD I2C Pack 1.03。並將 NewLiquidCrystal (本文使用NewliquidCrystal_1.3.4.zip)解壓縮後,複製到mBlock 的 Arduino 程式庫路徑 C:\Program Files (x86)\mBlock\Arduino\libraries

再往下看前,請先思考彈珠檯要怎麼計分

底下是筆者所想到的幾個計分方式:

  1. 等差:1 + 2 + 3 + 4 + 5…. 
  2. 等比:1 + 2 + 4 + 8 + 16...
  3. 隨機加分:亂數1 + (亂數1+亂數2) + (亂數1+亂數2+亂數3)
  4. 質數:2 + 3 + 5 + 7 + 11 + 13 + 17 + 19 ...

當然還有其他的方式。

等差計分方式積木:


等比計分方式積木:


活動照片: https://www.facebook.com/groups/yunlinmaker/permalink/1120988434702083/

測試影片一:


測試影片二: