使用 USB-to-Serial 設定 HC-06 藍牙模組

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

最近拿到一個USB轉UART的轉接器,如下圖:
剛好可以拿來設定 HC-06 的藍牙模組,接線方式如下:
USB_TXD --> HC-06_RX
USB_RXD --> HC-06_TX
USB_3.3V --> HC-06_5V
USB_GND --> HC-06_GND

雖然照著[1] Prolific USB-to-Serial Comm Port 裝置無法啟動 (win10 driver )安裝了Driver,結果又遇到另外的狀況:「有兩個版本的Driver在系統裡,沒手動選擇版本的話,系統會用新版的」,結果就如下圖所示,有驚嘆號存在。

於是只好自己手動修改囉,在Prolific USB-to-Serial Comm Port下按右鍵,選擇更新驅動程式軟體

選擇瀏覽電腦上的驅動程式軟體

選擇讓我從電腦上的裝置驅動程式清單中挑選

選擇 3.3.10.140 [2009/11/19]的版本

更新成功

驚嘆號不見了。

按右鍵看一下剛剛安中的驅動程式版本


接著就可以用Arduino IDE 中的序列埠監控視窗來做設定:

測試AT指令,(HC-06的AT指令請參考:[2] HC-05與HC-06藍牙模組補充說明(三))

修改HC-06模組名稱

用筆電的藍牙搜尋看看。

有出現修過的名稱,就代表成功了。

參考資料:
[1] Prolific USB-to-Serial Comm Port 裝置無法啟動 (win10 driver )
[2] HC-05與HC-06藍牙模組補充說明(三)

mBlock 單元十九:紅外線循跡自走車 ( mBlock Unit 19: A Line Following Car )

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

本文的原理部分可參考碁峰出版的 <Arduino自走車最佳入門與應用:打造輪型機器人輕鬆學>一書。本文車子的控制方法如下表:

The rules for the action of the car are:
Left IR Sensor
Middle IR Sensor
Right IR Sensor
Car Action
0
0
0
Forward
0
0
1
Turn Right Quickly
0
1
0
Forward
0
1
1
Turn Right Slowly
1
0
0
Turn Left Quickly
1
0
1
Stop
1
1
0
Turn Left Slowly
1
1
1
Stop


要挑戰的路徑如下圖所示 (The Path for this tutorial is):

硬體材料:
1. Arduino UNO R3 板子 x 1
2. Arduino 感測器擴展板 Sensor Shield V5.0 x 1
3. 5V 直流馬達 x 2
4. 紅外線循跡模組 x 3
5. L298N 馬達驅動板 x 1
6. 小車底盤 x 1
7. 小車輪子 x 2
8. 萬向輪 x 1
9. 緊固件 x 4
10. M2銅柱 x 4
11. M2螺帽 x 7
12. M2*3cm 螺絲 x 4
13. M2*1cm 螺絲 x 11
14. 兩節18650電池盒 x 1
15. 18650電池 x 2
16. 免焊接DC公頭 5.5-2.1mm x 1
17. 公對公杜邦線 x 6
18. 母對母杜邦線 x 13
19. 橡皮筋兩條

Materials:
1. Arduino UNO R3  x 1
2. Arduino sensor shield V5.0 x 1
3. IR Line tracking sensor x 3
4. L298N motor driver module x 1
5. Car chassis kit (Like this one)6. 2-pack battery holder for 18650  x 1
7 18650 battery x 2
8. 5.5mm x 2.1mm 12V DC power male jack connector plug adapter x 19. Male to male wire jumper x 6
10. Female to female wire jumper x 13
11. Rubber bands

硬體電路(The Circuit):


接線對應腳位
L298N馬達驅動板 The connections for L298N
  • IN1 接 Arduino D5 (L298N IN1 --> Arduino D5)
  • IN2 接 Arduino D6 (L298N IN2 --> Arduino D6)
  • IN3 接 Arduino D9 (L298N IN3 --> Arduino D9)
  • IN4 接 Arduino D10 (L298N IN4 --> Arduino D10)
  • 12V 接 Arduino 5V (L298N 12V --> Arduino 5V)
  • GND 接 Arduino GND (L298N GND --> Arduino GND)
