Типичная радиоаппаратура работает как-то так. Есть передатчик (собственно, сама аппа) и приемник. Приемник с передатчиком общаются по какому-то своему протоколу, часто закрытому. Приемник декодирует этот протокол и передает положение ручек на аппаратуре дальше, например, полетному контроллеру (ПК) квадрокоптера. ПК и приемник общаются по своему протоколу, который должны понимать оба. В этом месте большой популярностью пользуются PWM и PPM. Есть и другие варианты, в частности, SBUS, DSM2 и DSX, но в рамках данной статьи мы рассмотрим только PWM и PPM.
Существует немало GPS-модулей и шилдов для Arduino, но многие из них довольно недешевы. Если вам в вашем проекте по каким-то причинам нужен GPS, самым дешевым (не в ущерб качеству!) из известных мне вариантов будет модуль на базе чипа NEO-6M. На AliExpress такие модули продаются за 230 рублей (4 $) с учетом доставки в Россию. Давайте же попробуем разобраться, как с ними работать.
Ранее в заметке Научился выводить текст на ЖК-индикатор из Arduino мы с вами разобрались, как работать с текстовыми экранчиками 1602. Всем-то эти экранчики хороши, но требуют для подключения больно уж много проводов. Поэтому на практике их часто используют через адаптер с I2C интерфейсом на базе чипа PCF8574. Адаптеру нужно всего лишь 2 провода, не считая питания. Всего к I2C шине может быть подключено до 127 устройств, используя все те же 2 провода. Давайте же разберемся, как работать с такими адаптерами.
Радиомодулями с UART-интерфейсом в наше время никого не удивишь. Но главная проблема с такими модулями заключается в их цене. Так, например, в России XBee стоит порядка 3000 рублей (~50$) за один модуль, а модулей обычно нужно два. Еще есть APC220, который стоит 1500 рублей за пару. Это уже намного лучше, но все равно дороговато. Так вот, а модуль HC-12, о котором пойдет речь в этой заметке, предлагает полностью такой же функционал, но стоит всего лишь 150 рублей. Слишком хорошо, чтобы быть правдой? Давайте проверим!
Ранее в заметке Мой первый радиоуправляемый робот на Arduino мы управляли гусеничным роботом при помощи пары устройств NRF24L01. Если помните, для этого приходилось использовать дополнительную Arduino с Joystick Shield. Притом вся эта конструкция получалась довольно громоздкой и неудобной, особенно если учитывать, что джойстику нужно от чего-то питаться, а также тот факт, что NRF24L01 для работы нужен дополнительный переходник со стабилизатором напряжения. Поэтому сегодня мы рассмотрим альтернативный подход, заключающийся в использовании Bluetooth-модуля HC-05.
Ранее в этом блоге было рассмотрено несколько ЖК-дисплеев / индикаторов и их использование из Arduino. Существенным их недостатком является довольно большой размер, а также вес. Зачастую это не является проблемой. Например, если вы собираете DIY паяльную станцию в самодельном корпусе, там как-то без разницы, какого размера дисплей. С другой стороны, если вам нужен дисплей, скажем, на квадрокоптере, тут вес и размер становятся критически важными. Поэтому сегодня мы научимся работать с очень маленьким и легким экранчиком от телефона Nokia 5110.
В заметке Мой первый радиоуправляемый робот на Arduino мы познакомились с электродвигателями и научились управлять ими при помощи микроконтроллера. Серводвигатель (он же сервопривод, сервомотор или сервомашинка) — не менее полезное механическое устройство. В отличие от электродвигателя, который постоянно крутится, или, если питание не подано, не крутится, серводвигатель умеет поворачивается на заданный угол (часто от 0 до 180 градусов) и оставаться в таком положении. Просто так управлять одним серводвигателем не очень-то интересно, поэтому давайте сразу рассмотрим пример использования четырех серводвигателей в робо-руке MeArm.
Мало что может сравниться по крутизне с разработкой высоконагруженных веб-проектов типа Facebook или ковырянии ядра Linux. В качестве примечательного исключения можно привести разработку самопальных роботов у себя дома. И знаете, что? Оказывается, полученных нами на данный момент знаний в электронике и программировании микроконтроллеров уже более чем достаточно для создания первого робота!
Трудно переоценить удобство беспроводной связи. Можно управлять самодельными роботами, передавать на расстоянии звук, да и вообще любую информацию, и все это безо всяких ненужных проводов. В мире Arduino существует множество устройств беспроводной связи, вспомнить хотя бы XBee, APC220 / APC230, а также всевозможные Bluetooth и Wi-Fi модули. Но сегодня мы рассмотрим, пожалуй, одно из самых дешевых и широко распространенных решений на базе чипа NRF24L01.
Ранее мы научились использовать текстовые ЖК-индикаторы из Arduino. Это, бесспорно, очень классные устройства. Однако выводить с их помощью можно в основном только текст и какую-то простую псевдографику, например, прогресс бар. Для вывода же полноценной графики предназначены другие устройства — ЖК-матрицы. Сегодня при помощи такой ЖК-матрицы мы соберем термометр, который строит графики температуры.