顯示具有 Arduino 標籤的文章。 顯示所有文章
顯示具有 Arduino 標籤的文章。 顯示所有文章

2020年12月19日 星期六

Arduino : 以 Arduino as ISP 方式更新 Atmega 16U2

2020年12月19日 星期六

 昨天成功以 Arduino UNO 更新 3D printer MKS 控制板的 BootLoader,讓原本只能透過 ISCP 更新程式的板子起死回生,想到之前有一片 Mega2560 是抓不到序列埠,是不是更新一下 Atmega 16U2 的 firmware 就可以恢復正常了?

好啦! 先說一下結果是失敗的,但是指令研究半天,還是紀錄一下,說不定哪一天可以用得到。


右邊的 Arduino UNO 是用來幫別人寫入 firmware 的 ISP Programmer,左邊則是預備更新 firmware 的 Mega2560。

而排線則是我利用舊磁碟機排線改裝的。腳位的對應可以參考 Arduino 官網上的說明:


而用來當 Programmer 的 Arduino UNO 也必須先將 Arduino 範例中的 ArduinoISP 程式先安裝好。

Mega2560 有兩個 ISCP ,因為這次要更新的是 Atmega 16U2 的 firmware ,所以就將排線插入 16U2 旁的 ISCP。

準備妥當,就可以執行更新的指令了。我的 Arduino 安裝在 C:\Arduino 中,所以有底下三個檔案:

  • 工具程式
    C:\Arduino\hardware\tools\avr\bin\avrdude.exe
  • 程式設定檔
    C:\Arduino\hardware\tools\avr\etc\avrdude.conf
  • 16U2 的 firmware
    C:\Arduino\hardware\arduino\avr\firmwares\atmegaxxu2\arduino-usbserial\Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex

確定三個檔案都有了,查了一下,我的 Arduino UNO  在序列埠 COM9,需要執行的指令是:


avrdude.exe -C C:\Arduino\hardware\tools\avr\etc\avrdude.conf -c stk500v1 -P COM9 -b 19200 -p m16u2 -vvv -U flash:w:C:\Arduino\hardware\arduino\avr\firmwares\atmegaxxu2\arduino-usbserial\Arduino-usbserial-atmega16u2-Mega2560-Rev3.hex:i


參數備註:

  • -C  : 設定檔的路徑
  • -c : programmer id
  • -P : 通訊埠
  • -b : baud rate
  • -p : 目標晶片的識別代碼
  • -U : 記憶體的型態、動作、firmware路徑、檔案格式......
  • -vvv : 顯示訊息( level 3 )

詳細的說明可以參考:


雖然想救的板子沒救回來,但是用另一片是可以正常更新的,有了新經驗,還是滿開心的。


相關文章


2016年1月22日 星期五

DIY : SG90 Servo 改裝為360度旋轉之二

2016年1月22日 星期五
2014年底曾經記錄過這篇「雄 : DIY : TowerPro SG90 Servo 改裝為360度旋轉」,去年有網友留言問我:「請問一下若直接使用裡面的可變電阻是否可行?」,當時沒有改裝的需求(哈!應該是在研究別的東西,不想分神。),也就沒花時間去試。最近又對車子有興趣,需要有減速機構的馬達,於是拆了幾顆 SG90 來試,成功了!只要把 SG90 內的電位器固定在馬達不轉動時的位置即可,不用拿電烙鐵在小小的電路板上焊電阻,有老花眼也能輕鬆改裝。

2015年10月31日 星期六

3DP : 可愛的 MobBob 雙足機器人

2015年10月31日 星期六
當初組 3D 印表機主要就是想印車子和機器人的機身及相關的改裝零件,結果為了研究印表機的機構,Arduino 荒廢了大半年,最近重回初衷,又開始和電路板及程式為伍,做了使用八顆 SG90 的四足機器人,做了使用12顆SG90的四足機器人,也完成了使用四顆SG90的雙足機器人 MobBob。

