什麼是海龜機器人?該概念可以追溯到威廉·沃爾特(William Walter)在 1940 年代進行的機器人工作,該工作研究了簡單系統中的複雜行為。海龜機器人通常移動緩慢,轉彎半徑小,可以追踪顯示其隨時間變化的行為的設計。它們是很好的教學輔助工具,因為它們的編程輸出可以在視覺上看到。許多編程語言都內置了“海龜圖形”。海龜圖形還可以用於研究高級主題,例如L系統或仿射幾何學。
#OTTR
#口丁海龜
目標用 Raspberry Pi Pico 來完成。
這位是神經生物學家威廉格雷華特( William Gray Walter)
他在上世紀四十年代根據腦神經連結原理打造了史上第一、二部「電子生物」並取名為Elmer 和 Elsie。其他人將他的機器生物暱稱為「烏龜」或是「海龜」。
後來在六十年代的電腦程式LOGO語言以此為靈感,內建了「海龜繪圖」的繪圖系統,用來教育小小孩的電腦程式概念。
直到八十年代,再進一步將「海龜繪圖」實體化,讓微控制器打造的海龜機器人,背著繪圖筆在紙上真實畫圖。
直到現代的python就成為眾所周知的turtle函式庫了。
為什麼用海龜來繪圖呢?
因為海龜在海灘上爬行的時候會留下長長的軌跡啊~
https://www.facebook.com/pondahai/posts/pfbid0331FTaAWZifqVcM4mVqwJfEer2wbn5UtYFMFaE95JbL5Myp5SDkZ4d7jwKQ9B9iNkl?locale=zh_TW
CS 161 Lab B - Turtle Graphics
Open Source Turtle Robot (OSTR)
https://joshburker.com/logoturtle/LogoTurtle.html
計畫
Mirobot v2 drawing turtle robot kit
Disney's Beachbot is an artistic robot turtle that can draw in the sand
https://github.com/aspro648/OSTR
https://github.com/aspro648/OSTR/blob/master/V2/BOM.md
(https://shopee.tw/【UCI電子】(K-4)-28BYJ-48-步進馬達5V-12V-4相5線-減速電機-i.2305548.73316735) 步進馬達
https://lastminuteengineers.com/28byj48-stepper-motor-arduino-tutorial/
五公分的輪子
5908 for 28byj-48
*
https://github.com/aspro648/OSTR/tree/master/V2/firmware/TurtleV2.2 ItsyBitsyM4 CircuitPythonV6
修改自
https://github.com/russhughes/turtleplotbot3
中的turtleplotbot.py, turtleplot.py
這個程式庫的作者Russ Hughes 修改自原 始python 中的 turtle.py
原始的 turtle.py 作者是 Gregor Lingl
原本是利用 tkinter 程式庫作為繪圖核心
RH 把 turtle.py 做修改後
再把其中_turn, _move, _pen, _done 四個副程式串接到單晶片的行為
這樣就可以實現原本只能在電腦螢幕移動的海龜
變成在現實世界驅動單晶片來移動
使用的時候只要把turtleplotbot.py, turtleplot.py
放在micropython 的lib 資料夾中
這樣主程式就可以像在電腦上寫turtle一樣寫單晶片的turtle
我把這組程式修改成可在 rp2040 運作,並且驅動步進馬達用來移動與伺服馬達用來拿筆。
使用 4 顆 AA 電池驅動,四顆 AA 產生 6V 電壓,會超過 pico 的 5.5V 上限,我用 1N4001 串在電池與 VBUS 之間,這樣可以讓 1N4001 壓降 1V 左右,再利用 pico 內部的 MBR120 蕭特基二極體再降一些,最後 VSYS 量到電壓不到 5V,不至於造成傷害。
只有實現移動,還沒有實現抓筆。
還沒有校正。
兩個輪子胎紋不一樣。
最重要的:這種輪胎與步進馬達的軸,雖然都是雙 D,但是軸的平面差0.2mm,圓弧面差 0.1mm。我在想是否可以找到薄金屬片做鈑金件,套在馬達軸上。
課程規劃:
繪圖原理
迪卡兒座標
指令
goto 這指令會越寫越歪,無法回到原點。
經典範例
碎形圖案
謝爾冰濕機三角
不做無線傳輸上傳程式碼的理由
希望學員能用有線上傳程式碼,然後帶著自己的海龜到紙上繪圖。
輪子直徑 65 mm
https://www.tinkercad.com/things/1U5chW7X9Hq
進一步縮小體積。
組裝後測試,原輪胎兩顆不一樣,換成一樣的。
Hello圖案測試,整個往右上角飄。
推測是換了輪胎之後,左輪減少太多(校正機制是僅調整左輪,上一版本左輪步數有略為減少)。
https://hackmd.io/iUad1x4TQI6JMnYFvtrF5Q
在網上找到一個網站介紹海龜機器人歷史
https://cyberneticzoo.com/cyberneticanimals/1969-the-logo-turtle-seymour-papert-marvin-minsky-et-al-american/
這一篇文章敘述了海龜繪圖機器人的歷史
並有許多豐富有趣的照片
內容有點雜,看不太懂,大致上是從Logo語言開始介紹
Logo語言是由 Wally Feurzeig, Seymour Papert, and Cynthia Solomon.等人開發的電腦程式語言,目的是讓學生可以在螢幕或是實體世界(透過海龜機器人)以指令方式控制繪圖游標移動並繪圖
Papert提出一種名為"body-syntonic reasoning"的概念,即是讓學生想像自己是螢幕上那隻海龜,並且理解、預測與推理海龜的下一步行動
但是後來好像扯到商業化的事情!?
Logo語言後來衍生出許多變體,甚至在python的標準程式庫中,雖然已經跟Logo無關,但也可以看到海龜畫圖的程式庫
彭大海的程式小車 #OTTR 鄭鴻旗 #海龜繪圖
然後以下是我用google bard幫我整理的重點:(原網頁內容太長,要分段問)
好的,以下是剛剛我幫你翻譯的所有內容的總結:
1960 年代,麻省理工學院的 Seymour Papert 發明了 LOGO 程式語言,並與他的學生 Cynthia Solomon 一起開發了 LOGO 海龜。LOGO 海龜是一款可以用來教導孩子編程和數學的機器人。
LOGO 海龜受到了廣泛的歡迎,並被用於世界各地的學校。LOGO 海龜被認為是一種有效的教育工具,可以幫助孩子們學習編程、數學和問題解決技能。
LOGO 海龜仍然在使用,並被用於教育孩子們關於編程、數學和 STEM 的基礎知識。
希望這對你有幫助!如果您有任何其他問題,請告訴我。
這部分資料銜接一開始提到的威廉華特,LOGO團隊也有提到他們的機器人部分是被威廉華特所啟發的
傳統28BYJ48以及ULN2003一組賣NT$27
其中馬達20控制板7
27*2組=54
而ULN2803就只要10元就有兩組驅動器
20+20+10=50