Jeffrey Cross
Jeffrey Cross

Noise Toy - краш-курс у програмуванні

Комплект Noise Toy є цікавим у використанні, але якщо ви, як я - залиште, що маленький порт "PROGRAM" невикористаний зведе вас з розуму.

З невеликим знанням програмування AVR за деяким задоволенням з Arduino, я навчила себе, як завантажувати і зламати вихідний код для нього. Прочитайте далі, щоб побачити, як було зроблено справу, і прослухати приклад звуку.

Пов'язані:

  • Як створити шумову іграшку
  • Шум Іграшка-в-коробці

Частина 1 - Апаратне зловживання

Якщо ви ніколи раніше не запрограмували мікроконтролер, перспектива може здатися трохи складною - але це дійсно не так складно, і вивчення цього процесу відкриває тонну нових опцій. (Якщо ви вже знаєте, як, ви можете перейти до частини 3, для відповідних файлів Noise Toy)

Noise Toy використовує мікроконтролер Atmel AVR (ATTiny85, щоб бути конкретними). Loud Objects розробили комплект так, щоб чіп міг бути перепрограмований, не виймаючи його з пристрою, або "in-circuit". Фактично, Toy може розглядатися як проста плата-мішень AVR, на якій мікроконтролер може отримати новий код з послідовної передачі даних ПК.

Послідовні порти досить рідкісні на більшості нових машин (і не існують на комп'ютерах Mac), тому більшість людей використовує USB. Для того, щоб перетворити дані USB у щось більш «серійне» для нашого маленького чіпа, ми використовуємо системний програміст (короткий ISP). Дизайнери Noise Toy розробили заголовок програми PROGRAM для взаємодії з певним провайдером Інтернет-послуг - AvrUsb500 Tuxgraphics. У мене не було жодного з тих, хто мав під рукою, але мав інший провайдер, а саме USBTinyISP від ​​Adafruit Industries. Для того, щоб використовувати його з іграшкою, потрібно було трохи адаптуватись.

USBTinyISP використовує 6-контактний роз'єм, ще один контакт, ніж AvrUsb500. Щоб зрозуміти, які шпильки робили те, я порівнював документацію з обох пристроїв і посилався на таблицю даних ATTiny85.

Виявляється, додатковий штифт на USBTiny надає додаткову потужність для плати, в той час як AvrUsb500 припускає, що ваш чіп вже буде працювати під час програмування.

Маючи це на увазі, я відключив додатковий контактний висновок USBTinyISP, перемістивши простий перемикач всередині пристрою. Використовуючи інформацію, зібрану з цих pin-порівнянь, я склав швидку схему, що описує, як мій USBTiny повинен підключатися до заголовка PROGRAM іграшки.

Для правильного підключення можна використовувати твердотільний або дротяний дріт - для більш постійного вирішення я зробив маленький адаптер з перфоратора -

Не надто охайний, але це робить роботу.

Частина 2 - Програмне забезпечення веселощів і процесу програмування

Після з'ясування інтерфейсу вам знадобиться деяке програмне забезпечення для виконання фактичного програмування. Я завантажив і встановив AVR MacPack на моєму PowerBook (ті з вікнами можуть використовувати WinAVR) Потім я познайомився з основним процесом програмування через зручні підручники на Ladyada.net.

Додатковий вихідний код Noise Toy можна завантажити з сайту Loud Objects. Ці файли є .c і повинні бути скомпільовані як .hex, перш ніж записуватись на чіп. Для цього вам знадобиться "makefile", що визначає деякі необхідні змінні. Я знайшов простий шаблон makefile на сайті Psychogenic і оновив його необхідними деталями -

назва мікроконтролера:

MCU = attiny85 PROGRAMMER_MCU = t85

Назва проекту:

PROJECTNAME = mynoisetoyproject

ім'я вихідного файлу .c:

PRJSRC = mynoisetoyproject.c

Відредагований файл makefile можна завантажити тут.

Зберегти новий файл make-файлу як (ви здогадалися)makefile"І помістіть його в нову папку"mynoisetoyprojectВ межах Документи папки.

Dave_matthews_band.c Loud Objects звучав як головна мішень для експериментів, тому я відкрив його у своєму улюбленому текстовому редакторі і пішов на роботу. Переглядаючи код, я помітив, що один біт виглядає знайомим. Цікаво, я замінив всі екземпляри Випадковий () і замінити їх 0 - потім зберегти файл як "mynoisetoyproject.c" у Документи / mynoisetoyproject.

Після того, як папка та файли були корисні, я продовжив наступні формальності -

Відкрийте програму Термінал і введіть ці рядки:

cd Документи / mynoisetoyproject роблять все зробити mynoisetoyproject.hex

Підключіть інтернет-провайдера до комп'ютера через USB, потім до шумової іграшки та введіть наступне -

avrdude -c usbtiny -p t85 -U спалах: w: mynoisetoyproject.hex

Після того як термінал показав швидкий процес завантаження, я відключив іграшку і дав моєму маленькому демо-рубати слухати. Дещо передбачувано, я почув менш випадкову версію «dave_matthews_band.c» - я називаю це «chris_mattews_band»

Слухайте chris_matthews_band

Тільки пара змін в оригінальній програмі зробила істотну різницю в звучанні. Якщо ви працювали з Arduino, перш ніж ви, можливо, розпізнаєте мову в цих вихідних файлах. Цей тип злому здається хорошим способом дізнатися більше про кодування взагалі - о, і це весело!

Частина 3 - Файли і такі

Ось деякі зразки з інших програм на сайті Loud Objects -

  • birdlane.mp3
  • stereo.mp3
  • dave_matthews_band.mp3
  • Ike.mp3
  • kunrnd.mp3
  • rptrnd.mp3
  • salvation.mp3

У випадку, якщо ви не хочете, щоб зламати / писати будь-який код, ось .zip всіх оригінальних програм, попередньо скомпільованих як .hex файли для завантаження - Шістнадцятикутний пакет Noise Toy

А ось редагований файл makefile і приклад hack - mynoisetoyproject makefile

Я сподіваюся, що це може допомогти деяким прорватися льодом з розробкою мікроконтролера і отримати додаткову користь від простого, але дуже корисного набору. Якщо ви пишете / зламаєте хорошу програму для набору, обов'язково поділіться нею в коментарях нижче!

МСВ

Поділитися

Залишити Коментар