MobBob 與其它的 BoB 機器人一樣是以四顆伺服馬達當動力來源的雙足機器人,最大的特色是作者放了手機在機器人上,以手機當他的臉,搭上表情動畫、語音與操作者互動,並透過藍牙和手機通訊,指揮機器人做各種動作。它除了按按鈕下指令,還有影像辨識及語音發送指令的功能,增添了更多的玩法。


其實 MobBob 是最早製作的,但是因為沒弄懂它四顆馬達的腳位,一直走得不順,昨晚將作者釋放出來的 Arduino 程式碼好好的研究了一下,總算把哪一邊是左側的馬達,哪一邊是右側的馬達弄清楚了,下面是製作 MobBob 雙足機器的一些記錄。

2015年10月25日 星期日

Arduino : 伺服馬達直插轉接板

2015年10月25日 星期日
最近在研究機器人,一次要使用很多顆伺服馬達。以前都是用偷懶的方式,將麵包板插得滿滿的杜邦端子線,一個不小心就會扯掉電線。為了減輕機器人的總重量及方便插線,原本焊了一片使用排線和 Arduino 連接的轉接板,初使用還不錯,經過幾次拔插以後,新的問題產生了,排線無論是焊在轉接板上那一端,或是插在 Arduino 上的排針端,用久了,電線頭很容易斷掉,需要一直維修。幾次下來,乏了!只好重新設計以排針直插 Arduino 的轉接板,目前用起來感覺還不錯。


2015年9月20日 星期日

Arduno : 透過 ICSP 燒錄程式

2015年9月20日 星期日
最近算是有一點點背,身體出了點狀況,連手摸過的東西都跟著遭殃。小心翼翼地換好 SmartrapCore 出料不順的 E3D 喉管,正準備測試新喉管的效果時,拆下的風扇電線,裸露的杜邦端子公頭居然誤觸偷懶放在機箱底部的主控板,未斷電的整合式控制板(MKS MINI)就這麼短路起火陣亡了!換上另一片較高檔的 MKS Base V1.3,準備寫入 Marlin 時,卻又一直出現無法和板子通訊的錯誤訊息:

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

試了很多方法,即使換了不同版本的 FTDI drver ,還是無法寫入靭體。喂!這塊是全新的板子,完全沒用過吔!浪費了不少時間後,使出最後一招:「用 Arduino UNO 救 Arduino Mega 2560,透過 ICSP 寫入靭體。」,總算讓只會一閃一閃的 MKS Base V1.3 醒過來了。

底下來看看如何進行:

2015年3月3日 星期二

Arduino : 兩個 HC-05 藍牙模組互連

2015年3月3日 星期二
「如何讓兩個 HC-05 互連後交換資料?」在我的 blog 中被問了 N 回,不過,因為原本只有一片 HC-05 ,根本沒有機會實作,也在留言回覆中說明無法測試,更別說要教人家。是說,講了這麼明白了,還是持續有人在問這個問題,A~嗯~大家辛苦了!別人的留言也要看啦!

上回淘寶時,看 HC-05 比在沒屋頂買的便宜好多,順便淘了 HC-05 要來玩兩片互連。有時間,沒東西;有了東西,反而沒時間......,放了好久,總算拿出來試,底下是測試的筆記。

2015年2月27日 星期五

Arduino : 修理燒壞的 MEGA 2560

2015年2月27日 星期五
之前想利用舊滑鼠上拆下來的紅外線模組,改裝成 Prusa i3 3D 印表機 Z 軸的 Endstop ,一個閃神,正負極接反,Arduino MEGA 2560,嗞一聲,冒煙發出臭味以後,只要沒插 USB 線,印表機的 LCD 就沒畫面。查了一下,因為在「脫機」的狀態下,Arduino 是由 RAMPS透過 Vin 供電的,而被燒壞的正是 Arduino 處理外部電源,將之限制在 5V 的 AMS 1117-5V。家裡有另外一塊 MEGA 2560,拿出來換上,不過,快樂使用沒幾天。有一天心血來潮,將 3D 印表機雜亂的線理得整整齊齊的,一打開電源,頓時冒火花、冒煙,一陣惡臭自然是免不了。這次更慘了,1117 燒爆了不說,電路板黑一片,銅箔被掀起,連 3D 列印機的擴充板也燒壞了。

