цифровая электроника
вычислительная техника
встраиваемые системы

 

Очередной клон Flappy Bird. Теперь на Arduino!

Автор: Mike(admin) от 19-02-2014, 06:16

Похоже, мир сходит с ума по игре Flappy Bird. Хотя создатель этой игры удалил ее из всех магазинов приложений, многочисленные клоны все же пытаются повторить славу самой Flappy Bird.


Flappy Bit

Теперь же в списке платформ, подвергнутых атаке клонов, имеются не только айфоны и андройдофоны, но и Arduino! Энтузиаст под ником Dan200 создал простейшую игру Flappy Bit. Концепция игры та же - управляем объектом одним нажатием и следим, чтобы он не врезался в препятствие. Только вместо полноценной птички здесь мы имеем один пиксель, поскольку экран представляет собой светодиодную матрицу 8x8. Но это не сильно мешает наслаждаться самой игрой. Видео с игровым процессом под катом.

ATmega и встроенный датчик температуры

Автор: Mike(admin) от 13-02-2014, 07:45

Интересной особенностью микроконтроллеров серии ATmega является встроенный датчик температуры, показания которого можно прочитать, используя внутренний АЦП. На текущий момент среди МК ATmega насчитывается 18 представителей с датчиком температуры: AT90PWM161, AT90PWM81, ATmega168A, ATmega168P, ATmega168PA, ATmega16M1, ATmega16U4, ATmega328, ATmega328P, ATmega32M1, ATmega32U4, ATmega48A, ATmega48P, ATmega48PA, ATmega64M1, ATmega88A, ATmega88P и ATmega88PA.


Arduino Leonardo

Проблема в том, что этот датчик измеряет температуру кристалла и для повседневных нужд, вроде измерения окружающей температуры, изначально он не пригоден. Но, используя известную разницу между температурой окружающего воздуха и температурой кристалла, можно найти эту температуру. В Arduino Leonardo и Arduino Pro Micro применяется ATMEGA32u4, поэтому для них нижеприведенный код подойдет без изменений, для других микроконтроллеров нужно уточнять регистры.

Вольтметр на Arduino

Автор: Mike(admin) от 6-02-2014, 08:33

В этой статье приводится интересная схема для любителей экспериментов и Arduino. В ней представлен простой цифровой вольтметр, который может безопасно измерять постоянное напряжение в диапазоне от 0 до 30 В. Сама плата Arduino может питаться от стандартного источника 9 В.


Arduino вольтметр

Как известно, с помощью аналогового входа Arduino можно измерить напряжение от 0 до 5 В (при стандартном опорном напряжении 5 В). Но этот диапазон можно расширить, воспользовавшись делителем напряжения. Делитель понижает измеряемое напряжение до приемлемого для аналогового входа уровня. Затем специально написанный код высчитывает фактическое напряжение.

JTAG-адаптер для Arduino Micro

Автор: Mike(admin) от 17-01-2014, 15:25

Большинство Ардуин построено на микроконтроллерах типа ATmega, поэтому при желании они могут программироваться и отлаживаться с помощью стандартных средств для таких контроллеров. Если отладка посредством консоли не вызывает у вас никакого удовольствия, то можно попробовать другой способ отладки. Например, взять AVR JTAGICE3. Только вот не со всеми Ардуинами отладчик будет общаться стандартным образом через коннектор ISP (In-System-Programming).


JTAGICE3

Коннектор Atmel ISP сочетает в себе линии шины SPI и сигнал сброса RESET. SPI используется для загрузки прошивки, а благодаря RESET реализуется система отладки debugWire компании Atmel. debugWire представляет собой довольно необычный протокол, в котором для отладки используется только одна линия RESET. ATmega328p поддерживает debugWire, поэтому на Arduino UNO для отладки можно использовать ISP-коннектор. Но Arduino Micro основан на чипе ATmega32U4. В документации на него нет никаких упоминаний о debugWire, зато JTAG в списке имеется.

Программная симуляция SPI

Автор: Mike(admin) от 13-01-2014, 11:36

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


SPI

Ниже представлен код на ассемблере, симулирующий работу интерфейса SPI (функции записи и чтения) для микроконтроллера PIC16F877A.

Дистанционное управление для Arduino

Автор: Mike(admin) от 10-01-2014, 13:30

Управлять Arduino с помощью инфракрасного пульта ДУ действительно просто. Сегодня можно найти довольно дешевые и простые ИК-пульты для таких целей.


дистанционное управление Arduino

Ниже мы разберем, что нужно сделать для того, чтобы ваш Arduino понимал команды с пульта.

Сигнализация на Arduino, оповещающая об исчезновении напряжения сети

Автор: Mike(admin) от 4-01-2014, 08:37

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


Arduino

Столкнувшись с подобной проблемой, инженер Lauters Mehdi изобрел несложную сигнализацию на базе Arduino и телефона Nokia 3310, оповещающую об исчезновении и появлении сетевого напряжения. Она отсылает sms-сообщения на определенные номера и стоит дешевле своих коммерческих аналогов.

Управляем квадрокоптером с помощью Arduino

Автор: Mike(admin) от 21-12-2013, 07:32

Управлять квадрокоптером – это веселое и интересное занятие. Интереснее может быть только создание своей системы управления такой игрушкой на базе какой-нибудь популярной платформы, например, Arduino. Чем и занялся энтузиаст под ником Dzl. Первым делом он разобрал пульт дистанционного управления для того, чтобы посмотреть, какая радиосистема в нем используется.


Пульт управления квадрокоптером

Внутри, как и ожидалось, была пара дешевых печатных плат с небольшим количеством компонентов на них.

Процессор ARM Cortex-R – для чего он нужен?

Автор: Mike(admin) от 6-11-2013, 15:31

Ответ — для приложений с повышенной функциональной безопасностью. По крайней мере ядра ARM Cortex-R в высокопроизводительных «реальновременных» микроконтроллерах компании Texas Instruments для этого и применяются.


Cortex-R

Хотя процессоры Cortex-R практически полностью совместимы с процессорами Cortex-A и Cortex-M в плане набора инструкций, все-таки между ними есть существенные различия. В частности, ядро Cortex-R характеризуется более высокой производительностью по сравнению с Cortex-M, и в то же время оно может выполнять детерминированные операции, чего сложно добиться на процессорах приложений Cortex-A. Так что с точки зрения производительности Cortex-R располагается между Cortex-M и Cortex-A, но в то же время может применяться как в микроконтроллерах, так и в процессорах.



Решения для программирования микроконтроллеров с ядром ARM Cortex-M

Автор: Mike(admin) от 29-10-2013, 18:00

Архитектура ARM и средства разработки


Все большее число производителей предлагают 32-разрядные микроконтроллеры на основе ядра ARM Cortex-M, и в то же время, имеются и новые среды разработки, предназначенные для таких микроконтроллеров. Некоторые языки программирования и инструменты, ранее доступные только для настольных компьютеров, в настоящее время портируются на ARM-микроконтроллеры.


ARM Cortex-M

Технические преимущества архитектуры ARM Cortex-M, такие как высокая производительность, высокая плотность кода, поддержка ОС и гибкость системы памяти, также позволяют использовать новые методы разработки программного обеспечения на ARM-устройствах. Использование этих методов с 16- или 8-разрядными микроконтроллерами может быть неэффективным или даже невозможным.


Открытость архитектуры ARM позволяет поставщикам программных сред разработки создавать среды для множества микроконтроллеров различных производителей, в то время как инструменты, разработанные для 8- и 16-разрядных устройств имеют ограниченный охват рынка.


Более широкая область внедрения также позволяет поставщикам программных инструментов создавать среды разработки приложений для определенных сегментов рынка встраиваемых решений, вроде M2M (межмашинное взаимодействие) и IoT (Интернет вещей), а также внедрять альтернативные языки программирования.