發表文章

目前顯示的是 4月, 2017的文章

Otto 組裝 ( Assemble Your Own Otto )

圖片
此次組裝的 Otto 機器人腳不一樣了,組裝完成後的圖如下: 有看出和 原版Otto 的差異嗎? 一、在組裝前,需要先檢查硬體是否有問題,準備好材料後,記得將四顆伺服馬達的槳給裝上去如下圖: 注意 Buzzer 有 + 號的那一頭為正極 二、根據官方的電路圖先將線路接好(依照下圖接線), 三、接著用官方提供的  Otto_avoid  程式來測試: 在上電後,先確定 Buzzer 有沒有聲音,再檢查四個伺服馬達有沒有動作,也要檢查伺服馬達是否有抖動的情況,接著用手擋住超音波看看 Buzzer 會不會發出聲音。 將四個伺服馬達給拆下, 拆的時候用雙指捏住黑色的地方比較不會讓線受損 ,如下圖: 身體的部分有 三角形 的地方為前方, 四、要先將身體裡的伺服馬達先裝上去,拿伺服馬達內的螺絲,一長與一短,先放置在伺服馬達上 將伺服馬達鎖在身體,伺服馬達的線先任意放 五、接著要來調整腳的伺服馬達的角度,目標如下圖: 可使用 Otto_avoid 程式來作調整,Otto_avoid 程式在 Buzzer 開始發出聲音前,會將四個伺服馬達調到 90 度, Buzzer 發出聲音後,所有伺服馬達就會開始動作,所以可以配合 Nano 上的重置按鈕來調整伺服馬達。 六、調整好馬達後,將腿裝上身體,注意 腳有兩個孔是朝身體前方 的 此時可鎖兩根 長螺絲 在腿上,記得不要鎖太深 七、將腳裝上,在鎖上螺絲之前,可觀察腿的孔是否有對槳,以利鎖螺絲 鎖好兩個螺絲後,會類似像下圖 八、頭的部分要先裝上超音波模組 將線調整好,且接到 Arduino Nano 控制板上,就可以把 Nano 控制板裝到頭上了 將頭蓋上身體,就完成組裝。 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

3D 列印四足獸 Mini Quadruped

圖片
最近拿到 Mini Quadruped - optimized for 9G servos 這隻 3D 列印的四足獸,不過筆者的接線腳位如下圖: 與Arduino Nano的數位腳位接線為從右上開始 逆時針方向一圈 : 腳的伺服馬達角度如下圖: 臀部的伺服馬達角度如下圖: 一開始用原作者給的程式,發現伺服馬達的角度跟我手上的這一隻不一樣,修改程式讓牠可以動起來: 注:原作的程式很多在筆者手上的動作都不如預期的,於是不保留此版本的程式碼,筆者改用  QuadBot  的程式。 再來改了一個可以用Android手機藍牙控制八個關節的程式( 程式下載處 ): 使用 QuadBot  的程式來修改,目前成果如下影片( 程式下載處 ): 參考資料: [1]  Mini Quadruped - optimized for 9G servos [2]  QuadBot 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

NodeMcu 球形機器人試做 Part 1

圖片
在網路上看到此篇文章:【 以Arduino 打造球形機器人 】,雙手開始癢癢的,於是用了 Arduino Nano 照著文章做了一個版本,程式也重新寫過,完成的圖如下:   可以動耶,只不過和原作者內文一樣,看起來像紙箱,而且筆者還用了許多膠帶來固定壓克力球以防求爆開,接著筆者又用 NodeMcu 加上一個Servo Motor SG90 來做一個: 完了一下子後,想改幾個地方: 1. 換成直流馬達。 2. 電源開關。 3. 外型變成 3D建模的方式,就可以用 3D 列印出來。 待續~~~~ 參考資料: [1]  以Arduino 打造球形機器人 [2] NodeMCU/ESP8266 implement WebSocketsServer to control RGB LED 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

Data Structures in Python (Python 的資料結構)