兩片被燒壞的 Arduino MEGA 2560
只能說 Arduino 設計得真好,檢測了一下,兩塊板子的災損都只有那顆 5V 的 AMS 1117。所謂的好事不成雙,無三不成禮,後來雖然買了第三塊 MEGA 2560 來換,它又死在通訊的晶片,插入電腦的 USB,連偵測都偵不到。這下得面對問題,買 1117 來修理壞掉的前兩塊 Arduino MEGA 2560。

2015年2月4日 星期三

3DP : Arduino : 藍牙遙控履帶車

2015年2月4日 星期三
肖想一臺履帶車很久了,一月初去松山工農參加3D列印機組裝及調校研習,帶回了一臺 Prusa i3 3D列印機,一邊調校,一邊列印,就這麼印完一臺履帶車所需的履帶元件。原本想利用之前拆解2.5吋軟磁機,閒置一旁許久的金屬殼當車身,不過履帶一直「勞鏈」,試過很多方法都沒解決問題,最後還是決定用 PLA 材料印了原設計裡的車身來搭配。整臺車都印完了,這履帶車該順利上路了吧?!哈~哪有那麼輕鬆,還是「勞鏈」連連啦!沒關係,試了幾天,我研究出不「勞鏈」的組合方法了,順便加上藍牙遙控的功能,終於完成了第一臺 3DP 藍牙遙控履帶車。


2015年1月5日 星期一

Arduino : 舊光碟機變身紅外線遙控車

2015年1月5日 星期一
蒐集了不少朋友不要的光碟機,前一陣子玩利用舊印表機、掃瞄器和光碟機來自組 CNC 時,拆了好幾臺,不過,CNC 只需用到光碟機讀寫頭步進馬達和滑軌的部分,剩下的金屬殼、碟片旋轉馬達、塑膠機身及托盤馬達放在一旁,不想浪費,不時地拿起來端詳,思索著要如何運用。


如上圖中,機身前段上有一組減速齒輪,如果將紅色記號的部份鋸下來,加個輪子,依樣畫葫蘆,兩臺光碟機的機身前段即可變身成一輛車子的主體囉!


輪子如何和齒輪結合呢?手邊只有免洗筷較好操作,於是將原來推動光碟托盤的齒輪軸心,以斜口鉗剪掉,再以銼刀將切口磨平,最後再改以一小段免洗筷當齒輪的軸心,一端削成一字形裝輪子,一端鑽螺絲孔後穿過齒輪,放回齒輪組原來的位置後,以螺絲及華絲墊片固定在機身鎖得有一點緊,又不會太緊。裝上馬達,接上電池,測試可以運轉後,以冰棒棍鑽孔、鎖螺絲固定兩邊(因為和輪子連動的齒輪並不是在正中央,要注意兩邊輪子會有高度差),並在前端加上一個萬向輪。至此,車子的雛形算是完成了。

之前在鋸光碟機身時,家裡的小小孩一直在問我在做什麼,後來又問到,車子可以載她心愛的娃娃嗎?因此決定幫她打造這臺「公主一號」。



2014年12月30日 星期二

DIY : TowerPro SG90 Servo 改裝為360度旋轉

2014年12月30日 星期二
一般的伺服馬達(舵機)裡面除了馬達與減速齒輪,另外帶有一個可變電阻,馬達旋轉時,帶動可變電阻,用以計算旋轉的角度。以 TowerPro SG90 來說,除了有個 5k ohm 的可變電阻偵測旋轉角度,在連接搖臂的齒輪下方多了二小塊突起,旋轉的角度因此被限制在180度以內。知道它控制旋轉角度的機置,前述的兩點限制如果解除了,就可以將原本只能旋轉180度的伺服馬達改成可連續旋轉,超過一圈。

2014年12月9日 星期二

Arduino : MeArm 藍牙遙控自走車

2014年12月9日 星期二
最近玩的 MeArm 搖桿機械手臂,加上年初玩的「Android 遙控藍芽科學魔法車」,兩者結合起來就可以變成「MeArm 藍牙遙控自走車」。

