Chiptune на Arduino

Автор: admin G+   Дата: 2 февраля 2011



chiptuneВсем привет. После приобретения чудесной платы Freeduino, разные творческие мысли стали приходить в голову намного чаще. И вот, однажды я подумал, что раз ATmega является 8-битным микроконтроллером, да еще и имеет в наличии ШИМ выходы, то почему-бы не заставить играть трекерную музыку (в духе комондор, спектрум, денди), иначе ее еще называют chiptune или просто 8bit. Имеено так родилась идея данного проекта на Arduino.

Естественно, в данных приставках использовались продвинутые генераторы сигналов различной формы, но наша задача стоит не изобрести заново такой генератор (хотя я видел такую плату для ардуино в продаже), а добиться подобного штатными средствами.

Раз порты микроконтроллера имеют ШИМ модуляцию, то как вы помните, мы можем изменять на них значение напряжения от 0 до 5В, что нам и потребуется для генерации музыки.
Сперва я присматривался к функции tone() и использовал стандартный скетч PlayMelody, который проигрывает скушную и маленькую мелодию. Думаю вы тоже пробовали запускать ее, но это вам не особо понравилось.

Далее я обыскал пол-интернета в поисках более-менее разумного решения, но все упиралось в tone() и ничего толкового небыло. Но в один из дней мне улыбнулась удача, и на одном из американских сайтов нашел занятную ссылочку на блог, в котором чувак реализовал мою мечту. Правда у него был всего-навсего один пример, что несомненно печально, но зато я удовлетворил свое любопытство.

Вот оригинальная версия того архива - Скачать. Все, что нужно сделать, это расположить папку bassdll в arduinohardwarelibraries и залить предложенный в примерах скетч.

Далее втыкаете 3 маленьких динамика в 12,11,10 порты, и наслаждаетесь. В моем случае у меня нашлось 3 динамика, один из которых к сожалению не работал, пришлось заменить его дешевым пьезо-динамичком из валявшихся на полке часов-пейджера (если кто помнит такие :))



В общем эксперементы с Arduino (Freeduino) продолжаются, и скоро будет много всего интересного.
P.S. пора покупать макетную плату, ибо так жутко неудобно. И вам советую тоже :)


Запись имеет метки: ,

Посмотрите еще:

Если вам понравилась (или не понравилась) статья Chiptune на Arduino, пожалуйста выскажите свое мнение о ней. Вы можете обсудить эту статью на нашем форуме
Мы будем очень рады, если вы присоединитесь к нашему дружному сообществу! Ведь вместе мы сможем делиться разными советами, техниками и руководствами, и только объединившись мы сделаем этот мир чуточку светлее :)

Комментарии

  1. alecks_2 пишет:

    функция tone позволяет играть не только скучные мелодии, на что фантазии хватит, вот тут пример с скетчем реализации функции tone для RTTTL мелодий, я такими еще с Nokia 1100 баловался:
    http://code.google.com/p/rogue-code/wiki/ToneLibraryDocumentation
    а если хочется серьезного воспроизведения без доп.шилдов, тогда сюда : http://pole.dyndns.info/?p=1391
    тут воспроизведение массивов, сделанных из 8битных wav’ок.



Оставить комментарий или два

До того, как вы отправите комментарий