今天早上七點鐘起床,吃了兩片吐司,七點半就到了實驗室,但助教還沒到,所以我就去湖畔全家買了一杯好喝的波蜜果菜汁。
好像是三位物理系&兩位電機系
google 協作平台介紹
新增自己的作業頁面
tinkercad基本操作介紹
SnapMaker 校正教學
SnapMaker 軟體及打印步驟介紹
課程心得:
今天一上課助教就先問大家有沒有學過arduino以及3D列印的操作,我看到有兩到三個人舉手,裡面有人曾經使用arduino去操控遙控車,然後我一個都沒有碰過,今天是我第一次接觸3D繪圖的軟體以及親手操作3D印表機,我覺得我很幸運能參加這個課程去學習我從未接觸的領域。
最後感謝智尹助教陪我們到十點半,讓我們能開始打印自己的雪人作品。
Q:雪人空心是否能列印成功?
A:在課程最後我有開始打印自己的作品,我目前只觀察到(今日課程內容左圖),我認為是可以的,但前提是球體的厚度要達到一定的程度才能支撐球體上方的材料重量或者去調打印平台的粘著特性(預設是裙邊)
補充 :
左圖是列印完的結果,手太細導致印出來有點變形(失敗)。
上課心得 :
今天上課遇到一些小挑戰,我依照助教的指示安裝了Arduino IDE和驅動程式,但是我的UNO板一直讀不到訊息,最後原來是端口的部分出了問題,之後就沒有遇到甚麼大問題了,也很快的完成第一次練習(讓兩個LED燈泡輪流閃爍 ,上面的程式碼的頻率在3秒一次)。
今天學了按鈕的原理跟基礎應用,結合了LED
旁邊的影片是我讓開關像日常生活中的開關一樣,按了開,按了關這樣子循環。
今天我利用光敏電阻去感測螢幕的亮暗差異去驅動馬達,這個裝置可以用來玩google離線小恐龍。
這次的挑戰點是要先測試看看光敏電阻在亮暗時的數據是多少。一開始我發現光敏電阻所讀出來的數據再亮暗之間是沒有太明顯的差異的,之後助教提供了電阻較小的點組給我們換上之後光敏電阻在亮暗數據的差異就有明顯的差異了,最後就順利做出能判頓螢幕亮暗去驅動馬達的裝置,也順利拿來玩離線google小恐龍。
今天做了計數器,按鈕A按了減一、按鈕B按了加一、按鈕C按了歸零。
int presstime=0;//計數器變數
int B=7 ;//設定按鈕的腳位
int A=8;
int C=9;
int buttonState=0; //校正按鈕的變數 表示按下前
int beforeState=0;//校正按鈕的變數 表示按下後
int buttonState1=0;
int beforeState1=0;
int buttonState2=0;
int beforeState2=0;
void setup() {
Serial.begin(9600);
pinMode(B,INPUT_PULLUP);//設定腳位為輸入訊號端端 訊號不穩定時加入一個上拉電阻
pinMode(A,INPUT_PULLUP);
pinMode(C,INPUT_PULLUP);
}
void loop() {
buttonState=digitalRead(B);//按下按鈕後的變數連接按鈕
if (buttonState==0&&beforeState==1){ //按下按鈕會發生的事 如果按下前訊號為零&&按下後訊號為一(校正按鈕物理訊號錯誤)
presstime=presstime+1; //變數++
Serial.println(presstime);
}
if(buttonState!=beforeState){ //Debonce
delay(20);
}
beforeState=buttonState; //還原
delay(1);
buttonState1=digitalRead(A);//按下按鈕後的變數連接按鈕
if (buttonState1==0&&beforeState1==1){ //按下按鈕會發生的事 如果按下前訊號為零&&按下後訊號為一(校正按鈕物理訊號錯誤)
presstime=presstime-1; //變數++
Serial.println(presstime);
}
if(buttonState1!=beforeState1){ //Debonce
delay(20);
}
beforeState1=buttonState1; //還原
delay(1);
buttonState2=digitalRead(C);//按下按鈕後的變數連接按鈕
if (buttonState2==0&&beforeState2==1){ //按下按鈕會發生的事 如果按下前訊號為零&&按下後訊號為一(校正按鈕物理訊號錯誤)
presstime=0; //變數++
Serial.println(presstime);
}
if(buttonState2!=beforeState2){ //Debonce
delay(20);
}
beforeState2=buttonState2; //還原
delay(1);
}
今天做了和以往比較不同的東西,這個東西可以DS1302 函數庫會自動取得編譯時的時間和DS1302來比對,DS1302如果時間慢了,就進行更新,不用我們手動來KEY,非常方便。