MeArm 藍牙遙控自走車接線圖



錄了一小段 MeArm 藍牙遙控自走車實際操作的影片:




2014年11月27日 星期四

Android : MeArm 藍芽遙控 App

2014年11月27日 星期四
買了一片 9 元的單面洞洞板製作了 MeArm 搖桿的控制板,便宜的果然是最貴的,技術不好加上用料貪便宜,製作第一個時,著實花了不少的時間,不過,困境倒是訓練解決問題能力的好機會,有了經驗以後,再製作時快很多。

做了許久的勞作,再來就是想花一點時間在改進機電與操控程式的部份。年初曾玩了好一陣子的「藍芽無線遙控科學魔法車」,觀察孩子們以搖桿在操控 MeArm 時,其實有不少人對沒有標示功能說明的搖桿是有障礙的,因此,試著將遙控科學魔法車的經驗遷移到 MeArm 的操控上,在搖桿控制板上焊了四個腳位的 2.54 母座,可以方便的插上 HC-05 藍芽模組,線路依底下的對應關係來連接:

  • HC-05 VCC : Arduino 5V
  • HC-05 GND : Arduino GND
  • HC-05 TXD : Arduino RXD (D0)
  • HC-05 RXD : Arduino TXD (D1)


加完 HC-05 藍芽模組的 MeArm 如下圖:



2014年11月10日 星期一

Arduino : MeArm 與雙搖桿

2014年11月10日 星期一
前一篇《雄 : DIY : 袖珍版機械手臂 MeArm》介紹了以牛皮紙硬紙板或冰棒棍製作的 MeArm V0.4,它使用四顆伺服馬達當作機械手臂的動力來源,分別用來驅動夾子、手臂伸展、手臂上下和機身旋轉,MeArm 網站的Arduino 範例程式是使用可變電阻當作動作訊號輸入,而 meArm.Joystick 使用雙搖桿來控制伺服馬達,可以直覺的操控機械手臂。


以我買的搖桿來說,當我們將搖桿的 VCC 和 GND 分別接在 Arduino 的 5V 和 GND 後,一個搖桿可以得 AX(橫向操作)、AY(縱向操作)共兩個電阻值(範圍0~1023),另外還有 SW(垂直下壓)的開關值,雙搖桿則可以有六個訊號可以輸入給 Arduino,我們只需要使用其中的 X/Y 方向四個值,分別為 L.AX、L.AY、R.AY、R.AX,哪一個針腳輸出的是什麼,照說看電路板上的標示即可,不過,像我圖片中買的雙搖桿讓我程式除錯除半天,因為它印的字樣根本 X、Y 顛倒了!所以,最好用電錶確認一下較好。

假設我們把四顆伺服馬達依底下的對應關係和 Arduino 連接:

  • 前方 Servo (前方爪子) : Arduino D5
  • 左方 Servo (前後伸展) : Arduino D9
  • 右方 Servo (上下移動) : Arduino D10
  • 下方 Servo (機身旋轉) : Arduino D11

搖桿和 Arduino 的連接:

  • L.AX : Arduino A0 (控制下方 Servo)
  • L.AY : Arduino A1 (控制左方 Servo)
  • R.AY : Arduino A2 (控制右方 Servo)
  • R.AX : Arduino A3 (控制前方 Servo)
MeArm 雙搖桿 & 伺服馬達接線圖


DIY : 袖珍版機械手臂 MeArm

小時候看到挖土機、推土機、吊車......,總會看半响,對於機器人更是幻想著能自己打造一個。去年在光華商場買電子零件時,順便買了步進馬達及伺服馬達,研究過幾天便沒再碰,前一陣子看到 meArm.Joystick 和 MeArm ,又搧起了玩機械手臂的火,立馬在網路訂了八顆伺服馬達(SG90, 一顆 50元)和一組需自己焊接的雙搖桿套件(120元)。

由於沒有雷射切割機,更沒有機器可以 3D列印 MeArm 的零件,搖桿拿到以後,便跑去美術社買了 2mm 的牛皮紙硬紙板、美國卡紙和巴爾沙木(飛機木), MeArm 的「手作版」開工!



