mBlock 單元十八:藍牙小夜燈 ( mBlock Unit 18: Control a Lamp from Android Phone )

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

本文為延續Arduino Nano 藍牙小夜燈,將Arduino程式部分換成mBlock來設計,也說明如何用mBlock設計可與藍牙模組互動的程式積木。首先修改mBlock的串口預設速率115200為HC-05藍牙模組的預設速率9600。

方法如下:
1. 開啟擴展管理器,點選擴充-->擴展管理器

2. 點選已安裝,在選擇Arduino的查看原始碼

3. 用文字編輯器(筆者是使用Notepad++),修改Arduino.s2e檔案中的 Serial.begin(115200),換成自己需要的速率,以HC-05藍芽模組而言,預設值是9600,所以筆者就改成9600。

設定好之後,就可以設計如下的程式積木:

這樣就可以使用mBlock設計與藍牙模組互動的程式積木了。

想一想除了藍牙模組外,此設計方式還可以與什麼硬體互動呢?

程式語言常見的語法

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

有學生問:「Java有哪些常見的語法?」
於是筆者把這個問題換成「程式語言常見的語法有哪些?」

據筆者所知,程式語言所用的語法分為底下幾類:

  1. 變數(Variables)。
  2. 程式流程控制(Flow Control)。
  3. 函式(Functions)。
  4. 邏輯(Logic)。
  5. 數學運算(Math)。
  6. 物件導向(Object-Oriented)
  7. 其他(Others)。
本文只會提到第 1, 2, 3, 4, 5 點搭配離線版Blockly程式積木編輯器做說明,至於第6, 7點請有興趣的人自行Google。

1. 變數
建立score變數的例子。有些程式語言的變數有分成整數、浮點數、字元、等分別,例如Java(請參考Java Gossip:型態)。

2. 程式流程控制
分為判斷與迴圈
判斷
判斷score是否有超過及格分數。

迴圈
使用迴圈判斷1到10這十個數字中,那些是偶數,那些不是偶數。迴圈是用不斷做某些事。

3. 函式
簡單的問候(Hello, [姓名])函式。函式有點像是數學中的函數

4. 邏輯
Java語言可參考Java 快速導覽 - 運算子語言

5. 數學運算
此部分離線版Blockly程式積木編輯器已很直覺了,不多做說明。

建議讀者用離線版Blockly程式積木編輯器玩玩看,因為它提供了三種程式語言語法(Syntax)的對照。

Arduino Nano 藍牙小夜燈 ( Control a Lamp from Android Phone )

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

感謝 NFU Dream Maker 所提供的免費課程,讓筆者完成DIY的藍牙小夜燈,底下是筆者重新設計Arduino程式與Android APP兩部分的分享。

硬體材料:
1. Arduino Nano 板子 x 1
2. NFU Dream Maker 所設計的 PCB x 1
3. RGB LED x 3
4. 電阻 x 3
5. HC-05 藍牙模組 x 1

硬體電路:


紅色燈接 --> D9
綠色燈接 --> D10
藍色燈接 --> D11
上圖省略藍牙的VCC、GND接線

完成圖:

Arduino程式:
https://goo.gl/hIcj8x

MIT App Inventor程式:
https://goo.gl/CKoxH0

Android APK 下載處:
https://goo.gl/Vdrsjl


示範影片:

mBlock 單元十七:藍牙自走車 ( mBlock Unit 17: Arduino Bluetooth Car )

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

本文將本部落格的兩篇文章: Arduino 藍芽自走車mBlock 單元十六:超音波避障自走車合併,並將藍牙模組換成HC-06,且在Arduino程式設計部分使用mBlock程式積木的方式來設計程式。

硬體材料:
1. Arduino Nano 板子 x 1
2. 伺服馬達(Servo Motor) x 1
3. 超音波感測器(Ultrasonic Sensor) x 1
4. FabLab NKNU 3D 列印小車 x 1
5. FabLab NKNU 擴充板 x 1
6. 母對母杜邦線 x 16
7. 微型金屬減速馬達 x 2
8. 18650 3.7V 4200mA 鋰電池 x 2
9. 18650 兩節電池盒 x 1
10. HC-06 藍牙模組 x 1

硬體電路:

