书怪

标签:arduino DIY

甜橙 发布于 2016-10-31 14:08

1.jpg


只需要一本书,再把一个羞答答的小怪物藏在里面,这个项目非常有趣,不是很难,但可以自创的东西非常多,没有绝对的对错,只要你开心就好!

Step 1: 改造

s1.jpg

首先,找到一本书,什么类型的都可以,要大到能装下电子器件们,但是又不能太大,看起来很可疑。把里面的书页去掉,要给电子器件们留足空间。这里,我用的是一个书的模型(不是模型方面的书啊),可以直接拿来用。

把挖空的书内侧喷上哑光的黑色,这看起来更像“夜色中的眼睛”的背景。书最好能用磁铁辅助扣上,可惜,最后我把这部分去掉了,因为伺服电机不能把它流畅的打开。

Step 2: 电子部分

s2-1.jpg s2-2.jpg s2-3.jpg s2-4.jpg s2-5.jpg

如果你有Arduino或其他开发板的经验,那么这个电路是非常简单的,你也可以用任何其他的微控制器控制伺服电机和一些LEDs。我用的是freetronics-leostick,它非常小,却能完全与Arduino leonardo兼容,还有一个protostick用来提供电线和电源

protostick的外部电线 仍然可以用其他项目的主要的Leostick。 电源是用4*AA电池组,其中,用1n4004 二极管降压


对怪物的“眼睛”而言,如果书内的空间够,可以再多加几个。当然还需要给LEDs配上一个电阻。由于LEDs是由电流驱动的,你可以通过两个阻值合适的电阻,把两个led串联起来,这样在一个数字输出管脚就可以同时控制两个led

你可以用这个在线计算器,计算出要用多大阻值的电阻。最后,我们还需要一个伺服电机,来控制书的盖子的抬起和落下。这里,我用的是一个小店买的几十块钱的迷你伺服电机。把筷子截短,用做电机腿的延伸,可以让电机变长一点。别忘了把这个腿喷成黑色,这样不会太显眼。

这里我偷懒了,直接用万能胶把伺服电机装在乐高上,虽然有点土,但是很好用。上面是我的最终作品的电路图,在电池后面还装了电源开关。



Step 3: 还是电子部分

s3-1.jpg s3-2.jpg

总结一下,这是要用到的元件清单:

假的书

freetrhonics leostick 和 protostick

迷你9G伺服电机(我用的)

2个5mm leds

1个68欧的电阻

各种电线

9V电池snap (使用4*AA电池盒的人需要这个)

4*AA电池盒和4*AA电池

SPDT开关

1N4001或更小的整流二极管

盒子、筷子和其他用于安装的小零碎

Step 4: Arduino

书怪的表现全靠自己的想象。伺服电机的角度和速度实验可以用来模拟打开书盖,可以像怪物一样慢慢打开,或者快速弹开吓人一跳。同样,对于led眼睛来说,你可以让它们眨眼,或用pwm改变亮度。这里有一些参考代码:

int angle;
int d; // for delays
int ledPin = 9; // LEDs on digital pin 9

#include <Servo.h>
Servo myservo;

void setup()
{
  myservo.attach(4); // servo control pin on digital 4
  pinMode(9, OUTPUT); 
  randomSeed(analogRead(0));
  myservo.write(10);
  delay(5000);
}

void behaviour1()
{
  for (angle = 10; angle <=40; angle++)
  {
    myservo.write(angle);
    delay(50);
  }
  digitalWrite(ledPin, HIGH);
  delay(250);
  digitalWrite(ledPin, LOW);
  delay(250);  
  digitalWrite(ledPin, HIGH);
  delay(250);
  digitalWrite(ledPin, LOW);
  delay(250);    
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(250);    
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(250);    
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(250);    
  for (angle = 40; angle >=10; --angle)
  {
    myservo.write(angle);
    delay(5);
  }
}

void loop()
{
  behaviour1();
  delay(random(60000));
}


Step 5: 结论

geek_book.gif

这个很有意思,它敢肯定这个能让很多人开怀大笑。我有一个亲戚是图书管理员,如果万圣节她能用这个装饰书架,来看书的人一定会既惊讶又兴奋!

 
云泥坊2017-01-20 09:30:06
我是北京景山学校的吴俊杰,加个微信哈18810650955,我想把这个项目作为教学资源使用。
甜橙2017-01-20 11:27:30
吴老师,您好,没问题,我这个也是参考的别人的制作的呢:)

作者

甜橙

北京,海淀

6粉丝 1作品 1随笔
  关注 私信

作者的最新作品

  • 书怪

    2016-10-31 14:08发布


阅读数: 7804