一開始,先以複寫紙套描 MeArm V0.4 的零件圖在硬紙板上,然後傻傻的以大美工刀(其實小美工刀比較好切)在靭性十足的牛皮紙厚紙皮一刀刀的劃,費了好大的勁才「挖下」第一個零件。拿出大剪刀快速剪下第二個零件後,深深體會到「工欲善其事,必先利其器」說的真是有道理啊!就這麼又剪又切的,花了近一個星期,完成了我的第一臺 MeArm V0.4 :「紙老虎」。

第一臺 MeArm V0.4 : 紙老虎

2014年11月5日 星期三

DIY : 2.54 mini connector

2014年11月5日 星期三
為了預防腦袋瓜子和一雙手「生鏽」,最近什麼都很想「手作」,實在太固執了,花一點小錢可以省很多時間吔!沒辦法,當初大學因為種種因素,無法如願去念相關科系,當工程師,只好用閒暇時間滿足、自娛一下。

在玩 Arduino Mini Pro ,少一條 5 pin 母對母的線,老是在拔 Arduino Mini Pro,端子家裡有,尖嘴鉗夾一下就有,但缺兩個塑膠母座,拿一根小吸管,用 1.5 mm 的鑽頭打洞,將端子一個個穿洞而過,最後貼上膠帶固定:


哈~還滿好用的哦!


2014年10月25日 星期六

Arduino : Pro Mini 以 CP 2102 USB to TTL 上載程式

2014年10月25日 星期六
前一陣子在找雙搖桿的零件時,看到賣家的商品中有 Arduino Pro Mini (5V, 16MHz) ATMega 328,一片 75元,心想反正運費都得花,順便買來玩玩。

Arduino Pro Mini 沒有序列埠,需要自行外接 USB to TTL 來傳輸程式,本以為只要用家裡原有的 USB to TTL (chip : CP2102) 接上去就可以傳程式,沒想到按完 Upload 鈕,要嘛沒反應,不然就出現錯誤訊息,查了一下資料,原來除了 +5V、GND、RX、TX 以外,還需要將 DTR 腳位接上,不過,我的 USB to TTL 看到不這支接腳啊!查了一下 CP2102 的規格書,DTR pin 是第 28 支腳(最後一支),就在第一支腳旁,很好找,於是就將 USB to TTL 拆開來,將 DTR pin 接條細電線,拉到外部使用。

Arduino Pro Mini 上傳失敗的訊息


這顆 CP2102  IC 很小一顆,幸好 DTR 在角落,有較大的空間,讓我這個拿著一般烙鐵的非專業的人士可以有較大的成功機會。先用鐵氟龍膠帶將不相關的地方貼一貼,然後剪一小段電腦磁碟機的排線,運氣不錯!試了兩次,就將細線焊在小小的 IC 腳位端點。為了怕它又掉了,在導線上重新貼了膠帶。打上杜邦端子母接頭後,在塑膠殼上切一個小口,利用上、下蓋夾緊固定連接到 DTR 的端子。接下來就可以重新測試 Arduino Pro Mini 的程式上載了。

焊接 CP2102 pin 28 (DTR)
以 USB to TTL 外殼夾住新加上的杜邦端子(母)

2014年9月21日 星期日

Scratch : wii2scratch + Wiimote 當小貓咪的控制(感應)器

2014年9月21日 星期日

常常覺得被人家問問題是很幸福的事,如果能夠馬上知道答案,肯定了自己的實力;不知道答案時,在找解答的過程中,有時要花很多時間和心力,卻可以讓自己的觸角更深、更廣。最近有人問到以 Wiimote 和 Scratch 互動的問題,裡面提到了一個之前沒聽過的中介程式「wii2scratch」。在「雄 - Raspberry PI : 以 Scratch 控制 GPIO」這篇文章中曾提到,如果在Scratch 中啟用「遠端感應器」(Remote Sensor Connections) 的功能,我們就可以透過網路來交換「訊息」,wii2scratch 和「ScratchGPIO2」一樣,它們的角色都是在 TCP/UDP port 42001 監聽 client 端(Scratch)的需求,以 socket 的方式傳送資訊或是執行指定的動作。而 wii2scratch 所做的主要工作就是和 Wiimote 保持密切聨繫,將 Wiimote 感應器有異動的資料傳給 Scratch 使用,甚至更進一步去控制 Wiimote。多了 Wiimote 搖桿,可以讓 Scratch 更有趣。

