Как стать автором
Поиск
Написать публикацию
Обновить
82.61

Arduino *

Платформа для создания автоматики

Сначала показывать
Порог рейтинга
Уровень сложности

Работа с Arduino

Время на прочтение9 мин
Количество просмотров115K

Как это было?


Когда у меня возникло желание вести разработку под Arduino, я столкнулся с несколькими проблемами:
  • Выбор модели из списка доступных
  • Попытки понять, чего мне понадобится кроме самой платформы
  • Установка и настройка среды разработки
  • Поиск и разбор тестовых примеров
  • «Разборки» с экраном
  • «Разборки» с процессором


Для решения этих проблем я просмотрел и прочитал довольно много разных источников и в этой статье я постараюсь сделать обзор найденных мною решений и методов их поиска.

Выбор платформы


Перед началом программирования под железяку требуется в начале ее купить. И тут я столкнулся с первой проблемой: оказалось, что разных *дуин довольно много. Тут есть и широкая линейка Arduino и примерно такая же широкая Freeduino и другие аналоги. Как оказалось, большой разницы, что именно брать, нет. То есть одни из этих устройств чуть быстрее, другие чуть медленнее, одни дешевле, другие — дороже, но основные принципы работы практически не отличаются. Отличия появляются практически только при работе с регистрами процессора и то я далее объясню, как по возможности избежать проблем.
Читать дальше →

Arduino: Робо-рука на двух сервоприводах

Время на прочтение4 мин
Количество просмотров105K
Никогда раньше не имел дело с микроконтроллерами, поэтому решил начать своё знакомство с Ардуино. Понадобились базовые знания С/C++ и немного электроники.

Цель: “При помощи Arduino Uno и двух сервоприводов (9g SG90 Mini Micro Servo) написать на листе бумаги любое словосочетание”

Читать дальше →

Оптимизация преобразования HSV в RGB для микроконтроллеров

Время на прочтение3 мин
Количество просмотров43K

В качестве хобби я занимаюсь светодиодным реквизитом и столкнулся с интересной задачей — показать что-то «красивое» на управляемой светодиодной ленте вместо традиционной радуги, не тратя на это половину памяти микроконтроллера и значительную часть процессорного времени.

Пиксели светодиодной ленты отличаются от пикселей экрана отсутствием фоновой подсветки. Чёрный пиксель не будет выглядеть «чёрным» — он сольётся с фоном, а в движении фактически будет «прозрачным», но если добавить хотя бы единицу к любому цветовому каналу — этот пиксель будет светиться. В свою очередь, «серый» пиксель от белого будет отличаться только яркостью и будет казаться более тусклым, но всё же именно «белым».

Хранится и передаётся цвет пикселя в 24-bit RGB, но значительная часть этого цветового диапазона (ненасыщенные и яркие цвета) не слишком репрезентабельна в отдельных светодиодах. Кроме того, строить симпатичные градиенты в модели RGB не получится — смешивание RGB-цветов даёт не интуитивно-очевидный результат (жёлтый + синий = серый, а хочется — зелёный). Модели HSL и HSV подойдут лучше, но стандартные реализации используют нецелочисленную арифметику. Удобно будет использовать модель, которая сможет компактно хранить параметры цвета и быстро считать их RGB-значения, не используя числа с плавающей запятой и деление на произвольное число — речь идёт о микроконтроллере и сложные алгоритмы нам ни к чему, а деление (кроме небольших степеней двойки) и вовсе противопоказано.
Читать дальше →

Свежий взгляд на микроконтроллеры

Время на прочтение2 мин
Количество просмотров72K
Этот короткий пост может слегка напомнить некое исследование рынка по теоретической заметке "Микроконтроллеры устарели?".


