Все начинают дружить Processing 1.5.1 и Arduino, используя библиотеку Firmata, чтобы передавать данные туда-сюда через Serial. Неплохо начинать с примера arduino_output в библиотеке processing-arduino. При поиске платы Processing'ом может возникнуть ошибка
ArrayIndexOutOfBoundsException: 0
с указанием на строку
arduino = new Arduino(this, Arduino.list()[0], 57600);
Software Freedom Day 2012 в Новосибирске собрал сотню программистов, администраторов и просто пользователей свободного ПО. В рамках этого праздника я прочитал небольшую лекцию об Arduino и провел мастер-класс. Тот, кто не смог там побывать, может посмотреть видеозапись под катом. Предупреждаю, что по техническим причинам выпал довольно большой кусок про программирование Arduino mini для работы с LCD-дисплеем (отметка 31:06), зато осталось про GSM-shield :).
Бывает так, что вы сломали bootloader у своей Arduino. Например, перезаписали его своей программой или просто попортили. При попытке залить в плату новую программу через USB-converter, аплоад зависает и вылезает вот такая ошибка:
avrdude: stk500_recv(): programmer is not responding
Не стоит выкидывать Arduino, сейчас мы разберемся, как это поправить.
В прошлый раз мы разобрались, как программировать Arduino Pro mini через USB conveter, а сегодня воспользуемся другой, более универсальной штукой - программатором USBasp. USBasp стоит намного дешевле и позволяет программировать вообще все AVR микроконтроллеры, а не только Arduino. В общем, полезная в хозяйстве вещь.
Кому-то может не хватить тринадцати цифровых входов Arduino, и для таких людей сегодня я расскажу, как превратить шесть аналоговых входов в цифровые. Нам опять потребуется немного низкоуровневой магии, но пусть вас это не пугает.
Сегодня мы рассмотрим читерский способ навешивания дофига кнопок на всего лишь один вход Arduino. Согласитесь, не классно занимать восемью кнопками восемь цифровых пинов, как мы это делали в прошлый раз. Вместо этого мы повесим их на один аналоговый вход. Я покажу фокус на примере четырех кнопок, но стоит понимать, что, теоретически, можно спокойно навесить и сотню.
Маразм крепчал, и поэтому сегодня мы будем соединять две платы Arduino через шину SPI. Сразу вас разочарую, передавать инфу мы будем только в одну сторону. Дуплексное соединение организуется чуть-чуть сложнее, чем то, что мы натворим сейчас. Но зато на простом примере разберемся, как работать с SPI не через библиотеку, а через регистры процессора. И, что главное, хорошенько изучим шину на низком уровне.
Arduino mini - это такая маленькая ардуинка. В качестве процессора в ней стоит та же самая ATmega328, только в корпусе TQFP-32. Программировать ее ничуть не сложнее, чем обычную Arduino, если использовать специальный Mini USB адаптер.
Дребезг контактов - крайне неприятная вещь, от которой нужно избавляться. Можно это делать софтверно. К счастью, нам не придется самостоятельно ручками писать алгоритм в Arduino IDE, поскольку для нас разработчики уже написали библиотеку. Знакомимся с Bounce.
Двухцветная светодиодная матрица позволяет отображать точки красного, зеленого и желтого цвета. Таким образом, можно рисовать всякие веселые разноцветные анимации. Сегодня мы как раз этим и займемся, а в качестве примера нарисуем красную спортивную Феррари, которая гоняет по трассе с ветерком.
Объединяя управляющие способности джойстика и изобразительные способности светодиодной матрицы, можно получать прикольные игрушки. Сегодня мы сделаем самое простое - точку, которая бегает по матрице при движении джойстика.
Достался мне внезапно джойстик для Arduino, поэтому сегодня время повеселиться с ним! Объектом нашего издевательства избирается трехцветный светодиод, как раз вспомним ШИМ.
У Arduino есть два типа температурных сенсоров - цифровые и аналоговые. Аналоговые имеют в своей основе терморезистор, или термистор - полупроводниковый резистор, у которого явно выражена зависимость сопротивления от температуры, и она представляет собой гладкую функцию. Соответственно, измеряя его сопротивление, можно измерять температуру среды.
Широтно-импульсная модуляция (ШИМ, PWM) - веселая штука, и особенно прикольно с ее помощью управлять сервомоторами, однако сегодня мы применим ее к трехцветному светодиоду. Это позволит нам управлять его цветом и получить некое подобие красоты.
Сегодня у нас в студии часовой 7-сегментный дисплей с четырьмя цифрами и двоеточием посередине. Чтобы его завести, никаких революций совершать не придется - ведь в прошлый раз мы уже подробненько разобрали динамическую индикацию на тройном дисплее.
Сейчас нам понадобится всего лишь подключить один новый проводок к старой схеме и переключить 4 других. Программку тоже модифицируем совсем немного.
Мы уже научились управлять одинарным и двойным 7-сегментником (и даже ими одновременно) по SPI. Таким образом, двигаясь step-by-step, мы подобрались к тройному 7-сегментному дисплею. Здесь нас ожидает принципиально новый способ получения "картинки" на дисплее - нам придется делать своеобразную развертку. Стоит называть это динамической индикацией.
В этой статье мы узнаем, как работать с АЦП Arduino и как обработать нажатие кнопки, напридумываем новых последовательностей для анимации на двойном 7-сегментном дисплее и вспомним замечательную штуку - рандомизатор. Собрав все эти и полученные ранее знания, повеселимся по полной!
В этой статье будут рассмотрены вопросы параллельного и последовательного подключения нескольких ведомых устройств к шине SPI, последовательного подключения сдвиговых регистров, работы с двойным 7-сегментным дисплеем, реализации независимых процессов в Arduino. В итоге, мы сделаем схемку, в которой по двойному 7-сегментнику будет бегать змейка, а на другом, одинарном, в это время будут тикать секунды.
В этой статье будет проведено краткое знакомство со сдвиговым регистром, семисегментным дисплеем и шиной SPI, будет напомнен перевод из двоичной системы в шестнадцатеричную. В итоге, мы напишем программу для Arduino, которая будет управлять семисегментным дисплеем через сдвиговый регистр, подключенный к SPI.