2014年4月4日 星期五

Android : S4A_Bluetooth 藍芽遙控 App

2014年4月4日 星期五
上回用 Google Play 中找到的 「Bluetooth Serial Controller」來遙控安裝了 S4A firmware 的 Arduino ,可以自訂按鈕要送出什麼資料的功能滿方便的,小缺點是得自己算出 Arduino 腳位的字碼,哈~光那些十六進制的符號可能就會嚇壞一堆人了。有了之前寫 MIT App Inventor 的經驗,加上對如何和裝了 S4A firmware 的 Arduino 通訊有較清楚的了解後,決定用 App Inventor 重新再寫一個 S4A_Bluetooth 的 App 來控制我的「S4A 科學魔法車」。

S4A_Bluetooth 的主要特性如下:

  • 針對 S4A firmware 而設計。
  • 可以自訂每個按鈕要使用哪些 Arduino 的腳位及送出的值,包括 pin 10,11,12,13 (Digital:on/off)及 pin 5,6,9 (PWM: 0~255)。
  • 自訂的值會自動儲存,打開程式時會自動載入。


2014年3月30日 星期日

Android : Bluetooth Serial Controller 控制 Arduino

2014年3月30日 星期日
有了藍芽當橋樑,Android 可以說是 Arduino 的最佳伙伴,無線控制,小孩子們覺得「超炫」的!上回自己用 MIT App Inventor 寫的 App 原本的計畫是想設計一個可以由使用者自訂每個按鈕要控制 Arduino 哪個腳位,送出什麼資料。因為自己買的 HC-05 似乎水土不服,玩沒幾下程式就當掉。找了好幾個 Android Apps ,目前只有台中教網中心那個最順暢,寫了一個 Arduino 靭體追蹤它送出的資料有何不同,分析完,好像一樣啊!真好奇台中教網 App 中到底有啥「眉角」?

為了找答案,今天以「bluetooth serial」的關鍵字搜尋,結果找到了「Bluetooth Serial Controller N7」和「Bluetooth Serial Controller」兩個 Apps,玩著玩著,居然玩了二個多小時,滿有趣的程式,它和我當初想設計的東西類似,可以拿來控制 Arduino 吔!順便用 JavaScript 寫了個編碼工具,方便計算 S4A 的Arduino 指令。

2014年3月26日 星期三

Arduino : HC-06 藍芽模組的設定

2014年3月26日 星期三
今天想幫朋友設定他的藍芽 RS-232 模組,上面沒有明確的標示是哪一種型號,一直以為它和我的「HC-05」是一樣的,照著上回設定 HC-05 的步驟要設定 baud rate,想辦法將沒針腳的「key」腳位接了,面板上的 LED 燈號卻沒有變化,試了很多次後放棄,開始懷疑它並不是「HC-05」。找到「HC-06」的 data sheet 研究後,一試,果然證明前面的努力是牛頭對到馬嘴了。

HC-06 的 firmware 沒有 HC-05 完整,少了很多的 AT 指令可以使用,最重要的是,在沒有進行藍芽配對時就是 AT command mode,不用像 HC-05 必須將 key 設為高電位才能進入 AT command mode,這一關卡最久。不過,這也有一個缺點,HC-05 的 AT command mode 使用固定的 baud rate 38400,而 HC-06 如果已經改過 baud rate ,想利用 AT command mode 來改 baud rate,如果忘了原來的設定值,還得先猜一下原來設的速率是多少,不然根本無法溝通(不知是否有辦法讓它恢復成預設值?)。下面就來看看如何設定 HC-06 的連線速率。


 
雄::gsyan © 2009. Design by Pocket