На исследование микроконтроллеров и готовых плат натолкнула одна из небольших поделок, над которой сейчас работаю. В частности, необходим довольно компактный контроллер с 20 входами/выходами, и позволяющий выступать в роли ведомого USB устройства. Первый взгляд упал на Teensy, довольно компактный, на чипе Atmega32U4. Смутила только цена, $24 за устройство с распаянными ножками плюс доставка. Всего лишь чуть менее, чем вдвое дешевле, чем мне обошёлся, заказанный в апреле и пришедший лишь сегодня, Raspberry model B (ура!).
Цены на Arduino, Propeller также неприятно удивили.
Собственно, посетила мысль просто поставить сам чип на печатную плату и не заморачиваться с отдельным контроллером, но и Atmega32U не дёшев, около 4 евро за штуку (32U2) 5.5 евро за 32U4, и цены на них не снижаются, а, наоборот, растут.

С AVR'ами серии USB (90USB, 8U. 16U. 32U) смущает ещё то, что те пробные прошивки, что я делал по примерам, занимали около 18КБ, в основном занимаемые кодом работы с USB (LUFA/какое-то доморощенное от Teensy), а флеш памяти в половине этих устройств уже меньше. Что там с потреблением оперативной памяти, вообще сказать тяжело, хватит ли 1КБ? Без какого-то либо опыта оптимизации кода на C лезть в эти дебри совершенно не хотелось.

И тут внезапно

Роботизированный бас на Atmel ATMega328 и Arduino IDE

Время на прочтение1 мин
Количество просмотров72K


Весьма интересный проект был представлен на днях студентом из Новой Зеландии. Его роботизированный бас (он так и называется, MechBass), аккомпанирует для известных произведений. Сам MechBass контролируется посредством MIDI, при этом он играет очень точно, практически без ошибок.

В качестве платформы использованы микроконтроллер Atmel ATMega328 и Arduino IDE. Основа — алюминиевая, достаточно прочная. Само собой, робот способен играть не только то, что мы слышим (и видим) на видео ниже. Для желающих создать такое же устройство, приводится подробнейшая инструкция в pdf.

И да, композиция, используемая для демонстрации — Muse, «Hysteria».

Mozilla запускает Codebender — среду разработки для программинга микроконтроллеров

Время на прочтение1 мин
Количество просмотров26K
Цель проекта Codebender — создать удобную облачную платформу для программирования микроконтроллеров. За последние несколько лет создание устройств на основе микроконтроллеров стало гораздо более доступным и популярным делом. Сейчас не проблема найти подходящий контроллер со всем необходимым железом — вокруг Arduino уже сформировалась внушительная экосистема. А вот с софтом пока дела обстоят хуже. Обычно для написания, отладки и прошивки встроенных программ используются нативные приложения, которые работают не на всех платформах и часто имеют совершенно не дружественный интерфейс. Codebender — это работающий в браузере редактор кода c возможностью проверки его корректности и прошивкой устройств через USB или Ethernet.
Читать дальше →

Многоканальный программный ШИМ в AVR

Время на прочтение5 мин
Количество просмотров136K
Что такое ШИМ и как он работает особо подробно расписывать не буду, информацию без труда найдёте на просторах интернета. Коснусь лишь общих понятий. ШИМ — это Широтно-Импульсная Модуляция, (по-английски PWM — Pulse Width Modulation) уже из самого названия ясно, что здесь что-то связанное с импульсами и их шириной. Если изменять ширину (длительность) импульсов постоянной частоты, то можно управлять, например, яркостью источника света, скоростью вращения вала электродвигателя или температурой какого-либо нагревательного элемента. Обычно, именно с помощью ШИМ микроконтроллер управляет подобной нагрузкой. Микроконтроллеры имеют аппаратную реализацию ШИМ, но, к сожалению, количество аппаратных ШИМ-каналов ограничено, например, в AТmega88 их аж шесть штук, в ATtiny2313 — четыре, в ATmega8 — три, а в ATtiny13 только два. В AVR ШИМ-каналы используют таймеры и их регистры сравнения OCRxx. Изменяя их содержимое и задавая параметры таймеров, в зависимости от задач, можно управлять состоянием, связанного с регистром, выхода — подавать на него 1 либо 0. То же самое можно организовать программно, управляя любым выводом контроллера, а главное, реализовать большее количество ШИМ-каналов, чем имеется на борту аппаратных. Практически, количество каналов ограничено лишь количеством ножек-выводов микроконтроллера (по крайней мере, если говорить о семействах Mega или Tiny). Как оказалось, алгоритм довольно прост, но у меня ушло некоторое время на его понимание и полное осознание.
Читать дальше →

