Arduino: для детей, взрослых и аудиоаппаратуры :) - Версия для печати +- Audio Perfection Forum (https://www.audio-perfection.com/forum) +-- Форум Цифровая обработка сигналов (https://www.audio-perfection.com/forum/forumdisplay.php?fid=17) +--- Форум Применение микроконтроллеров (https://www.audio-perfection.com/forum/forumdisplay.php?fid=31) +--- Темы: Arduino: для детей, взрослых и аудиоаппаратуры :) (/showthread.php?tid=110) |
Arduino: для детей, взрослых и аудиоаппаратуры :) - s3t - 09-19-2014 Помойму в ветке будет проще, чем в чате. Чат - это река. Мои познания в программировании МК, низкоуровневого программирования, а так-же программирования на си - это все для меня довольно далеко. Но. Мне это не мешает, с переменным успехом, пользовать ардуину )) /ну не так чтоб пользовать, ну.../. http://arduino.cc/ Что такое ардуино? Это концепция "микроконтроллеры в массы", ориентировано на человека неподготовленного, но желающего что-то сделать. Звонок кодовый в квартиру, ночник с лэдовой RGB подсветкой, показывалку температуры часов и влажности, робота.... и прочее прочее коневодство. В концепции имеются - програмное обеспечение ввиде проги, которая позволяет писать код и заливать его в МК одним нажатием кнопки. - язык программирования - си, но не стоит пугаться, нам вся его моща не нужна, а то что будем пользовать - просто и маленькое ) Множество примеров и библиотечек все сделают за нас, нам останется это скрутить вместе :) - железо. это разнообразные платки, с /до недавних пор/ хиленьким МК, с минимальной обвязкой "лишь бы работало", и с программатором USB. Внешнее питание опционально. Работает и от USB. Т.е. весь цикл разработки сводится к написал чтото, воткнул в USB ардуинку, нажал на пимпочку в проге - и ардуинка начала выполнять написанный код. Ознакомиться с железом можно тут - http://arduino.cc/en/Main/Products классические представители - http://arduino.cc/en/Main/ArduinoBoardUno http://arduino.cc/en/Main/ArduinoBoardMega2560 Покупать можно и на великой барахолке, там дешевле. Фильтровать по внешнему соответствию + соответствию проца. это гарантирует покупку аналога )) Их можно укомплектовать так называемыми щилдами (shield) - платка с коннекторами, садящаяся поверх ардуинки в коннекторы, и обеспечивающая какую-то дополнительную железную функциональность - драйверы моторчиков, LAN, вайфай и т.д. Вот. Так с чего начать? Ммммм, не знаю ))) Вот тут лежит мой код, который ловит ИК сигнал, управляет РГ и показывает это на экранчике 4х20 символов. https://www.dropbox.com/sh/14znz3kdoa5qdgo/AABr7N4f6O-BpgiskfQH4G52a?dl=0 Я на самом деле перемудрил в сий прошивке, т.к. был нацелен сделать разнофункциональное устройство, умеющее интерфейситься к разным устройствам ввода/вывода, а-ля ПГА и разного вида релюшные аттенюаторы, экранчики разного размера, разные управлялки - кнопочками, ду, и т.д... Все это предпологалось конфигурировать блоками "IFDEF"/DEFINE, первые проверяют на задефайниность константы, вторые - дефайнят константу. эти блоки проверяются на уровне компайлера, и если не задефайнена константа - то из итогового кода исключается весь блок в IFDEF. таким образом можно писать общий код, и подключать/отключать его куски в зависимости от нужд конкретной реализации. Например если у нас не задефайнен ЛЦД экранчик, то его не надо инициализировать и не надо на него ничего выводить. хреновый из меня учитель )))) ЗЫ, там у них появились платки с АРМ-кортексом, мощи в них поболее... это интересно ) RE: Arduino: для детей, взрослых и аудиоаппаратуры :) - s3t - 09-19-2014 Для того, чтоб скомпилить, нужно 1. скачать саму прогу, http://arduino.cc/en/Main/Software - берем Arduino 1.0.6, т.к. 1.5.7 выглядит подозрительно, особенно с надписью БЕТА :) 2. попробовал сам себе скомпилировать мою же програмку - получил какой-то левый ошибка. Вобщем 1.0.6 поставляется с глюкнутой библиотечкой IR приемника. Нужно скачать свежую библиотечку отсюда https://github.com/shirriff/Arduino-IRremote (довноад зип пимпочка справа), и папку которая в зипе положить в C:\Program Files (x86)\Arduino\libraries при этом удалив из C:\Program Files (x86)\Arduino\libraries папку "RobotIRremote". тогда все компилится ) Если что-то не так, то следует выбрать тип платки ардуины, для которой оно будет компилиться. в менюшке Tools > Board. Наверное следует мне сделать проектик простой, чтоб постепенно на страницах форума его развивать ) RE: Arduino: для детей, взрослых и аудиоаппаратуры :) - flipper - 09-20-2014 Да-да-да RE: Arduino: для детей, взрослых и аудиоаппаратуры :) - nazar - 09-20-2014 хз, как по мне ардуино это бред) RE: Arduino: для детей, взрослых и аудиоаппаратуры :) - begemot - 09-20-2014 Назар, ни тебе ни мне это практически не нужно. Мне, например, не интересно платить за "overhead" заключающийся в встроенных средствах связи с USB, дополнительных размерах платы, определённых ограничениях в железе... Но я в принципе несколько раз уже ковырял MK когда возникала необходимость. И я всегда ориентирован на задачи "реального времени", т.е. перед выбором мне всегда интересно что и за какое время эта штука может сделать. Плюс, ни для меня ни для тебя нет проблемы нарисовать схемку на базе МК, ориентированную на какую-то конкретную задачу. Хотя я тут недавно столкнулся с тем что АТМЕЛ не правильно описывал конфигурацию для работы с какими-то последовательными протоколами и пришлось перекидывать пины. И конечно, каждый раз надо просмотреть страниц так 200-500 описания, прежде чем что-то нарисовать. А теперь представь, человек не сталкивался с этими вещами и вообще далёк от вопросов проектирования электронного железа. Но может взять паяло и перепаять несколько проводов. И никогда не работал с такими штуками. У меня, например, каждый раз перед началом этих игрищ (я занимаюсь такими делами очень редко) бродит дикая мысль-а если что-то не так, а вдруг программатор не будет программировать, а вдруг компилятор не скомпиллит что-то потому что библиотеки не те или что-то ещё не так. И т.д. и т.п. А здесь всё очень просто, USB верёвка и стандартная борда. И всё вроде как есть. Начать гораздо проще. Плюс это тот-же С с набором библиотек рассчитанных на "чайников". Что удобно. Вспомни всякие устройства типа "Basic Stamp". Почему любителям он так нравился? Потому что очень просто начать. А это значительно мощнее. RE: Arduino: для детей, взрослых и аудиоаппаратуры :) - flipper - 09-20-2014 Вот именно, я, например, совершенно нифига не понимаю в МК, и как с ними работать, мои знания исчерпываются простейшей логикой, но сделать что-то хочется! :) Сколько ж мне, взрослому уже мужику, нужно времени-денег убить, чтобы научиться с нуля тому, что в 16 вкатило бы за неделю? Правильно, столько, сколько у меня нет :) RE: Arduino: для детей, взрослых и аудиоаппаратуры :) - nazar - 09-20-2014 Я последний раз програмировал еще студентом, тогда конечно ничто не ограничивало это, кодил как самолет, лета все таки) Но вот год или два назад мне надо было заюзать МК чтоб с тойже 8804 разобратся (а это пипец еще тот), я тож посмотрел на андруино, как глянул на синтаксис понял что это еще больше запутывает, а так для АВР обычная Си шка да и всех делов, вспомнил некоторые моменты синтаксиса и всех делов, примеров вагон, народ и функции готовые выкладывает итд Написал функции програмного спи за пару дней, проверил в симуляторе итд Так что я действительно не вижу смысла в Ардуино, если б там была ИДЕ как в Хайасме для програмирования тогда да, для начинающего (и далеко не только) это был бы идеал, а так не понимаю я идеи ихней С АРМом лучше б че придумали попроще, а то меня все стремает начать им заниматся) RE: Arduino: для детей, взрослых и аудиоаппаратуры :) - nazar - 09-20-2014 А програматоры итд это да, мне както столько нервов сьел, да что тут говорить, один глючный проц тоже, фьюзы не прошивал RE: Arduino: для детей, взрослых и аудиоаппаратуры :) - s3t - 09-20-2014 Итак, продолжим. Буду писать пример кода, зачем он нужен и что он делает. постепенно в него буду добавлять фичь. Варнинг, часть, если не все, будет нагло скопипащено отовсюду ))) Пример номер ноль. http://arduino.cc/en/Tutorial/BareMinimum PHP код: void setup() { Что же тут написано? Это две функции, которые вызываются ардуиной. Первая (setup) вызывается в момент включения ардуины, только один раз. В нее следует ложить код инициализации вякого разного - выставлять тип ножек (вход/выход), запускать инициализацию всяких библиотечек, просчитывать что-то один раз... Вторая (loop) - запускается в цикле, т.е. процессор постоянно в ней крутится. Тут мы будем складывать рутинную работу. А-ля считывание кнопки, если изменилась = делаем что-то. Закончили делать - цикл повторяется заново. Синтаксис - void loop() { } void - тип данных, возвращаемых функцией. войд - нифиха или что-то подобное. луп - имя функции в скобочках круглых - можно положить параметры, что функция ожидает получить. в данном случае их нет. между фигурными скобочками складываем наш код. все, что находится в строчке после "//" - комменты кода, ниначто не влияют. Туда для себя можно ставить заметки. Аналогично работает комбинация из /* */ /* много строчный коммент */ А, из полезностей комментов - ими можно закомментить кусок кода, который мы пока не хотим компилировать. Отключит строчку, либо целый кусок. В чате пробегала задача работы с пультиком ) Ее мы и сделаем. Ардуино уже поставляется с библиотечкой ИК интерфейсинга. И с кучей примеров ее применения. Возьмем самый простой, берем в меню - File>Examples>Arduino-Remote-IR-Master>IRrecvDemo получаем следующий код: PHP код: #include <IRremote.h> // <<<< Подключает файл библиотечки Итог - мы, после заливки в МК данного кода, получим в Serial Monitor-е коды кнопок пульта. Со стороны железа - потребуется какой-то (понятья не имею какой) ик-приемник (они на разные частоты делаются, возможно с разным пинаутом... но мне два раза везло с ними, по типичной схемке "как на картинке"). Картинка - тут, http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html http://arcfn.com/images/ir-schematic.png Vcc и GND берутся с гребенки на платке ардуинки, там-же находится первый попавшийся свободный вход. Желательно не трогать первые два входа/выхода, т.к. туда прикручены какие-то плюшки на плате. Вуаля, в компьютер поступают ИК коды. Програмка полезна, т.к. позволяет нам собрать список кодов, и их затем использовать при приеме и назначении "действий" в МК. Пример 2. Включение/выключение светодиода (усилителя, лампочки, вентилятора...) средством пульта. http://arduino.cc/en/Tutorial/Blink PHP код: #include <IRremote.h> Ту би континьюед :) RE: Arduino: для детей, взрослых и аудиоаппаратуры :) - s3t - 09-20-2014 Я тож хочу АРМом заняцца, уже платку заказал оцтойную )) http://www.ebay.com/itm/141392937932 За такую цену грех не купить ))) попробую на ней фифо забацать а-ля ДжКилл, хотя-бы для 16бит 44100, большего мне и не нужно... Ну вот возьмите ее стоимость - 6$. уже готового изделия. Самому делать будет дороже и дольше ))) RE: Arduino: для детей, взрослых и аудиоаппаратуры :) - begemot - 09-20-2014 Так у http://leaflabs.com/ (а это их клон) какие-то трудности с IDE. Страница с IDE не открывается. В чём для них писать? RE: Arduino: для детей, взрослых и аудиоаппаратуры :) - s3t - 09-20-2014 да, ошибочка с моей стороны. отписал продавцу, может отменит. Прийдется искать другие варианты :) и покупать дебаггер. |