[程式設計]創馬回顧:不是三個字,是一個字值一萬塊
類型:
程式設計
編者按:本文作者為Atommann,他上周末和同伴bnw及xyh組成SZDIY團隊,參加了硬創邦主辦的全球創客馬拉松比賽。他們開發的lambda-tortoises是一個可以繪圖的海龜機械人,獲得了本次比賽的一等獎。本文為Atommann對比賽的回顧,硬創邦做了不改變原意的編輯。
有一件事對我有所啟發。這學期幼兒園開學,我去開了一個家長會,老師說學生可以報興趣班,比如英語班,繪畫班,科學班等等,而且說:「科學課比較貴,我們是請校外的教育公司來教,100?元一節課。」
我當時就想,我自己就是工程師,懂得一些東西,而且對科技有興趣,為什麼就不能自己想辦法,做一些裝置來教 (啟蒙) 自己的孩子學科學呢?比如這個海龜機械人。
(關於創客馬拉松) 說一些我還記得的。
Hackathon (指創客馬拉松) 是周五早上 10 點開始,這個時間確實有點早,出門時我匆忙趕到公司去拿自己的工具箱,裡面是一些常用工具:各種 USB?線,電線,鉗子,排針,Arduino,電機,AVR 程式開發器,rPi,焊?絲,多孔板,麵包板……
去 hackathon 一定要帶自己的一套工具,有很多原因:主辦方不可能準備好一切;主辦方的工具數量有限,如果別人在用一個工具,你得等,這會浪費時間;用自己的工具更順手。
到了現場,發現 bnw 也來了。非常好,因為我們團隊就多了人手和可以想 idea 的人。現場環境很好,校園裡人很少,整層樓就有兩個大露台,還有一個咖啡廳。有地方睡覺。只是每個團隊的桌子有點小。
Hackathon 一開始我們就立即安排,bnw 用 inkscape?畫了小車的底盤。由於主辦方不能提供雷射切割機和服務,我準備去公司切割。到了公司我就等 bnw 的圖紙,但把 SVG 轉成 DXF?始終有問題,一些孔消失不見了。後來 bnw 找到了正確的方法,我也得到正確的圖紙,幾分鐘之內完成了切割,然後拿上白板紙,坐上最後一趟地鐵往hackathon 現場趕。
畫圖的白板筆是用舵機控制的,但我以前沒有用 amforth 控制過舵機,解決方法:先 Google?已有的程式碼。我只找到一個有關例子,讀懂了程式碼,但程式碼太舊,寄存器名也對不上。於是我拿了電腦,Notebook,鉛筆,一塊 Arduino板和一個舵機,到露台上。我坐在地上把 datasheet 上 PWM生成的相關內容讀了一遍,改了幾個寄存器名字和引數,就可以控制舵機了。也就是說,我們定義 word pen-up ?和 pen-down 了。
應該是在周六下午,機械人安裝起來後,我們讓它在白板紙上畫一條直線,但得到的是一條曲線!不是一般的曲,而是非常曲!(現在想來,可能是由兩個電機的啟動時間有個小間隔造成的,要檢查程式碼) 我想,這下子完蛋了。xyh則認為可以找出一個「線性係數」來修正。壓力很大,我決定出去散散心。
等我回來的時候,xyh 說他可以讓機械人走直線了,簡直不可思議!據說是在一個電機的速度上乘了一個係數,在沒有回饋和控制演算法的情況下,能盡量走出直線,這非常關鍵。然後,我們又通過實驗,找出了可以讓機械人轉動某個角度的時間常數。
我的電腦可以連上藍牙模組,bnw 的可以,rPi 也可以,但主程式員 xyh?的電腦卻不行!這可把我們急壞了。經過各種嘗試,還是讓他的電腦連線上了藍牙,這意味?他可以開始用鍵盤和他那台老舊,但他可以運指如飛的電腦和機械人「決戰」了。
周六晚上,我們在露台上喝咖啡休息的時候,就想在最終演示的時候應該畫什麼圖形。xyh?說:「我要寫哈工大三個字」。我拍?桌子大笑說:「xyh,你這個有拍 HIT (指哈工大) 馬屁的嫌疑!而且,寫中文,沒有閉環控制,難度會很大,寫英純文字母 HIT,三個字母都是直線。」xyh要中文字這件事,我沒有放在心上,以為他只是開個玩笑。
周六半夜,我和 bnw 都去休息了,xyh 說他在通宵工作 (當天喝了三杯咖啡,A hacker is a machine for?turning coffee into awesome codes)。早上醒來,我立即去看 xyh?的進展。不看不知道,一看嚇一跳。首先,地上的白板紙上有一個「口」字,中規中矩,這就是說機械人可以畫矩形了。我走到他電腦旁邊看,發現他居然是用中文在程式開發!這可真是把我笑壞了。(程式碼在這裡)
原來他是在程式開發寫「哈工大」三個字!而且很快就做出了原型。然後很快就可能讓機械人畫一點小魚,這樣,機械人基本上達到了可以 demo?的狀態。於是星期天早上到中午,我都處於基本無事可做的狀態。
中午吃飯的時候,他們告訴我有麻煩,說機械人寫出來的字不行了。這可麻煩了!還有?30 分鐘我們就要上場了!我們三個人一起工作,xyh不停除錯程式,我和 bnw?負責擺放機械人,擦白板紙。我們和主辦方爭取到推遲上台的機會,xyh?繼續除錯程式。我發現機械人一個輪胎的軸套破掉了 (有一條裂縫),這是一個可能的原因,於是用 AB 膠做了簡單的修復。xyh也繼續改程式。後來終於達到我們滿意的程度,我說 OK 了,可 xyh?始終不肯放棄,說「這個哈字值一萬塊錢!」。所以,「用一個周末寫了三個字賺了一萬塊」的說法是不準確的。(註:硬創邦之前在報導中說,他們寫了「哈工大」三個字,贏得了萬元大獎。這裡的意思應該是,寫出「哈」字就代表解決了問題,穩操勝券)看來他很有自信,我卻沒有那麼自信。
我們要離開的時候,主辦方說要把機械人留下,我想帶走繼續改進,可 xyh?催我說:「快給他們,快給他們!我缺錢,我缺錢!評委和我聊天的時候,我說我缺錢,所以他們把一等獎給了我們。」這個,這個,我真不相信。(註:硬創邦的評選當然是公平公正的啦)
xyh 還提醒我在演示的時候千萬不要提 lisp (我心想,這家伙真精),難道是怕那些括弧把大家嚇到?於是我有沒有提,因為底層改得太多,而我們的 lisp 程式碼又沒有準備好,會影響 demo。
星期天其實我想給 rPi 做一個機箱,把它做成迷你電腦,但 7 寸的車載顯示器顯示效果實在太差,就沒有做迷你電腦,後面我準備用別的顯示器。
我們還要繼續改進 lambda-tortoises,要達到我們設想的初衷。
大概在小學五年級的時候 (1994年),某天老師對我們說:「最近有一個科技製作活動,大家可以做一些製作交給我,我交到中心小學去展出和評獎。」
然後我向老師提出一個想法:我們可以做一個電動小車,可以遙控它前進,後退,左轉,右轉。別的幾個同學也有興趣,有一個同學說他們家裡有小電機,於是中午我們走很遠的鄉村小路到他家裡拿零件。但我們根本無法完成這個專案,原因有幾個:無人指導,我們所擁有的零件只有電線,所有的工具只有老虎鉗和螺絲刀 (記得某次老爸修電器,還叫我到別人家借電烙鐵)。
電動小車做不出來,我不甘心,決定做一個葉輪。因為那段時間我正在玩的一個專案,是把水裝在玻璃瓶里,用蠟燭在下面把水燒得沸騰,蒸汽就從前面的一個針頭高速噴出。如果我能用蒸汽推動葉輪,那就可以想辦法讓它帶動一個小直流電機發電。
於是我找到一個塑料瓶蓋,一些鋁片,幾塊木板,坐在家裡的八仙桌邊,先把鋁片用鉗子折斷成我想要的大小,再用鉗子夾住鋁片放在煤油燈上燒熱,然後插到塑料瓶蓋上。之後找了一根鐵絲做為軸,用螺絲刀在木板上鑽孔 (因為沒有鑽頭),再用鋁片折彎,做成L 型支架,用釘子把軸承座訂在底板上。
第二天就把這個製作交給老師,過了一段時間,老師給了我皺巴巴的一元錢,說是中心小學給我的獎勵。我也去中心小學看了別人的一些製作,現在還有印象的是一個用繩子套?的飛機,繩子穿過一根管子,利用離心力它可以飛起來。
20 年之後,我和 SZDIY 的另一群小夥伴們一起完成了小車專案,但以另一種有趣的方式完成 :)
想在Android 手機欣賞更多有趣圖集?免費下載 GigCasa App
原文站台: 雷鋒網
【本文著作權歸雷鋒網所有,未經許可不得轉載。文章只有代表作者看法,如有不同觀點,歡迎新增雷鋒網微信公眾號(微訊號:leiphone-sz)進行交流。 】
分享到Facebook
類型:
程式設計
編者按:本文作者為Atommann,他上周末和同伴bnw及xyh組成SZDIY團隊,參加了硬創邦主辦的全球創客馬拉松比賽。他們開發的lambda-tortoises是一個可以繪圖的海龜機械人,獲得了本次比賽的一等獎。本文為Atommann對比賽的回顧,硬創邦做了不改變原意的編輯。
有一件事對我有所啟發。這學期幼兒園開學,我去開了一個家長會,老師說學生可以報興趣班,比如英語班,繪畫班,科學班等等,而且說:「科學課比較貴,我們是請校外的教育公司來教,100?元一節課。」
我當時就想,我自己就是工程師,懂得一些東西,而且對科技有興趣,為什麼就不能自己想辦法,做一些裝置來教 (啟蒙) 自己的孩子學科學呢?比如這個海龜機械人。
(關於創客馬拉松) 說一些我還記得的。
Hackathon (指創客馬拉松) 是周五早上 10 點開始,這個時間確實有點早,出門時我匆忙趕到公司去拿自己的工具箱,裡面是一些常用工具:各種 USB?線,電線,鉗子,排針,Arduino,電機,AVR 程式開發器,rPi,焊?絲,多孔板,麵包板……
去 hackathon 一定要帶自己的一套工具,有很多原因:主辦方不可能準備好一切;主辦方的工具數量有限,如果別人在用一個工具,你得等,這會浪費時間;用自己的工具更順手。
到了現場,發現 bnw 也來了。非常好,因為我們團隊就多了人手和可以想 idea 的人。現場環境很好,校園裡人很少,整層樓就有兩個大露台,還有一個咖啡廳。有地方睡覺。只是每個團隊的桌子有點小。
Hackathon 一開始我們就立即安排,bnw 用 inkscape?畫了小車的底盤。由於主辦方不能提供雷射切割機和服務,我準備去公司切割。到了公司我就等 bnw 的圖紙,但把 SVG 轉成 DXF?始終有問題,一些孔消失不見了。後來 bnw 找到了正確的方法,我也得到正確的圖紙,幾分鐘之內完成了切割,然後拿上白板紙,坐上最後一趟地鐵往hackathon 現場趕。
畫圖的白板筆是用舵機控制的,但我以前沒有用 amforth 控制過舵機,解決方法:先 Google?已有的程式碼。我只找到一個有關例子,讀懂了程式碼,但程式碼太舊,寄存器名也對不上。於是我拿了電腦,Notebook,鉛筆,一塊 Arduino板和一個舵機,到露台上。我坐在地上把 datasheet 上 PWM生成的相關內容讀了一遍,改了幾個寄存器名字和引數,就可以控制舵機了。也就是說,我們定義 word pen-up ?和 pen-down 了。
應該是在周六下午,機械人安裝起來後,我們讓它在白板紙上畫一條直線,但得到的是一條曲線!不是一般的曲,而是非常曲!(現在想來,可能是由兩個電機的啟動時間有個小間隔造成的,要檢查程式碼) 我想,這下子完蛋了。xyh則認為可以找出一個「線性係數」來修正。壓力很大,我決定出去散散心。
等我回來的時候,xyh 說他可以讓機械人走直線了,簡直不可思議!據說是在一個電機的速度上乘了一個係數,在沒有回饋和控制演算法的情況下,能盡量走出直線,這非常關鍵。然後,我們又通過實驗,找出了可以讓機械人轉動某個角度的時間常數。
我的電腦可以連上藍牙模組,bnw 的可以,rPi 也可以,但主程式員 xyh?的電腦卻不行!這可把我們急壞了。經過各種嘗試,還是讓他的電腦連線上了藍牙,這意味?他可以開始用鍵盤和他那台老舊,但他可以運指如飛的電腦和機械人「決戰」了。
周六晚上,我們在露台上喝咖啡休息的時候,就想在最終演示的時候應該畫什麼圖形。xyh?說:「我要寫哈工大三個字」。我拍?桌子大笑說:「xyh,你這個有拍 HIT (指哈工大) 馬屁的嫌疑!而且,寫中文,沒有閉環控制,難度會很大,寫英純文字母 HIT,三個字母都是直線。」xyh要中文字這件事,我沒有放在心上,以為他只是開個玩笑。
周六半夜,我和 bnw 都去休息了,xyh 說他在通宵工作 (當天喝了三杯咖啡,A hacker is a machine for?turning coffee into awesome codes)。早上醒來,我立即去看 xyh?的進展。不看不知道,一看嚇一跳。首先,地上的白板紙上有一個「口」字,中規中矩,這就是說機械人可以畫矩形了。我走到他電腦旁邊看,發現他居然是用中文在程式開發!這可真是把我笑壞了。(程式碼在這裡)
原來他是在程式開發寫「哈工大」三個字!而且很快就做出了原型。然後很快就可能讓機械人畫一點小魚,這樣,機械人基本上達到了可以 demo?的狀態。於是星期天早上到中午,我都處於基本無事可做的狀態。
中午吃飯的時候,他們告訴我有麻煩,說機械人寫出來的字不行了。這可麻煩了!還有?30 分鐘我們就要上場了!我們三個人一起工作,xyh不停除錯程式,我和 bnw?負責擺放機械人,擦白板紙。我們和主辦方爭取到推遲上台的機會,xyh?繼續除錯程式。我發現機械人一個輪胎的軸套破掉了 (有一條裂縫),這是一個可能的原因,於是用 AB 膠做了簡單的修復。xyh也繼續改程式。後來終於達到我們滿意的程度,我說 OK 了,可 xyh?始終不肯放棄,說「這個哈字值一萬塊錢!」。所以,「用一個周末寫了三個字賺了一萬塊」的說法是不準確的。(註:硬創邦之前在報導中說,他們寫了「哈工大」三個字,贏得了萬元大獎。這裡的意思應該是,寫出「哈」字就代表解決了問題,穩操勝券)看來他很有自信,我卻沒有那麼自信。
我們要離開的時候,主辦方說要把機械人留下,我想帶走繼續改進,可 xyh?催我說:「快給他們,快給他們!我缺錢,我缺錢!評委和我聊天的時候,我說我缺錢,所以他們把一等獎給了我們。」這個,這個,我真不相信。(註:硬創邦的評選當然是公平公正的啦)
xyh 還提醒我在演示的時候千萬不要提 lisp (我心想,這家伙真精),難道是怕那些括弧把大家嚇到?於是我有沒有提,因為底層改得太多,而我們的 lisp 程式碼又沒有準備好,會影響 demo。
星期天其實我想給 rPi 做一個機箱,把它做成迷你電腦,但 7 寸的車載顯示器顯示效果實在太差,就沒有做迷你電腦,後面我準備用別的顯示器。
我們還要繼續改進 lambda-tortoises,要達到我們設想的初衷。
大概在小學五年級的時候 (1994年),某天老師對我們說:「最近有一個科技製作活動,大家可以做一些製作交給我,我交到中心小學去展出和評獎。」
然後我向老師提出一個想法:我們可以做一個電動小車,可以遙控它前進,後退,左轉,右轉。別的幾個同學也有興趣,有一個同學說他們家裡有小電機,於是中午我們走很遠的鄉村小路到他家裡拿零件。但我們根本無法完成這個專案,原因有幾個:無人指導,我們所擁有的零件只有電線,所有的工具只有老虎鉗和螺絲刀 (記得某次老爸修電器,還叫我到別人家借電烙鐵)。
電動小車做不出來,我不甘心,決定做一個葉輪。因為那段時間我正在玩的一個專案,是把水裝在玻璃瓶里,用蠟燭在下面把水燒得沸騰,蒸汽就從前面的一個針頭高速噴出。如果我能用蒸汽推動葉輪,那就可以想辦法讓它帶動一個小直流電機發電。
於是我找到一個塑料瓶蓋,一些鋁片,幾塊木板,坐在家裡的八仙桌邊,先把鋁片用鉗子折斷成我想要的大小,再用鉗子夾住鋁片放在煤油燈上燒熱,然後插到塑料瓶蓋上。之後找了一根鐵絲做為軸,用螺絲刀在木板上鑽孔 (因為沒有鑽頭),再用鋁片折彎,做成L 型支架,用釘子把軸承座訂在底板上。
第二天就把這個製作交給老師,過了一段時間,老師給了我皺巴巴的一元錢,說是中心小學給我的獎勵。我也去中心小學看了別人的一些製作,現在還有印象的是一個用繩子套?的飛機,繩子穿過一根管子,利用離心力它可以飛起來。
20 年之後,我和 SZDIY 的另一群小夥伴們一起完成了小車專案,但以另一種有趣的方式完成 :)
想在Android 手機欣賞更多有趣圖集?免費下載 GigCasa App
原文站台: 雷鋒網
【本文著作權歸雷鋒網所有,未經許可不得轉載。文章只有代表作者看法,如有不同觀點,歡迎新增雷鋒網微信公眾號(微訊號:leiphone-sz)進行交流。 】
分享到Facebook