leOS — многозадачное ядро для Arduino

Время на прочтение1 мин
Количество просмотров31K
Итальянский разработчик Леонардо Милиани выложил в открытый доступ исходники leOS (little embedded operating system) – маленького многозадачного ядра для Arduino. В своем блоге он пишет:
To be honest, it should more correct to say that leOS is actually something that is halfway a simple prototype of an real-time operating system (RTOS) and a scheduler. [...]
leOS can run simple tasks that don’t require excessive CPU time but it can be useful in all of those situations where the user wants to let a task run itself out of the main loop.

Ядро leOS обеспечивает диспетчеризацию вызовов пользовательских функций согласно заданным временным интервалам. Для этого leOS использует аппаратный Timer2 для отсчета интервалов между вызовами пользовательских функций, поэтому теряется доступ к функциям ШИМ на пинах D3 и D11. В ядре используется 64-битный счетчик, так что переполнение планировщика произойдет только через 584 942 417 лет.
Читать дальше →

Как рождаются Arduino

Время на прочтение4 мин
Количество просмотров82K
Недавно я имел удовольствие побывать на заводе по производству Arduino.

image

Arduino производится в Скарманьо, маленьком городе недалеко от заводов Olivetti на окраине Турин в Италии.
Вся забота по производству печатных плат, установке компонентов и распространения лежит на плечах этого городка. Я был в восторге от увиденного и хотел бы поделиться некоторыми фотографиями.
Изюминкой моей поездки был System Elettronica, завод по производству печатных плат для Arduino.
Читать дальше →

Subaru и Arduino: протокол SSM1. Рукопожатие

Время на прочтение4 мин
Количество просмотров45K

Исходные данные




Приехала ко мне недавно плата под названием Carduino Nano v7. И как-то так вдруг совпало, что примерно в это же время на панели своего авто я с удивлением обнаружил горящую лампочку Check Engine. «Это жжжжжж неспроста» — подумал я, и углубился в поиски. Оказалось, что ошибки можно прочитать без дополнительных устройств — самодиагностика в Форестерах очень проста и доступна любому. Причем здесь тогда Arduino?
Читать дальше →

Альтернатива Arduino от Texas Instruments за $4.30

Время на прочтение2 мин
Количество просмотров77K
Как известно, конкуренция среди производителей микроконтроллеров весьма высока. Каждый старается завлечь потребителей низкой ценой и расширенным функционалом своих камней.

Компания Texas Instruments, для продвижения в массы своих контроллеров MSP430, предлагает дешевую ($4.30) отладочную плату LaunchPad (MSP-EXP430G2). Внешне она напоминает Arduino, но, естественно, с ней не совместима. В комплекте с платой щедрые техасцы кладут сразу два своих микроконтроллера серии Value Line в DIP-корпусах: msp430g2553 и msp430g2452.

LaunchPad
Читать дальше →

Я презираю Arduino

Время на прочтение5 мин
Количество просмотров394K
Я – выпускник специальности «Микроэлектроника и полупроводниковые устройства». За годы обучения я разработал множество устройств на микроконтроллерах, участвовал в конкурсах вместе со своей командой и являлся заведующим лабораторией встраиваемых систем. У меня есть мечта – создать в своей стране условия для разработки роботизированных систем и есть план её достижения, одним из пунктов которого является участие в подготовке большого количества профессионалов в этой области.
Arduino


Я радуюсь, когда будущие инженеры создают свои устройства и расстраиваюсь, когда слышу, как кто-то говорит об использовании Arduino в них.

Это не первая моя статья на эту тему: у меня возникает желание написать такую сразу после прочтения фразы о безграничных возможностях платформы в DIY-топике на Хабре. У меня возникает желание написать об истинной цене деталей после прочтения статьи о покупке конструктора за $200 почти ничего не содержащего (уж простите, запамятовал где видел).

