无聊的盒子制作
前言
一开始想把这个当成一个开源项目来做,然后发现想要超越网上现有的开源项目,还是需要费一番功夫,至少不是花一两天就能完成的。
目前的项目其实还不是很完善,甚至部分打印件需要用小刀进行修正,遂本次制作仅自娱自乐,作为自己的练习项目。
文件仓库如下
https://github.com/liwuyou/box.git
arduino代码
| 12
 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;
 
 }
 }
 }
 
 
 
 |