圖片
在說明  Python 的資料結構前,先來了解什麼是資料結構,底下節錄維基百科上的解釋: 『 在電腦科學中, 資料結構 (英語:data structure)是電腦中儲存、組織 資料 的方式。 資料結構 意味著介面或封裝:一個 資料結構 可被視為兩個函式之間的介面,或者是由 資料 類型聯合組成的儲存內容的存取方法封裝。 大多數 資料結構 都由數列、記錄、可辨識聯合、參照等基本類型構成。』 舉例來說,生活上我們常常在 排隊 等結帳,先到的先結帳(先進先出),這個就是資料結構中的 佇列 。常見的資料結構可分為兩種:「線性(Linear)」與「非線性(Non-linear)」。線性資料結構有: 陣列(Array) 、 鏈結串列(Linked List) 、 堆疊(Stack) 、 佇列(Queue) 、 矩陣(Matrix) ;非線性資料結構有: 堆積(Heap) 、 二元樹(Binary Tree) 、 圖(Graph) 、 雜湊表(Hash Table) 。 而每種程式語言都有一些資料結構可以用,Python也不例外,從 Python的官方文件 可看到底下幾種: 1. Lists 下圖為 Lists 的示意圖     2. Tuples 與 Sequences 下圖為 Sequences 的示意圖 而 Tuples 就是可以含有很多的 Sequences,如下圖 3. Sets 下圖為 Sets 的示意圖,有交集、聯集、差集等關係。 4. Dictionaries 下圖為 Dictionareis 的示意圖:     能判斷什麼時候要用哪一種資料結構是程式設計時需要考慮的事情,考慮的觀點通常有: 效能。 彈性。 實作。 以上三點沒有絕對的順序,例如當需要先進先出的動作時,選用已有支援 Queue 的程式語言(如Java、C#等)就可以不自己重新打造 Queue 的程式庫了,若講究效能時,用C\C++語言會是選擇之一。 參考資料: [1]  https://www.tutorialspoint.com/python/python_data_structure.htm 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If ...

使用NodeMCU製作Wifi 氣象台 ( Building a Weather Station with ESP8266 )

圖片
最近在Arduino ESP8266範例看到Weather Station的程式,就來做一個看看,此範例為使用 https://www.wunderground.com 當作氣象資料的來源,沒有使用到任何的感測器。 There is a sample code " WeatherStationDemo " in ESP8266 Weather Station library. This sample gets weather information from the website  https://www.wunderground.com  without using any sensors. 硬體材料(Materials): 1. NodeMcu 板子 x 1 2. Micro USB 連接線 x 1 3. 2000mAh 3.7 V 鋰電池(這是mBot用的電池) 4. SSD1306 I2C 0.96 吋 OLED 顯示模組 x 1 硬體電路(Circuit): 接線 (Wiring) NodeMCU        -->    OLED NodeMCU 3.3V ---> OLED Vcc NodeMCU GND --> OLED GND NodeMCU D3 ---->  OLED SDA NodeMCU D4 ---->  OLED SCL Arduino IDE 程式 (Arduino Code) 請在Arduino的程式庫管理員安裝底下的程式庫( Install the following libraries with Library Manager): ESP8266 Weather Station Json Streaming Parser (by Daniel Eichhorn) ESP8266 Oled Driver for SSD1306 display (by me as well).   Make sure that you use Version 3.0.0 or bigger!   ...

用 NodeMcu 製作 Wifi 自走車 ( A Wi-Fi Access Point Car )

圖片
NodeMcu上的ESP8266本身有SoftAP的功能,可以拿來當成Wifi基地台來用(本文沒用到網際網路),所以我們來製作一個可以透過手機上的Wifi來控制小車吧。 硬體材料: 1. NodeMcu 板子 x 1 2. Micro USB 連接線 x 1 3. 5V 直流馬達 x 2 4. 公對公杜邦線 x 4 5. 母對母杜邦線 x 6 6. L9110S 馬達驅動板 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 硬體電路: 上圖電路是以L298N來表示L9110S。 接線對應腳位 : L9110S馬達驅動板 B-1A 接 NodeMcu D2 B-1B 接 NodeMcu D1 A-1A 接 NodeMcu D4 A-1B 接 NodeMcu D3 VCC 接 NodeMcu 3.3V GND 接 NodeMcu GND 完成圖: Arduino IDE 程式: 先安裝Websocket程式庫,筆者是用 Markus Sattler 的版本 筆者是修改此程式庫的範例:WebSocketServer_LEDcontrol 程式碼: 完成後就可以使用手機或電腦上的瀏覽器(需有支援Websocket)連上NodeMcu的IP位址,就可以網頁控制了,而且可多台控制喔。 示範影片: 延伸的應用: 製作球形機器人,可參考 以Arduino 打造球形機器人 一文。 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。