(注:此電路圖省略了伺服馬達、超音波感測器、藍牙模組HC-06的正極與負極的接線)
D2與D3 --> 左邊馬達的正負極
D4與D5 --> 右邊馬達的正負極(馬達接錯沒關係,程式可以改)
D9 --> 伺服馬達的 Pulse
D13 --> 超音波的trig
D12 --> 超音波的echo

藍牙模組與Arduino Nano腳位接法:
   Nano RX (D0) --> HC-06 TX
   Nano TX (D1) --> HC-06 RX


完成圖:


程式積木:


注意HC-06藍牙模組 Serial 的預設傳輸速度為9600,於是筆者使用mBlock設計好程式積木後,再使用Arduino IDE 將 Serial.begin(115200) 改為 Serial.begin(9600)。

示範影片:

Android App 專案網址:http://ai2.appinventor.mit.edu/#5786977178484736
Android APK 下載處:
Google Drive

Google Play

RPG遊戲之一元二次方程式

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

筆者曾用上圖的方式去教一位學生,因為一元二次方程式的係數a不得為零,主角HP為零時,遊戲也就結束了。此方法還可以延伸到其他遊戲裡去,也可擴展到多元多次方程式裡。

mBlock 單元十六:超音波避障自走車 ( mBlock Unit 16: Obstacle Avoiding Car )

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

此避障車是由雲林自造教育中心所提供,而由FabLab-NKNU 高師大自造者基地所設計的,筆者拿來用mBlock來實作程式,當成入門超音波避障的基礎,判斷避障的方法很陽春,也歡迎網友提供更好的方法

硬體材料:
1. Arduino Nano 板子 x 1
2. 伺服馬達(Servo Motor) x 1
3. 超音波感測器(Ultrasonic Sensor) x 1
4. FabLab NKNU 3D 列印小車 x 1
5. FabLab NKNU 擴充板 x 1
6. 母對母杜邦線 x 16
7. N20-300 微型金屬減速馬達 x 2
8. 18650 3.7V 4200mA 鋰電池 x 2
9. 18650 兩節電池盒 x 1

硬體電路:

(注:此電路圖省略了伺服馬達與超音波感測器的正極與負極的接線)
D2與D3 --> 左邊馬達的正負極
D4與D5 --> 右邊馬達的正負極(馬達接錯沒關係,程式可以改)
D9 --> 伺服馬達的 Pulse
D13 --> 超音波的trig
D12 --> 超音波的echo

完成圖:

程式積木:





示範影片:


樹莓派3 設定中文顯示

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

首先在Terminal下輸入指令:
sudo raspi-config

選擇 Internationalisation Options

選擇 Change Locale

將畫面往下拉,將所有 zh_TW 開頭的全部選擇,然後用Tab鍵移到OK(確定)按下Enter。

選擇 zh_TW.UTF-8

接著在Terminal下輸入底下指令:
sudo apt-get updatesudo apt-get install task-chinese-t-desktop

安裝好後重開機,系統就可以顯示中文了。

參考資料:raspberry pi3 Raspbian Jessie 中文顯示

為什麼數字5會比數字1大呢?

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

玩過撲克牌的人都知道Ace是代表數字1,通常Ace是最大的數字。在玩大老二時,換數字2為最大,那麼為什麼數字5會通常比數字1大呢?此問題可藉由數線的觀念來說明,在數線上越右邊的數字越大,越左邊的數字越小,而數字5在數字1的右邊,所以數字5比數字1大。

若你問我為什麼數字5會在數字1在右邊?
「恭喜你,你有在思考了!而且你問倒我了!」

數學家們為了方便所有的人可以討論,於是制訂了數學的遊戲規則,這些規則有些最後因為有嚴謹的證明,於是成了定理,除了數學以外,像是物理、化學等,都有遊戲規則在,有時候這些規則又有別名:「法律、習俗、慣例、文化」等。

當你的思考突破了這些框架時,你可能會發現自己的思考方向與周遭的人格格不入,此時,先別急著擔心,因為你有可能是下一位偉大的人物。

mBlock 單元十五:追光自走車 ( mBlock Unit 15: Light-Tracking Car )

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

筆者在做完Arduino 紅外線自走車Arduino 藍芽自走車後,在網路上看到有用光敏電阻來控制自走車的方向,於是做了個練習,完成可以玩的追光自走車。

硬體電路:


