Проект выходного дня: Имперский марш на сервоприводах и MSP430

    Ладно. Все началось с того, что я заказал сервы. Думал что это одна большая, а оказалось, что 5, но маленьких. Нужный мне груз они не потянули, но раз что-то есть в закромах родины, значит это что-то надо применить.



    Сначала я хотел сделать из них часы, идущие в обратную сторону, но ошибся в задержках и получил звук «Зз-Зз-Зз-ЗЗЗЗЗ», который показался мне интересным.
    Дальше были выходные и неспешное ковыряние в коде, который претерпел несколько изменений, был потерян и переписан для MSP430 и Wiring вместо BASCOM(потому что мне было ленивее набирать программу второй раз, нежели написать ее на другом языке), и в итоге принял такой вид:
    ОСТОРОЖНО! Быдлокод!

    #include <Servo.h> //Подключаем бибилотеку
    Servo myservo1;//Определяем имена
    Servo myservo2;
        int x = 0; //Разные переменные
        int y = 0;
        int z = 0;
        int w = 0;
        int g = 0;    
        int h = 0;
        int q = 0;
        
    void setup()
    {
    myservo1.attach(7, 600, 800); //Определяем порты серв и параметры(длительность паузы и импульса) управления
    myservo2.attach(8, 600, 800);
    myservo1.write(0); //Устанавливаем в ноль
    myservo2.write(0);
    pinMode(6, OUTPUT);
    pinMode(7, OUTPUT);
    pinMode(8, OUTPUT);
    pinMode(GREEN_LED, OUTPUT);
    pinMode(RED_LED, OUTPUT);
    digitalWrite(GREEN_LED, LOW);
    digitalWrite(RED_LED, LOW);
    }
    
    void loop()
    {
    
    
    delay(2000);//Ждем перед началом 2 секунды, чтоб не смазывать начало
    
    q=song(80,40,0);//Начинаем звучать
    q=song(80,40,0);//Формат такой:
    q=song(-80,40,0);//Первая цифра - относительный угол поворота, причем надо следить, чтоб он был не больше 180 и не меньше 0
    
    q=song(-50,30,-50);//Вторая - длительность паузы. Нормализованная - поворот на 30 градусов и 30 единиц паузы равны по времени
    q=song(-5,15,0); //Третья - Угол поворота второй сервы,все тоже самое что и у первой.
    q=song(-80,20,0);
    
    q=song(-10,10,-10);
    q=song(-10,10,0);
    q=song(-100,70,0);
    
    q=song(-80,32,-80);
    q=song(-40,32,-80);
    q=song(-80,32,-80);
    
    q=song(-70,32,0);
    q=song(-10,10,0);
    q=song(-100,20,-80);
    
    q=song(-70,40,0);
    q=song(-10,10,0);
    q=song(-100,20,-80);
    
    q=song(-70,40,0);
    q=song(-10,10,0);
    q=song(-100,50,0);
    
    q=song(-80,32,-80);
    q=song(-40,32,0);
    q=song(-10,10,0);
    
    q=song(-80,32,-80);
    q=song(-40,32,0);
    q=song(-10,10,0);
    
    q=song(-80,32,-80);
    q=song(-40,40,-40);
    q=song(-10,10,0);
    
    q=song(-10,8,-10);
    q=song(-10,8,-10);
    q=song(-10,32,-10);
    
    delay(2000000); 
    }
    
    int song(int y, int z, int g){
        x=x+y; //Превращаем относительный угол поворота в абсолютный
        h=h+g;//Тоже самое для второй сервы
        w=(abs(y)*3.75+z*10/1.6)/2;//Нормализуем длительность паузы. Сначала вычисляем время, необходимое для поворота сервопривода на заданный угол, потом добавляем к этому значению время паузы
    
        if (g != 0) // надо двигать одну или две сервы?
        {
        myservo2.write(h);
        digitalWrite(GREEN_LED, HIGH);
        myservo1.write(x);
        digitalWrite(RED_LED, HIGH);
        }
        else
        {
        myservo1.write(x);
        digitalWrite(RED_LED, HIGH);
        }
        g=0;
        delay(w);//Две задержки - чтоб светодиоды вспыхивали красиво
        digitalWrite(GREEN_LED, LOW);
        digitalWrite(RED_LED, LOW);
        delay(w);
        }
    

    Фотка для отвлечения внимания и разбавления текста:


    Так как у меня не получилось подобрать на слух, я пошел на хитрость — скачал midi, открыл в редакторе и замерил длительность звучания нот и пауз. Те ноты, чья тональность отличалась слишком сильно — озвучивала вторая сервомашинка, она имеет другой звук.
    Еще одна фотка:

    Так как сервы питаются от стабилизатора платы, коэффициенты рассчитаны на напряжение 3в, при бОльшем — будет различаться длительность пауз, из-за увеличения скорости движения.

    И, наконец, самое интересное — видео.
    Поддержать автора
    Поделиться публикацией

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 65

      +3
      Мило, но это впечатлило больше
        +32
        Вот это лучше:


        Сервоприводы не выдают всей той гаммы звуков, что дисководы.
          +28
          Мне иногда кажется, что Джон Уильямс сочинил этот марш специально для дисководов :)
            +23
            мне кажется, дисководы изначально задумывались как инструмент для современного симфонического оркестра.
              +13
              Кажется я знаю как зарождался дабстеп
                +5
                Apocalyptica)

                Через миллион лет в инопланетном музее истории будет лежать экспонат «FDD — музыкальный инструмент землян. Сохланился частично. Руками не трогать, радиоактивно»
                  +2
                  Получился бы неплохой вирусный ролик к выходу 3й части. Например про то, как во флопики вселяется нечисть и начинает отжигать :)
                    0
                    А очищение от нечисти должно проходить с помощью админского бубна!
                +8
                  +5
                  Теперь этот пост на 20% круче
                    0
                    Дисководы умеют плавнее изменять тон звука.
                  +1
                  Зачёт!
                    0
                    Что только не смогут сделать люди.
                    +7
                    На флопах более 10 лет назад делали куда более качествуенную версию с точки зрения музыкальности, так что есть над чем работать. Вот примерно до такого уровня :)

                      +12
                      Раз начали видео кидать, то вот мелодия из Марио:
                        +5
                        Есть еще доставляющая видяшка Phantom of the floppera. Из той же серии.
                          +7
                            0
                            Хорошие басы.
                              +5
                              Только это немного не «Призрак оперного театра».
                                0
                                Да, это токатта и фуга Баха ре минор. Но автор видео так и пишет — «Test run of my (d)iskette (O)rgan doing Toccata & Fugue». Да и Floppera != Opera :)
                            +16
                            А мне понравилось. Простенько и здорово.
                            Ну и еще вот это нравится —
                              0
                              Представилось: сидишь у себя в мастерской, тишина, мерное помигивание светодиодов, и вдруг ни с того, ни с сего такой концерт. Надо будет как-то на 1-е апреля пошутить.
                                +5
                                Сканер как мне кажется халтурит.
                                  0
                                  ну и кто тут сканером лажает?
                                    0
                                    Третий сканер, опять в такт не попадаешь?!
                                +2
                                А я тут не так давно The Pink Panther делал.
                                  0
                                  Это шаговики?
                                    +4
                                    это шпули от спиннингов!
                                  +21
                                  Это круто, но в плане исполнения имперского марша вряд ли что-то переплюнет это:

                                  • НЛО прилетело и опубликовало эту надпись здесь
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                        +1
                                        <video>http://...</video> Добавляет в пост видео со следующих хостингов: YouTube, RuTube, Google video, Vimeo, Я.Видео и Видео.Mail.ru Вставляйте между тегами только прямую ссылку на видеоролик.
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                          0
                                          Когда будете писать комментарий, обратите внимание на кнопку «html-теги»)
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                          +1
                                          Да дело же не в тёплом ламповом, а в том, что это имперский марш, исполненный на катушке Тесла.
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                              0
                                              Да, ваше видео интересное)
                                            0
                                            Плазменные излучатели же хороши преимущественно для пищалок.
                                            И да, коронный разряд звучит лучше.
                                          +1
                                          Какой IDE (ну, или компилятор в принципе) вы используете для Launchpad? Мне тут на днях пришли два стеллариса, я пока что пробую только Code Composer Studio. Но там столько гемора со скачиванием и лицензиями что хочется чего-нибудь попроще…
                                            +1
                                            Попробуйте energia.
                                              0
                                              Выглядит тривиально до ужаса, что как раз мне и нужно… :)
                                              Правда стелларис использует совсем другой контроллер вроде, так что не понятно, заведется ли… Но попробовать можно.

                                              Спасибо
                                            +1
                                            Сразу напомнило знаменитую песню сканера:

                                              –2
                                              Торот, однозначно торт!
                                                +2
                                                В копилку:

                                                  +1
                                                  Не очень. На флоппиках звук круче.
                                                    +1
                                                    Super Mario на тесла-разрядниках )
                                                    www.youtube.com/embed/VX5V_9s0Gfw
                                                      +1
                                                      Если честно, имперский марш напоминает настолько отдаленно, что я с трудом смог с третьего просмотра опознать его.
                                                        0
                                                        chizhik.exe
                                                        Где-то валялся, Чижик-Пыжик на дисководе
                                                          0
                                                          А можно взять мотор побольше:
                                                            +6
                                                            Разработка челябинских айтишников.
                                                            0
                                                            1) Берешь любую мелодию записанную в виде частота + задержка
                                                            2) Играешь её через tone
                                                            3) Вместо динамика подключаешь что угодно где есть обмотка и магнит (я подключал обычный 80 мм кулер) и можно наслаждаться звуком. Тихим но всё же звуком.
                                                              0
                                                              А ток какой у этих сервоприводов? У чипа который стоит на launchpad слабые выходы, там обычный светодиод нельзя напрямую подключать. Спалить можно очень быстро.
                                                                0
                                                                Питание или управление? Управление там мизер. А вот когда две сервы включаются, напряжение от стабилизатора проседает так, что не хватает для питания TUSB-а.
                                                                0
                                                                Мне вот такой вариант нравится, вроде не было еще:
                                                                  0
                                                                  Нормально. Одобряю.
                                                                  0
                                                                    +2
                                                                    Когда же будет Gangnam style?)
                                                                      0
                                                                      Так есть же:)

                                                                      0
                                                                      BASCOM и MSP430?
                                                                        0
                                                                        Нет, wiring. Версия на bascom исчезла после глюка винды.
                                                                          0
                                                                          Ну а в принципе это возможно?
                                                                          Я пока совсем не в теме, но коробочки с MSP430 ждут своего часа. А с BASCOM он (гипотетически) мог бы наступить быстрее.
                                                                            0
                                                                            Неа, даже теоретически. Компилируется только под атмеловские контроллеры.

                                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                        Самое читаемое