Ничего не найдено :(
    В гостях у Самоделкина! » Электроника » Arduino » Как удивить гостей и напугать детей

    Как удивить гостей и напугать детей


    Мастер назвал свою самоделку "Заколдованная книга". Если дотронутся до нее, то она будет дрожать, смеяться*, а страницы будут светиться зеленым светом. Крышка попытается открыть, и иногда внутренняя часть книги будет светиться жутко-синим.
    *К сожалению, на видео звук почти не слышен.
    [media=https://youtu.be/0CINZ-moScY]

    Инструменты и материалы:
    -Книга;
    -Arduino Nano;
    -Модуль записи голоса ISD1820;
    -Динамик 8 Ом;
    -Серводвигатель;
    -Реле;
    -Двигатель постоянного тока 5В;
    -Металлический грузик;
    -Три светодиода (два зеленых и один синий);
    -Одна палочка для мороженого;
    -Два маленьких винта;
    -Резисторы 220 Ом - 3 шт;
    -Резистор 1 МОм;
    -Пьезокерамический элемент;
    -Переключатель;
    -Провода;
    -Деревянная планка;
    -Прозрачный акрил;
    -Клей;
    -Термоусадочная трубка;


    Шаг первый: подготовка
    Теперь начинаем подготовку материала.
    1.Сначала нужно открыть книгу и отсчитать 25 листов. Первые 25 страниц должны оставаться целыми и не склеенными. Дальше нужно отступить от каждой стороны по 1,5 см и вырезать прямоугольное отверстие до обложки. Затем нужно вырезать и прикрутить к обложки планку по размерам отверстия.

    2. Свечение листов книги обеспечивается вставками между ними прозрачного акрила. Нужно вырезать полоски акрила, вставить их между листами в разных местах и затем листы склеить.

    3. Звуковой модуль ISD1820 позволяет записывать и затем воспроизводить звук. Мастер записал на него смех.
    Для записи нужно выполнить следующие действия:
    Подключите ISD1820 к 5В и GND Nano. Подключите Nano к USB-порту и воспроизводите звук, который вы хотите записать, рядом с микрофоном ISD1820. Теперь звук загружен в память рекордера.

    4. Сервомотор поставляется с несколькими маленькими белыми рычагами. Нужно просверлить два отверстия в палочке для мороженого и прикрутите ее к одному из рычагов. Лучше всего подойдет рычаг, у которого одна штанга. Затем нужно повернуть рычаг серводвигателя по часовой стрелке до упора. Также можно написать короткую программу для установки сервопривода на 0 градусов.

    5. Реле предназначено для двигателя постоянного тока. Подключаем основной провод питания к общему разъему, а положительный провод двигателя постоянного тока к нормально разомкнутому разъему.

    6. Припаиваем резисторы 220 Ом к светодиодам, как показано на схеме.

    7. У пьезодиска один провод припаян к центральной контактной площадке, второй к боковой. Для подключения нужно один провод подключить к земле, а другой - к аналоговому выводу Nano. Провода должны быть достаточно длинными, чтобы и можно было протянуть через страницы к внутренней обложке книги. Между проводами нужно припаять резистор 1 МОм.




    Как удивить гостей и напугать детей

    Шаг второй: программирование
    Из-за ограниченного пространства нужно загрузить программу на Ардуино, прежде чем помещать плату в книгу.
    В коде для демонстрационного видео мастер установил задержку между действиями в одну секунду (1000 миллисекунд). Для лучшего эффекта следует устанавливать время от 30 до 60 секунд (от 30000 до 60000 миллисекунд).
    Код можно скачать ниже.
    
     /* Bewitched Book Sketch by John Shute (not a pro by any stretch of the imagination).  I declare
        this code to be public domain and I except no responsibility for anything.
        The code will control several functions intended to make a book appear to be haunted.
    */
    #include <Servo.h>            //Library
    Servo servo;                  //declare the servo motor
    int pos = 0;                  //position variable
    int i = 0;                    // count variable
    int val = 0;                  //value for knock sensor
    const int KnockSensor = A0;   //knock sensor
    const int THRESHOLD = 350;    //How hard a Knock to start  Cases  (o to 1023)
    int pwmLED = 5;               //Green Fading Leds
    int pwmLED2 = 6;              //   "     "     "
    
    void setup() {
    
      Serial.begin  (9600);       //for debugging
      pinMode(A0, INPUT);         // Knocksensor Pin
      pinMode(3, OUTPUT);         // Open book
      pinMode(4, OUTPUT);         // Rumble Motor
      pinMode(7, OUTPUT);         // Blue light
      pinMode(8, OUTPUT);         // Evil Laugh
      pinMode(pwmLED, OUTPUT);    // Green Fade (pin 5)
      pinMode(pwmLED2, OUTPUT);   // Green fade (pin 6)
    
    }
    
    void loop() {
      sensor();                         // check the sensor
      haunt();                          // start the program
    }
    void sensor() {
      val = analogRead(KnockSensor);     // read the knock sensor
      if (val < THRESHOLD) {             // if sensor not activated,
        sensor();                        // keep checking
      }
      else  {                            // if the sensor is disturbed
        haunt();                         // go to haunting actions
      }
    }
    void haunt() {                          //begin actions
    
      delay(5000);                         //wait 5 seconds
    
      //   Rumble Motor,  Relay to rumble motor turned on, book vibrates
      digitalWrite(4, HIGH);    //turn on the rumble motor
      delay(700);               //run 7 milliseconds
      digitalWrite(4, LOW);     // stop
    
      delay(20000);              //wait-----CHANGE THIS VALUE TO ADJUST THE DELAY BETWEEN ACTIONS. 
                                 //(1000); IS 1 SECOND.  (60000); IS 1 MINUTE).
    
      //  Evil Laugh,  recording plays
      digitalWrite(8, HIGH);                  // recording plays
      delay(3000);                            // time for recording to play
      digitalWrite(8, LOW);                   // stop
    
      delay(17000);                           //wait...The delay between actions.
      
      //   Pages Glow Green   Fade in, then out.
      for (int i = 0; i < 255; i++) {          //set the rate of fade in-increas i by 1
        analogWrite(pwmLED, i);                //write the i value to pin 5
        analogWrite(pwmLED2, i);               //and 6
        delay(5);                              //time between iterations
        analogWrite (pwmLED,  HIGH);            //after 255 write high
        analogWrite (pwmLED2,  HIGH);           //
      }
    
      for (int i = 255; i > 0; i--) {           //decrease i by 1
        analogWrite(pwmLED, i);                   // see above
        analogWrite(pwmLED2, i);
        delay(5);
        analogWrite (pwmLED, LOW);
        analogWrite (pwmLED2,  LOW);
    
      }
      delay(20000);                               //wait...The delay between actions.        
    
      //   Book Open and Close, blue LED on
      servo.attach(3);                         //turn the servo on
      for (pos = 0; pos <= 35; pos += 1) {     // goes from 0 degrees to 35 degrees in steps of 1 degree
        digitalWrite (7, HIGH);                // bue led on
        servo.write(pos);                      // tell servo to go to position in variable 'pos'
        delay(100);                            // set the speed it moves, relatively slow
      }
      for (pos = 35; pos >= 0; pos -= 1) {     // return to 0 degrees
        servo.write(pos);
        digitalWrite (7, LOW);                  // tell servo to go to position in variable 'pos'
        delay(15);                              // close quickly
      }
      servo.detach();                           // servo off
    
      delay(14000);                               //wait...The delay between actions.
    
      //   Rumble With Green light,
      digitalWrite(4, HIGH);   //turn on the rumble motor
      digitalWrite (pwmLED, HIGH);  //green light on too
      digitalWrite(pwmLED2, HIGH);
      delay(500);
      digitalWrite(4, LOW);      //turn them off
      digitalWrite(pwmLED, LOW);
      digitalWrite(pwmLED2, LOW);
    
      delay(21000);                         //wait...The delay between actions.
    
    
      //   Evil Laugh
      digitalWrite(8, HIGH);             // recording plays
      delay(3000);                       // time for recording to play
      digitalWrite(82, LOW);              // stop
    
      delay(20000);                          //wait...The delay between actions.
    
      //  Book Opens with no light
      servo.attach(3);
      for (pos = 0; pos <= 35; pos += 1) {   // goes from 0 degrees to 35 degrees  Steps in steps of 1 degree
        servo.write(pos);                    // tell servo to go to position in variable 'pos'
        delay(100);                            // go slowly in this direction
    
      }
      delay(500);
      for (pos = 35; pos >= 0; pos -= 1) {     // return to 0 degrees
        servo.write(pos);
    
        delay(15);                               // waits 15ms for the servo to reach the position
    
      }
      servo.detach();
    
      delay(19000);                             //wait...The delay between actions.
    
      //   Green Fade 
      for (int i = 0; i < 255; i++) {
        analogWrite(pwmLED, i);                //write the i value to pin 5 and 8
        analogWrite(pwmLED2, i);
        delay(5);                             //wait 5 ms then do the for loop again
        analogWrite (pwmLED,  HIGH);
        analogWrite (pwmLED2,  HIGH);
    
      }
      for (int i = 255; i > 0; i--) {           //decrease i by 1
        analogWrite(pwmLED, i);
        analogWrite(pwmLED2, i);
        delay(5);
        analogWrite (pwmLED, LOW);
        analogWrite (pwmLED2,  LOW);
      }
      delay (20000);                             //wait...The delay between actions.
    
      //Rumble 
      digitalWrite(4, HIGH);   //turn on the rumble motor
      delay(500);
      digitalWrite(4, LOW);
    
      delay(20000);                       //wait...The delay between actions.
    
      //  Evil Laugh
      digitalWrite(8, HIGH);             // recording plays
      delay(3000);                       // time for recording to play
      digitalWrite(8, LOW);              // stop
    
      delay (15000);                      //wait...The delay between actions.
    
      //  Book Open
      servo.attach(3);
      for (pos = 0; pos <= 35; pos += 1) {   // goes from 0 degrees to 35 degrees  Steps in steps of 1 degree
        servo.write(pos);                    // tell servo to go to position in variable 'pos'
    
        delay(100);                            // go slowly in this direction
      }
      delay(500);
      for (pos = 35; pos >= 0; pos -= 1) {     // return to 0 degrees
        servo.write(pos);
    
        delay(15);                               // waits 15ms for the servo to reach the position
      }
      servo.detach();
    
      delay(20000);                               //wait...The delay between actions.
    
      //Book Open with Blue Light and Laugh
      servo.attach(3);               //turn the servo on
      for (pos = 0; pos <= 35; pos += 1) {     // goes from 0 degrees to 35 degrees in steps of 1 degree
        digitalWrite (7, HIGH);
        digitalWrite (8, HIGH);
        servo.write(pos);                    // tell servo to go to position in variable 'pos'
        delay(100);
      }
      for (pos = 35; pos >= 0; pos -= 1) {     // return to 0 degrees
        servo.write(pos);
        digitalWrite (7, LOW);
        digitalWrite (8, LOW);                  // tell servo to go to position in variable 'pos'
        delay(15);
      }
      servo.detach();                         // turn the servo off
    
      delay(140000);                           //wait...The delay between actions.
    
      haunt();     //Go back to the Haunt loop
    }
    

    Шаг третий: сборка и подключение
    Теперь нужно собрать устройство. Мастер приклеивает к валу двигателя грузик, он нужен для вибрации книги. Затем закрепляет двигатель и сервопривод. Палочка от мороженного, закрепленная на рычаге сервопривода, будет приподнимать обложку книги. Дальше нужно сделать небольшую прорезь в верхних 25 страницах, чтобы пропустить пьезодиск и прикрепить диск к задней части верхней обложки.

    Светодиоды должны находится ближе к лицевой стороне книги.
    Мастер предоставил две схемы. При монтаже сначала собирается схема линии питания, а затем линия управления.


    Шаг четвертый: работа устройства
    Как только будет подано питание, книга может совершить несколько действий, например, шум двигателя постоянного тока и воспроизведение звука. Nano требуется секунда или две, чтобы начать все контролировать. После этого ничего не должно происходить, пока мы не постучим по верней крышке. Затем через пять секунд книга начинает производить различные действия.

    Обложка книги должна лишь немного приподниматься. Это можно отрегулировать, перемещая палочку на рычаге выше или ниже.

    Последним шагом нужно "состарить" книгу. Как это сделать можно узнать, посмотрев видео ниже.

    Источник (Source)
    Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

    Зеркало со скрытым отсеком, который открывается при распознавании лица

    Простой телефон на базе Ардуино

    10
    Идея
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    10
    Описание
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    10
    Исполнение
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Итоговая оценка: 10 из 10 (голосов: 2 / История оценок)

    Добавить комментарий

    6 комментариев
    Korolev
    pogranec,
    Паук предпочитает убежать
    Чем крупнее паук, тем эффектней вопли гостей и детей, и их попытки убежать из комнаты!  xaxa   
    pogranec Автор
    Феодор,
    Паука тоже не агрессивный. Паук предпочитает убежать и в крайнем случае нападает. 
    Феодор
    Конечно живых! Гораздо эффектнее, чем резиновое чучело. Хотя с мышкой может не получиться, она не слишком агрессивная, а вот с пауком, и покрупнее, намного лучше и результативнее.
    pogranec Автор
    LeoBrynn,
    Лучше пауков или мышу посадить внутрь. Дешево и сердито. 
    живых? laugh1

    LeoBrynn
    Лучше пауков или мышу посадить внутрь. Дешево и сердито.
    Прагматик.
    Korolev
    Как удивить гостей и напугать детей
    Чтобы с детства книг боялись и никогда к ни не прикасались!  xaxa  

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Опрос
    А Вы знаете, что на сайте оплачиваются отчеты о создании самоделок?

    Последние комментарии

    Все комментарии