无聊的盒子制作
前言
一开始想把这个当成一个开源项目来做,然后发现想要超越网上现有的开源项目,还是需要费一番功夫,至少不是花一两天就能完成的。
目前的项目其实还不是很完善,甚至部分打印件需要用小刀进行修正,遂本次制作仅自娱自乐,作为自己的练习项目。
文件仓库如下
https://github.com/liwuyou/box.git
arduino代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
#include <Servo.h> Servo myservo;
int close_pos = 110; int home_pos = 20;
int pin_on = 2; void setup() { Serial.begin(9600); myservo.attach(9); myservo.write(home_pos); pinMode(pin_on,INPUT_PULLUP);
randomSeed(analogRead(0)); }
void case_1(){ myservo.write(close_pos); delay(300); myservo.write(home_pos); delay(300); }
void case_2(){ delay(500); myservo.write(close_pos); delay(500); myservo.write(home_pos); delay(1000); }
void case_3(){ delay(500); myservo.write(close_pos); delay(1000); myservo.write(home_pos); delay(1000); }
void case_4(){ int pos; for(pos = home_pos; pos<=close_pos-20; pos+=1) { myservo.write(pos); delay(30); } myservo.write(close_pos); delay(1000); myservo.write(home_pos); delay(500); }
void case_5(){ int pos; for(pos = home_pos; pos<=close_pos-20; pos+=1) { myservo.write(pos); delay(10); } for(pos = close_pos-20; pos>=home_pos+30; pos-=1) { myservo.write(pos); delay(10); } myservo.write(close_pos); delay(1000); myservo.write(home_pos); delay(500); }
void loop() { int randNumber = random(5); if(digitalRead(2)==0){ switch(randNumber){ case 0:case_1();break; case 1:case_2();break; case 2:case_3();break; case 3:case_4();break; case 4:case_5();break; } } }
|