這堂課助教主要教我們如何使用tinkercad的基礎功能畫出自己想要的東西,再使用snapmaker切層打印。
同時在最後提供了thingiverse這個管道取得一些免費的線上資源,能省去很多繪製的時間。
之前也曾經接觸過3D繪圖,但這是第一次將成品印出來,很有成就感,同時也感受到這堂課很高的自由度。
自己畫的可愛小人人~ 可惜沒有做成模板QQ
NDHU方塊
這次上的是Arduino,我們要稍微修改助教給的程式,將線路接好,完成第一部分使燈泡閃爍、第二部份當按鈕按下去後燈泡會亮。
這次的內容也蠻有趣的,完成的速度算快很以成就感,但我無意中看到好像有一個人在第一部分的時候只用了三條線,這讓我非常好奇,因為我的邏輯是兩個燈泡是完全不同的線路,用程式讓兩個燈泡亮的時間錯開,因此需要四條線,但我想了很久依然想不出只用三條線的方法,可惜那天沒有靠近去觀察。
程式碼
使燈泡發出SOS訊號
這次上的也是Arduino,至教給的程式是按一下安鈕會可能+1 +2 +3...的程式,取決於按了多久,我們的任務就是讓它按一下只+1,考驗的是我們對於程式的了解與邏輯。
這次的接線非常簡單,但程式的部分卻讓我卡了很久,我一開始的邏輯是將if buttonState==1包在if buttonState==0外面這樣他就不會無限循環,一定要有按有放才會有一個加一,但失敗了,我想這樣的程式相當於buttonState同時是0也是1才能執行,也就是同時要處於"按"與"放"兩個狀態,這是不可能的,所以會怎麼按都不會顯示,因此我選擇在判斷buttonState==1後有個delay,讓他有一個緩衝,但還是失敗了,我卻不太懂為甚麼QQ好想知道。
後來我決定換個方式,使用變數,讓他在按下按鈕(加一)的同時發生改變(=1),在放開按紐時恢復(=0),同時在判斷上改成buttonState==0且變數為原本(==0)時,才會進入迴圈。這使的一旦按下按鈕變數改變後不會再回到著個迴圈中,阻止了無限循環的部分,一旦放開變數會恢復,等待下一次按鈕被按下。
邏輯本身沒有問題但問題出在我對程式的不熟悉,使的我將改變變數的部分寫成定義一個新的變數,而且if外再包一個if其實可以用&&就可以做到,這都是寫程式時最基礎的概念,我卻不了解(甚至不知道再用哪個語言),我想我是時候該好好學習程式語言了。
程式碼
按一次按鈕+1
學習如何下載&匯入含式庫
Arduino本身沒有計時功能,這次使用時間模組外接電池來持續記錄時間(斷電後依然計時)。這次的目標是通過修改程式的接腳去使計時器正常運作
上課開頭教我們如何尋找我們所需要的函式庫(GitHub)並匯入,這是很好的資源可以多多利用。
的而部分實作時程式修改很簡單,接線的部分仔細一點也能輕鬆完成(開心🥳。
用Arduino顯示時間
小恐龍破解器!!!!
解釋原理很簡單,但為甚麼線要這樣接並不是很了解。
我覺得這個破解器理論上可行,但人為因因素太多,像是感測器放前放後放進放遠及手的穩定度,對遊戲過程都有影響,就算是換成支架,參數也要經過細細調整才能真的完全破解小恐龍。
破解器玩小恐龍
最高紀錄 385 XD