Introduction: 吃不到的零食

姓名:9B胡以蕾

Supplies

  • 圓形紙箱直徑12cm一個、紙板直徑11.5cm兩個
  • 竹筷一副(用來加強固定紙板)
  • Arduino Leonardo 開發板
  • 麵包板
  • 步進馬達 28byj-48、驅動片
  • 超音波感測器
  • Leonardo 線材
  • 杜邦針腳公母十條

Step 1: 簡介

狗狗擁有靈敏的嗅覺,但是牠們有的時候都是自己待在家,應該要有個玩具或有趣的東西讓牠們不要有孤單的感覺。運用牠們與身俱來的天賦來考驗他們的反應速度,來做出一個靠反應才吃的到零食的裝置。當主人拿出袋子裡的零食時,接下來一定會是要讓狗狗坐下、握手、或趴下等等.一連串的的指令。而這個裝置可以通過超音波感測器來變換步行馬達轉動的速度,也可以使在插上電源後,步進馬達會以每圈八秒的速度開始轉動。轉動完一圈後會間格五秒鐘,如果在這個時候手放在距離小於等於15公分的超音波感測器前時,步進馬達才會以四秒轉動一圈的速度開始轉動。但是在轉動的過程當中速度是不可切換的,必須在停留的那五秒種變更才會成功。

Step 2: 製作步驟

Step 3: 程式碼

int _1_distance = 0.0 ;

int ardublockUltrasonicSensorCodeAutoGeneratedReturnCM(int trigPin, int echoPin) { long duration; pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(20); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); duration = duration / 59; if ((duration < 2) || (duration > 300)) return false; return duration; }

void __StepMotor(int MotorStep,int MotorSpeed,int pinNumberA, int pinNumberB,int pinNumberC,int pinNumberD) { pinMode(pinNumberA, OUTPUT); pinMode(pinNumberB, OUTPUT); pinMode(pinNumberC, OUTPUT); pinMode(pinNumberD, OUTPUT); for(int i=0;i

void setup() { digitalWrite( 13 , LOW );

}

void loop() { _1_distance = ardublockUltrasonicSensorCodeAutoGeneratedReturnCM( 13 , 12 ) ; if (( ( _1_distance ) <= ( 15.0 ) )) { __StepMotor(512.0, 4.0, 2, 3, 4, 5); delay( 5000.0 ); } else { __StepMotor(512.0, 8.0, 2, 3, 4, 5); delay( 5000.0 ); } }

Step 4: 影片