Читать дальше →

Ближайшие события

Подключение сенсора освещения от Mac Book Pro к Arduino

Время на прочтение3 мин
Количество просмотров9.1K
Сегодня я хотел бы вам рассказать как я подключил датчик освещенности от мак бук про к ардуино. На самом деле все просто. Главное — немного усидчивости.

Запасная часть у меня оказалась случайно, я выпросил убитый ноутбук MAC book pro 15`, в котором не хватало большей части запчастей, у своих коллег, (они имели на него виды в качестве мишени для тира) не помню, что конкретно мне от него понадобилось кажется кнопки для замены клавиатуры на ноуте моей супруги, но среди всего прочего – полезного я нашел датчик освещения. Построен он на фото диоде – сенсоре для видимого света от SHARP BS520 а также на усилителе от MAXIM MAX4231. Очень маленькая и компактная конструкция, сложно было понять что к чему из за обилия мелких деталей и почти не просматриваемой дорожки.
Читать дальше →

Соединение Raspberry Pi и Arduino

Время на прочтение1 мин
Количество просмотров84K


В блоге проекта Raspberry Pi опубликована заметка с целью развенчать всякие спекуляции по поводу конкуренции Raspberry Pi и Arduino. На самом деле ничего подобного: разработчики Raspberry Pi считают, что Arduino — отличная вещь, и эти две платформы вовсе не конкурируют, а могут даже работать вместе.
Читать дальше →

Использование радио модулей RF-2400 от Inhaos

Время на прочтение2 мин
Количество просмотров53K
На хабре недавно была опубликована статья про радио модули, на мой взгляд, в ней незаслужено обделены вниманием 2.4 GHz устройства с SPI интерфейсом. Привлекают они ценой в два-три бакса за штуку, и готовым протоколом общения, включающим адресацию, CRC, отсылку подтверждения и прочие удобства.
Читать дальше →

Практическое использование термистора с Arduino

Время на прочтение2 мин
Количество просмотров102K
image

Здравствуй, Хабрасообщество. После прочтения нескольких статей на хабе Arduino я загорелся заполучить эту игрушку. И вот недавно получил посылку с платой. Затем побаловался со светодиодами и захотел чего-нибудь посерьёзнее. Решил сделать простейший термометр, используя всего термистор, резистор на 10 кОм и LCD дисплей. Кому интересно что получилось — прошу под кат.
Читать дальше →

Онлайн-шахматы на реальной доске на основе Arduino

Время на прочтение1 мин
Количество просмотров13K


Разного рода самодельные устройства на основе платформы Arduino становятся все более распространенными. Это во многом обусловлено широкими возможностями самой платформы. В некоторых случаях умельцы создают не особо оригинальные устройства, какие-нибудь автоматические открывалки для пива и прочие подобные девайсы. Но иногда появляются очень интересные проекты. Например, онлайн-шахматы на реальной доске, управляемые автоматически.

Читать дальше →

Заклинатели «змейки» на Nokia 6110i и Arduino

Время на прочтение1 мин
Количество просмотров2.9K


Большая часть людей, которая видела «заклинателей» змей, вроде как управляющих поведением пресмыкающихся при помощи небольшой дудочки (или как там называется этот инструмент?), удивляется. Во всяком случае, впечатление этот трюк производит достаточно сильное. И пусть потом мы узнаем, что змеи вроде как и не слышат в обычном понимании этого слова, «заклинатели» остаются для нас чем-то таинственным. И вот, в наше время нашлись умельцы, которые при помощи звука научились управлять и электронной змейкой. Точнее, при помощи звука и Arduino.

Читать дальше →

Мозги моего робота — Arduino, первый опыт

Время на прочтение3 мин
Количество просмотров70K
Меня всегда посещала мысль сделать робота на базе Arduino и однажды утром мой коллега говорит — «не плохо было бы купить контроллер Arduino для...», я конечно же знал про него не по наслышке и тут все началось. Мы делаем «Ардуино КАР»!

Ардуино КАР

Читать дальше →