硬體材料:
1. Arduino UNO R3 板子 x 1
2. 220歐姆電阻 x 3
3. 公對公杜邦線 x 16
4. 5V 直流馬達 x 2
5. 光敏電阻 x 3
6. L298N 馬達驅動板 x 1
7. 小車底盤 x 1
8. 小車輪子 x 2
9. 萬向輪 x 1
10. 緊固件 x 4
11. 長螺絲 x 4
12. 短螺絲 (長8根、短2根)
13. 螺帽 x 10
14. 行動電源 x 1
15. USB Cable線 x 1
16. 橡皮筋多條
17. 手電筒 x 1

完成圖:


程式積木:
定義五個變數,車子前進方向 direction、左邊光源亮度 leftLight、讓車子產生動作的光源最低亮度 lightThreshold、前方光源亮度 middleLight、右邊光源亮度 rightLight




示範影片:

mBlock 單元十四:RGB LED ( mBlock Unit 14: RGB LED )

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

RGB LED的說明可參考竹林資訊站的Arduino第六課(RGB三色LED)一文。

硬體電路:


硬體材料:
1. Arduino UNO R3 板子 x 1
2. 杜邦線公對公 x 4
3. 220歐姆電阻 x 3
4. 麵包板 x 1

完成圖:


程式積木:

示範影片:

mBlock 單元十三:光感應開門系統 ( mBlock Unit 13: Light-responsive Door )

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

本文參考mBlock & Arduino(9)伺服馬達控制mBlock & Arduino(8)光敏電阻、亮度感應器兩篇文章。

設計燈光亮度大於一定的程度時(本文設定光敏電阻讀出來的數值大於90),門把就會開啟,只不過實際上是不會有人使用這種系統,因為太不安全了。

硬體電路:


硬體材料:
1. Arduino UNO R3 板子 x 1
2. 杜邦線母對母 x 3
3. 220歐姆電阻 x 1
4. Arduino Sensor Shield x 1
5. 光敏電阻 x 1

完成圖:


程式積木:

示範影片:

mBlock 單元十二:主動式紅外線感測器 ( mBlock Unit 12: PIR Sensor )

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

今天要來試試看主動式紅外線感測器的功能,詳細的說明請參考:Arduino第十六課(主動式紅外線感測器)

硬體電路:


硬體材料:
1. Arduino UNO R3 板子 x 1
2. 杜邦線公對母 x 3
3. TCRT5000紅外反射光電開關 x 1

完成圖:


程式積木:


示範影片:

樹莓派3初體驗

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

最近從新安裝樹莓派 3 Model B的作業系統(NOOBS),順便筆記一下。

用到的硬體有:
1. Raspberry Pi 3 Model B
2. Micro SD Card 與轉接卡
3. Micro USB Power Supply

4. RF 無線滑鼠鍵盤
5. 公對公HDMI線

6. 可用Wifi上網與讀取Micro SD Card的筆電
7. HDMI LED液晶螢幕(我是用家中的電視40吋...)

軟體:
1. SD Card Formatter,https://www.sdcard.org/downloads/formatter_4/
2. 解壓縮軟體7-Zip,http://www.7-zip.org/download.html
3. NOOBS作業系統壓縮檔,https://downloads.raspberrypi.org/NOOBS_latest

安裝步驟
1. 格式化Micro SD Card。

2. 下載NOOBS壓縮檔。
直接點此網址:https://downloads.raspberrypi.org/NOOBS_latest,或是https://www.raspberrypi.org/downloads/noobs/ 網頁上的下載圖案:


3. 解壓縮NOOBS壓縮檔,並將所有解壓縮的檔案複製到Micro SD Card上,也就是在SD Card裡的內容會如下圖:

4. 將完成好的 Micro SD Card 接上樹莓派,接上滑鼠鍵盤等,開機,等畫面出現下圖時,

5. 選擇Raspbian來安裝:

6. 安裝中:


7. 安裝完畢:


8. 開機畫面:


9. 設定Wifi:

10. 設定語系與時區:

11. 請開啟 Terminal ,下更新套件的指令:sudo apt-get update

12. 安裝中文輸入法,指令為 sudo apt-get install scim scim-tables-zh scim-chewing

13. 完成後,重開機就可以用Ctrl-Space切換輸入法來輸入中文。

14. 若想使用線上版的Scratch,請用此指令 sudo apt-get install rpi-chromium-mods來安裝瀏覽器的Flash Player: