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

 



Игра с динозавром из браузера Chrome на ЖК-дисплее 16x2 и микроконтроллере AVR

Автор: Mike(admin) от 5-03-2021, 23:55

Если у вас нет хороших идей в плане того, чтобы сделать с микроконтроллером и ЖК-дисплеем, то проект, имитирующий игру в прыгающего динозавра из браузера Chrome, будет отличной практикой и весьма веселым занятием.


Игра с динозавром из браузера Chrome на ЖК-дисплее 16x2 и микроконтроллере AVR

Отметим, что этот проект НЕ был написан на Arduino, а был написан на чистом коде AVR C с использованием Atmel Studio. Здесь используется Arduino Uno и Uno-совместимый экран, но в основном потому, что это самая дешевая и самая доступная вещь. Таким образом, для любого, кто знаком с C, но работал только в Arduino, примерно половина кода здесь могла бы сбивать с толку, но если взять кого-то, кто изучал AVR C (сам), это будет совсем не сложно.

Программируем микроконтроллер ATtiny10 с помощью Platform.io

Автор: Mike(admin) от 15-06-2020, 05:55

ATtiny10 - это высокопроизводительный 8-разрядный RISC микроконтроллер AVR с низким энергопотреблением, который объединяет 1 КБ флэш-памяти, 32B SRAM, 4 линии общего ввода-вывода, 16 рабочих регистров общего назначения, 16-разрядный таймер/счетчик с двумя каналами ШИМ, внутренними и внешними прерываниями, программируемым сторожевым таймером с внутренним генератором, внутренним калиброванным генератором, 4-канальным/8-разрядным аналого-цифровым преобразователем и четырьмя программно выбираемыми режимами энергосбережения, и все это в крошечном 6-контактном корпусе SOT23. Для энтузиастов и разработчиков, которые хотят создавать изделия с низким энергопотреблением и малым форм-фактором, ATtiny10, безусловно, является одним из лучших микроконтроллеров, который следует учитывать, поскольку он поддерживает уровни напряжения от 1,8 В до 5,5 В.


Программируем микроконтроллер ATtiny10 с помощью Platform.io

Однако одной из проблем использования ATtiny10 является сложность программирования. Традиционно требуется знакомство с программным обеспечением, таким как AVR Atmel studio, которое не предлагает легкости, связанной с другими платформами, такими как Arduino IDE.

Как обновить прошивку внутрисхемного программатора USBASP

Автор: Mike(admin) от 12-06-2020, 23:55

Программатор USBASP является важным инструментом для разработчиков встраиваемых систем на основе микроконтроллеров. Это USB ICSP (внутрисхемный программатор с последовательным интерфейсом), который позволяет разработчикам легко загружать микропрограммы/загрузчики в микроконтроллеры AVR. В отличие от того последовательных программаторов, таких как преобразователи USB-TTL, он не использует выделенный чип, поскольку работает на Atmega88 (или Atmega8), и использует драйвер USB только для прошивки без специального USB-контроллера.


Как обновить прошивку внутрисхемного программатора USBASP

Как управлять двигателем постоянного тока с помощью микроконтроллера AVR ATmega

Автор: Mike(admin) от 30-04-2019, 19:55

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


Как управлять двигателем постоянного тока с помощью микроконтроллера AVR ATmega

Сегодня мы научимся управлять двигателем постоянного тока с помощью микроконтроллера AVR Atmega16. Но прежде чем идти дальше, давайте узнаем больше о двигателе постоянного тока.

Микроконтроллеры 8051, PIC, AVR и ARM: отличия и особенности

Автор: Mike(admin) от 17-02-2018, 08:35

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

Микроконтроллеры 8051, PIC, AVR и ARM – чем они отличаются?

Но на рынке сегодня представлено большое количество микроконтроллеров. Что они из себя представляют? И в чем их отличие друг от друга? В этой статье мы рассмотрим разницу между основными семействами микроконтроллеров: AVR, ARM, 8051 и PIC.

Небольшой обзор новых дешевых микроконтроллеров ATtiny102/ATtiny104

Автор: Mike(admin) от 28-08-2016, 21:05

Ранее в этом году компания AVR представила микроконтроллеры серии ATtiny102/104. Это новые бюджетные контроллеры, стоимость одного такого варьируется около одного доллара. ATtiny102 и ATtiny104 расположены в довольно удобном корпусе для пайки SOIC с восемью и четырнадцатью выводами соответственно. Также есть версии в корпусе UDFN.


Небольшой обзор новых дешевых микроконтроллеров ATtiny102/ATtiny104

ATtiny104 имеет, скажем так, немало выводов для такого дешевого микроконтроллера. И это его неоспоримый плюс. У нового микроконтроллера есть настоящий аппаратный USART, а не программно симулируемый. Этим не может похвастаться ни один бюджетный контроллер компании AVR. Также он способен работать с интерфейсом SPI в режиме ведущего. Правда, у него всего лишь один счетчик. Зато это 16-разрядный счетчик. Также он располагает 10-разрядным АЦП, а не 8-разрядным, как у его одноклассника ATtiny10. Но как и у ATtiny10, у него не так уж и много памяти, всего лишь 1 КБ flash-памяти программ и только 32 байта ОЗУ. С таким объемом памяти программировать данный микроконтроллер можно будет только на ассемблере.

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, поэтому для них нижеприведенный код подойдет без изменений, для других микроконтроллеров нужно уточнять регистры.

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 в списке имеется.

Срежьте жирок с AVR-GCC кода

Автор: Mike(admin) от 8-12-2013, 09:15

Хотя использование AVR-ассемблера позволяет легко писать компактные по размеру кода программы, все же использование языка C и AVR Libc дает больше удобств. В этой статье будет показано, как написать код на C, который avr-gcc скомпилирует с минимальным размером. Существует ряд руководств по написанию компактного кода для AVR, но ни одно из них не рассматривает вопрос сокращения оверхеда в start-up библиотеке avr-gcc (gcrt1).


avr-gcc

Многие все еще применяют avr-gcc 4.3.3, поскольку он дает более плотный код по сравнению с версиями 4.5.3 и 4.7, но для ниже приведенного примера avr-gcc 4.8.2 дал еще более компактный код, нежели 4.3.3.


Тестовая программа работает со встроенным температурным датчиком ATtiny85 и мигает светодиодом. После компиляции с оптимизацией –Os получаем программу размером 274 байта:


Программирование на языке C: оптимизация типа integer

Автор: Mike(admin) от 19-10-2013, 12:49

Инженер Фабьен ле Ментек (Fabien le Mentec) привел небольшое исследование, позволяющее лучше оптимизировать работу 8-разрядных контроллеров. Он работал над регулятором напряжения на основе 8-разрядного микроконтроллера ATMEGA328P фирмы ATMEL. Основная логика контроллера была реализована в главной функции main() и зависела от периодического таймера, функционирующего с фиксированной частотой. В обработчике прерывания по таймеру инкрементировалась переменная-счетчик, которая затем использовалась в основной программе для правильной в плане синхронизации работы контроллера напряжения.


тип integer

Посмотрев на код Фабьена, один интересующийся человек отметил, что в этом коде для счетчиков используется тип uint8_t вместо unsigned int, и сказал, что с этим могут возникнуть трудности в рамках данного проекта. Но Фабьен пояснил причины и последствия такого решения.