須注意紅外線循跡模組放在自走車的位置,程式是以接上Arduino腳位來判斷左(數位腳 2)中(數位腳 3)右(數位腳 4)的位置。
The left IR sensor is on the left side of the car. And it's signal pin is connected to UNO D2.
The middle IR sensor is on the middle of the car. And it's signal pin is connected to UNO D3.
The right IR sensor is on the right side of the car. And it's signal pin is connected to UNO D4.

完成圖(The finished car):


程式積木(The mBlock code):


示範影片(Demo videos):




給讀者的思考點:
1. 用長方形的路徑,結果會如何?
2. 若左右輪的轉速不一樣時如何調整?
3. 地面摩擦力的影響?
4. 一定要用3個紅外線循跡模組?
5. 在競速比賽中,如何取勝?

Questions:
1. If the path is rectangle, what will happen?
2. How to adjust a single wheel's rotational speed?
3. The effect of friction between the ground and the car?
4. Could we use more IR line tracking sensors?
5. How to win in a car racing competition?

MBOT 初體驗

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

昨天參加雲林縣舉辦的mBot輪型機器人研習會,首次摸到這台機器人了,之前都是在網路上看別人的影片,或自己想辦法組出自走車來玩,不過組裝步驟多,也得找材料等,而且不易於團體教學用。mBot方便組裝,此外,除了提供Android與iOS手機的App可作為互動用外,也可用mBlock作互動式的積木程式設計,透過mBlock內建的Arduino IDE可以學一些C程式語言


來看一下組好的mBot,含有紅外線遙控器,兼具與電腦互動和充電功能的USB線。


立起來後可觀察輪子的轉動方向


簡易的距離、三色燈、與輪子控制程式


下圖的設計可用來解釋靜摩擦力與動摩擦力的差異


用mBot除了可以學到程式積木的設計外,也可學到它所用到的科學知識喔!

樹莓派之遊戲機製作 ( Building a PC Game System with Raspberry PI 3 )

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

本文為記錄筆者安裝RetroPie 4.1的過程,安裝過程為參考RetroPie新手教學(一)軟硬體準備與初始安裝。RetroPie裡的遊戲模擬器有很多,從任天堂紅白機到PlayStation 1等,筆者不多介紹模擬器的種類,有興趣的人請參考 https://github.com/RetroPie/RetroPie-Setup/wiki/Supported-Systems

本文所用到的硬體(下圖):
1. SNES USB 遊戲搖桿 x 2
2. HDMI 傳輸線公對公 x1
3. Raspberry Pi 3 Mode B x 1
4. USB 2A Power Supply x 1
5. Wireless USB Keyboard x 1
6. LED TV 顯示器 x 1


準備好硬體後,請至RetroPie官網 https://retropie.org.uk/

下載RetroPie 4.1版本,筆者的硬體為Raspberry Pi 3,於是選擇Raspberry Pi 2/3的版本。

接著使用7-Zip將壓縮檔 retropie-4.1-rpi2_rpi3.img.gz 解壓縮得到 retropie-4.1-rpi2_rpi3.img 檔案。

接著用SDFormatter格式化SD Card。




接著使用Win32DiskImager將 IMG 寫入SD Card





至此SD Card就製作完成了。

Wifi 三色小夜燈 ( A Web-Controlled RGB LED )

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

本文為 mBlock 單元十八:藍牙小夜燈 與 Arduino Nano 藍牙小夜燈 的延伸,將板子換成NodeMCU,手機程式部分則是採用 JavaScript + HTML + CSS 搭配 PhoneGap設計, 並透過
Adobe PhoneGap Build 產生可以透過Wifi來控制三色LED的手機App

硬體材料:
1. NodeMCU 板子 x 1
2. 麵包板 x 1
3. RGB LED x 1
4. 220歐姆電阻 x 3
5. 公對母杜邦線 x 4

硬體電路:

綠色LED --> NodeMCU D6
藍色LED --> NodeMCU D7
紅色LED --> NodeMCU D8

完成圖:


Arduino程式:
程式部分須注意D6D7D8 的 GPIO編號為12(綠色LED)13(藍色LED)15(紅色LED),程式碼是用GPIO的編號來對應,請參考下圖做對照。
ESP8266 可以當SoftAP或Host兩種模式,本文為使用Host的方式。
SoftAP程式碼下載處:https://goo.gl/kwt81a
Host程式碼下載處:https://goo.gl/QUjAX7

WebApp程式:
此部分筆者是使用PC端 PhoneGap Desktop app與手機端 PhoneGap Developer app兩者結合使用而完成的。

PC端部分是建立新專案,

選擇空白專案(Blank)

建議讀者可以直接使用筆者所提供的壓縮檔:https://goo.gl/F7S6xy,用匯入的方式(Open existing PhoneGap Project)來使用。

示範影片:
iPhone手機控制

Android手機控制


參考資料
[1] http://www.instructables.com/id/Esp8266Websockets-RGB-LED-controller/
[2] https://developer.mozilla.org/zh-TW/docs/WebSockets/Writing_WebSocket_client_applications
[3] http://phonegap.com/
[4] http://danielstern.ca/range.css/?ref=css-tricks#/
[5] http://docs.phonegap.com/getting-started/1-install-phonegap/desktop/
[6] http://docs.phonegap.com/getting-started/2-install-mobile-app/

Python 遊戲設計:軟體安裝 ( Python Game Development: Software Installation )

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

想要用Python來開發遊戲的話,Pygame是其中一種選擇。

1. 從官網https://www.python.org/downloads/,下載最新版的Python。


2. 從http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame,下載pygame‑1.9.2rc1‑cp35‑cp35m‑win32.whl。

3. 將pygame‑1.9.2rc1‑cp35‑cp35m‑win32.whl複製到 C:\Users\YOUR_USER_ACCOUNT\AppData\Local\Programs\Python\Python35-32\Scripts\ 資料夾下,注意其中的YOUR_USER_ACCOUNT為你的Windows 10使用者名稱。


4. 在C:\Users\YOUR_USER_ACCOUNT\AppData\Local\Programs\Python\Python35-32\Scripts\ 資料夾下,按住鍵盤上的Shift同時按下滑鼠右鍵,選擇「在此處開啟命令視窗」,並輸入pip3 install pygame‑1.9.2rc1‑cp35‑cp35m‑win32.whl指令。


5. 開啟IDLE測試下面的Pygame的範例:
import pygame
import pygame.examples.aliens as game
game.main()



6. 若出現下面畫面就代表安裝成功了。


Arduino Otto 跳舞機器人 ( Otto Dancing Robot )

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

Otto為可用Android手機中的Zowi App來控制動作的3D列印機器人,筆者手上的一台是由雲林自造教育中心提供的。本文將分享一些研究此程式碼的心得與如何測試Otto

建議DIY步驟如下:
0. Otto 3D 列印
Otto 3D模型檔案網址:http://www.thingiverse.com/thing:1568652

1. 設定藍牙模組
藍芽的名稱為Zowi開頭,例如ZowiOne;Baudrate115200;配對密碼1234。指令部分,HC-05請參考[1],HC-06請參考[2]

此外,HC-06也可用Arduino Nano搭配下面程式來做自動設定的動作。
https://github.com/G4lile0/Bobwi/blob/master/code/v2/arduino/code/hc06_bt_config/hc06_bt_config.ino
記得更新Arduino Nano板子程式後,才接上HC-06。

HC-06與Arduino Nano接線方式如下:
HC-06 GND --> Nano GND Pin
HC-06 VCC (5V) ---> Nano 5V
HC-06 TX --> Nano RX
HC-06 RX --> Nano TX

2. SG90伺服馬達校正
方法一(用Otto內建的程式指令,建議用此方法):
使用筆者的程式來校正Servo Motor SG90,下載處在此:https://goo.gl/JKp72E解壓縮後將Otto所用到的 libraries

複製到 Arduino IDE 下的 libraries

接著開啟OTTO_ServoHome.ino 檔案

選擇Arduino Nano板

燒錄完後,斷電,再將將四組伺服馬達接上NANO感測器擴充板上的2, 3, 4, 5數位腳位,接好腳位後上電,此時四組伺服馬達會自動移到Otto機器人立正時的角度。


方法二(用Zowi的程式指令):
使用https://github.com/G4lile0/Bobwi/blob/master/code/v1/arduino/v1/calibration/calibration.ino程式來校正Servo Motor SG90,請將四組伺服馬達接上NANO感測器擴充板上的6, 3, 4, 5數位腳位做校正。

補充:因為calibration.ino程式有用到Zowi的函式庫,若有遇到無法編譯calibration.ino時,請至https://github.com/G4lile0/Bobwi下載專案壓縮檔,先按下右方的Clone or download,在按下 Download ZIP

再將解壓縮後的Zowi資料夾

放到Arduino IDE 的libraries資料夾內

重新編譯即可。

3. 組裝(先不接上藍牙模組)
組裝手冊:OTTO_InstructionManual_V04
(下圖取自OTTO_InstructionManual_V04)
上圖中的紅色矩形是藍牙模組接線的位置。

注意:在燒錄程式時,藍牙模組不能接上板子,建議測試完程式功能後在接上藍牙模組。
藍牙模組接線:
HC-05 GND --> Nano GND Pin
HC-05 VCC (5V) ---> Nano 5V
HC-05 TX --> Nano RX
HC-05 RX --> Nano TX

4. 燒錄Otto Arduino Nano程式
Otto的Arduino Source Code網址:https://github.com/OttoDIY/OttoDIY
不過本文所用的程式碼為筆者修改過的,下載處在此:https://goo.gl/JKp72E解壓縮後將Otto所用到的 libraries

複製到 Arduino IDE 下的 libraries

接著開啟 OTTO_BT.ino 檔案

選擇Arduino Nano板

燒錄好之後,可先用序列埠監控視窗測試指令,記得要選 CR(Carriage return),115200的baudrate。最好接上外接電源到板子上來避免USB供電不足


控制前後左右的指令如下:
前進 ==> M 1
後退 ==> M 2
向左 ==> M 3
向右 ==> M 4

M 與數字之間有一個空白鍵
蜂鳴器指令(Tone)為 T 頻率 毫秒時間
例如:
T 323 500
T 232 1000

以上的指令是Trace Code而來的,Otto所用到的函示庫是由https://github.com/scogswell/ArduinoSerialCommand修改而來的。在程式碼中可看到如下片段程式碼:

例如在序列埠監控視窗輸入B這個字母,從電腦傳送到Arduino Nano時,Nano會執行requestBattery函式(Function),內容如下:

接著看一下移動相關的指令 SCmd.addCommand("M", receiveMovement);
 
對照 receiveMovement 函式內容,筆者得到控制前後左右的指令如下:
前進 ==> M 1
後退 ==> M 2
向左 ==> M 3
向右 ==> M 4

M 與數字之間有一個空白鍵

在此步驟可用電腦正常控制的話,恭喜你可接上藍牙模組,開始使用Zowi App來控制Otto Robot。

5. 使用Zowi App控制
Zowi App下載:https://play.google.com/store/apps/details?id=com.bq.zowi&hl=zh_TW
此程式已內建自動配對與尋找Zowi Robot的功能(尋找藍芽名稱以Zowi開頭的裝置),

影片:
設定Otto一連串動作後,Action!


控制前後左右等動作。


記憶遊戲:請記下Otto的動作,並依序回答。

參考資料:
[1] http://www.instructables.com/id/Modify-The-HC-05-Bluetooth-Module-Defaults-Using-A/
[2] http://www.instructables.com/id/Tutorial-Using-HC06-Bluetooth-to-Serial-Wireless-U/
[3] http://www.instructables.com/id/Otto-Build-You-Own-Robot-in-Two-Hours/