Рубрика «avr» - 10

Сегодня хочу рассказать о своем опыте в работе с AVR-микроконтроллерами.
Читать полностью »

В 2013 году на научной выставке в Москве я увидел интерактивного промо-робота. Идея показалась мне интересной, но опыта для построения копии у меня не было. В то время я заканчивал 4 курс университета и работал на себя в сфере систем безопасности. Ходил в детстве на радиокружок, хорошо понимал зачем нужны те или иные радиоэлементы, но вот с программированием микроконтроллеров и настройке unix-like систем опыта не было. Для получения опыта в этой сфере я решил собрать копию этого робота, улучшив некоторые моменты. Конечно сразу стартовать с такого проекта было бы глупо, и в качестве теста был собран 3д-куб 5х5х5, потом увлёкшись идеей был собран 3д-куб посерьёзней разрешающей способностью 10х10х10 пикселей:

image

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

Bus Blaster — универсальный скоростной bit-bang интерфейс для терпеливых энтузиастов - 1
Мне давно хотелось иметь какой-нибудь простой и универсальный аппаратный интерфейс с несколькими входными и выходными сигналами, функциональность которого определяется исключительно софтом, вроде достопамятного программатора PonyProg. И чтобы его можно было использовать не только как чтения/записи прошивок, но и для отладки программ через JTAG. При этом покупать что-либо промышленное, при моем нерегулярном баловстве с электроникой, избыточно и нерентабельно — требовалось что-то из серии «полуфабрикатов», на основе bit-bang.

Что такое bit bang и зачем он нужен

Кое-кто еще помнит, что в счастливые времена Windows 9x каждая системная плата и каждый ноутбук в обязательном порядке имели последовательный (COM) и параллельный (LPT) порты. В ту пору для организации интерфейса с микросхемой ППЗУ, служебными контактами мобильника или передней панели магнитолы достаточно было припаять к разъему порта несколько резисторов, диодов и транзисторов. Все остальное делали обычные пользовательские приложения, самостоятельно формировавшие сигналы нужного протокола путем выставления нулей или единиц на нужных выводах, и считывания сигналов на входах. У клятых буржуев это называлось bit-bang, а у нас — «дрыгоножество», «ногомашество» и т.п.

С переходом на 2k/XP возникли сложности с прямым доступом к портам ввода/вывода, но они успешно решались костылями вроде giveio. Гораздо сильнее портила жизнь более высокая фоновая активность в NT, из-за которой сложнее было выдержать стабильность передачи и приема.

Как известно, на современных компьютерах, тем более — ноутбуках, с аппаратными портами не густо, ибо большинству пользователей они не нужны. USB-адаптеры для подключения устройств с интерфейсами RS232 и Centronics (в просторечии — COM/LPT) хорошо работают лишь в рамках основного назначения, а делать на них «дрыгоножество» проблематично по целому ряду причин. Во-первых, большинство этих адаптеров умеет обрабатывать с хорошей скоростью только сигналы данных (те же Tx/Rx), а управляющие сигналы обрабатывает с большими задержками. Во-вторых, адаптеры различных производителей аппаратно несовместимы, а возможности нестандартного управления через драйвер производителя сильно ограничены. В-третьих, для передачи команд адаптеру почти все драйверы используют отдельные USB-пакеты, что ограничивает частоту смены состояний всего тысячей раз в секунду, чего для многих применений катастрофически мало.

К счастью, компания FTDI уже давно предлагает ряд решений для USB, ориентированных именно на скоростной обмен произвольными сигналами. Беглое изучение вопроса показало, что наиболее популярны в этом плане интерфейсы на микросхемах FT232H/FT2232H.
Читать полностью »

Идея проекта: спроектировать устройство на базе микроконтроллера AVR для управления готовым GSM модулем (я выбрал модуль TC35 от SIEMENS, но можно использовать любой другой, если используется связь через последовательный порт RS232). Устройство должно быть компактным, минимально простым и надёжным.

Отправка заранее записанного в память сообщения на указанный номер должна выполняться после нажатия кнопки. Всего нужно было 6 кнопок для отправки на 6 различных номеров. Для индикации процессов были выбраны 3 светодиода (Ready, Send, Error), но в последствии был добавлен алфавитно цифровой LCD 16x2 (скорее, для отладки устройства, чем для обычного использования).

Проектировалось всё дело на плате Pinboard II (Rev 2) со стандартным процессорным модулем на ATmega16. На готовом устройстве схема была немного другой (и микроконтроллер использовался ATmega8). Программа писалась в AVR Studio 4.19. В проекте были использованы различные заголовочные файлы (#include) для переключения между Pinboard и готовым устройством.

Общая схема системы:

image
Читать полностью »

Продолжаю серию публикаций о создании простого колесного робота на микроконтроллере ATmega16A.
Во второй части моей публикации я опишу процесс создания и сборки своего робота. Начнем с изготовления печатной платы и закончим видео первых шагов (правильней сказать — прокручивания колес) нашего устройства. Также уделю внимание первому опыту программирования под PC в Qt, а именно созданию программы управления и обмена данными с роботом по Bluetooth.
Если хотите, можете ознакомится с первой публикацией и узнать с чего все началось, ну а всех остальных прошу под кат.
Читать полностью »

Недавно достался мне вот такой принтер:

image

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

Но есть 2 существенных минуса.
Читать полностью »

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

image

Я часто езжу на природу, как в длинные походы, так и в короткие вылазки на выходные. Инструментальное наблюдение с одной стороны просто позволит удовлетворить любопытство, ответив на вопрос «Теплее ли сегодня чем вчера?», или «Насколько холодно было ночью?», с другой стороны, наличие даже примитивной метеорологической информации может помочь предсказать улучшение или ухудшение погоды или выпадение тумана. Отсюда возникает желание создать автономный прибор для измерения, логгирования и отображения метеоинформации, пригодный для походного использования, и удовлетворяющий следующим требованиям:

  • Герметичное ударозащищенное исполнение корпуса;
  • Постоянное отображение реального времени и текущих метеоданных: давления, температуры, влажности, а также истории их изменения в течение последних несколько часов и нескольких дней на экране;
  • Читаемый на ярком солнце экран;
  • Работа прибора в течение всего похода без подзарядки или замены элементов питания или подзарядки;
  • Желательно сохранение истории метеоданных в энергонезависимой памяти.

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

Нескучные выходные или «тачка на прокачку» - 1Некоторое время назад я сказал: "«Тюнить» авто лично мне как-то не интересно...", но «никогда не говори „никогда“». Звезды встали в таком порядке, что пришлось экстренно сменить машину Peugeot 307sw на Mazda5.

Машина ездит, все хорошо, но некоторые «плюшки», которые были в прежней машине штатно, почему-то отсутствовали в текущей.

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

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

готовый девайс

Делать на Arduino как остальные? Да вы что, серьёзно? F*uck the system, как говорится! Решено было делать на Atmega8A, потому что только она и была под рукой. Провода тоже для слабаков, поэтому я отыскал HC-05 (зачем лишние сопли?).

Поехали!
Читать полностью »

С недавних пор мы с друзьями плотно подсели на настольные игры, а незадолго до этого я решил попробовать программировать под микроконтроллеры. Чередуя настольные игры с пляской вокруг микроконтроллера (я игрался всё это время с Attiny2313), родилась идея применить на практике небольшие знания, которые приобрёл на начальных этапах работы с этим МК и сделать игральный кубик. Была поставлена примерно следующая задача:

  • Кубик должен отображать информацию по аналогии со своим костяным собратом;
  • Кубик должен выдавать два значения;
  • Кубик должен быть максимально простым в использовании.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js