Метка «avr» - 4

В очередную уборку в мастерской довелось мне наткнуться на два матричных индикатора 8х8, там же была найдена Mega16, кнопки, макетка. «Какой же ты программист, если за свою жизнь ни разу не написал Тетрис?», спросил мозг.
Конец дня был посвящен тому, чтобы навесом спаять это все хозяйство.
Ping Pong на AVR

Схема выглядит следующим образом:
Ping Pong на AVR

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

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

Данная статья является переводом этой статьи.
Надеюсь мой перевод окажется не слишком топорным, а материал интересным.

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

Большинство двойных осциллографов имеют режим XY, в которых сигнал, используемый для развертки изображения по времени, заменяется входным сигналом, тем самым позволяя управлять положением луча в двух плоскостях. Использование ШИМ-а с фильтром низких частот может быть эффективно для управления яркостью светодиода, но для того, что бы рисовать сложные фигуры необходим более быстрый способ. Наиболее простым способом является использование ЦАП (цифро-аналогового преобразователя) по схеме R-2R.

Если вам интересно узнать больше о создании векторного дисплея или о том как рисовать на экране осциллографа- добро пожаловать под кат.
Читать полностью »

Сразу скажу, что пост ориентирован скорее на обычных людей, чем на тех, кто в теме.

Я тут решил забить на всю работу и заняться чем-то для души. Снова взялся за паяльник. Решил автоматизировать дома всё и вся. На старой-то квартире у меня был умный дом или что-то типа того — мог свет в комнате включать через Интернет и всё такое.

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

Было решено, что лучше делать много отдельных устройств, каждое из которых отвечает за строго определённую задачу, имея возможность с лёгкостью подключать их к какой-то общей сети. И чтобы у каждого устройства был адрес и свой набор команд. Что-то вроде CAN-шины в современных автомобилях. При этом хочется, чтобы сеть была децентрализованной, без мастер-устройства, чтобы соединялись все по одному проводу, легко реализовывалось без покупки дополнительного контроллера, ну и чтобы длинные провода не были проблемой.

На борту микроконтроллера есть всякие I²C, да UART, но они явно не удовлетворяют условиям. В итоге было решено разработать свой велосипед протокол.

Создание умного дома и разработка своего протокола

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

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

Условия:

  • Объем баков: 2 по 8000 литров
  • Геопозиция баков: -2й этаж (8 метров под землей)
  • Перекрытия этажей: дерево
  • Необходимая точность определения уровня: ± 10 литров
  • Предупреждение о критических уровнях
  • Индикация на рабом месте

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

DIY цифровой тахометр на AVR ATtiny2313, КР541ИД2 и оптопаре

Добрый день.
Выношу на Ваше рассмотрение схему простенького цифрового тахометра на AVR ATtiny2313, КР541ИД2, и оптопаре спроектированного мною.
Сразу оговорюсь: аналогичных схем в интернете много. У каждой реализации свои плюсы и минусы. Возможно, кому-то мой вариант подойдет больше.

Начну, пожалуй, с тех. задания.
Задача: нужно сделать цифровой тахометр для контроля оборотов электрического двигателя станка.
Вводные условия: Есть готовый реперный диск на 20 отверстий от лазерного принтера. В наличии много оптопар от сломанных принтеров. Средние (рабочие) обороты 4 000-5 000 оборотов/минуту. Погрешность отображаемых результатов не должна превышать ± 100 оборотов.
Читать полностью »

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

Потребовалось мне как то прошить на необитаемом острове контроллер. Благо был под рукою ноутбук и я подумал, что просто кнопками щелкать — это не метод настоящего джедая. Но это шутка. Девайс можно использовать и для описанных выше целей, но создавался он по другой причине. Иногда в обеденный перерыв очень хотелось что-либо поделать с исследуемыми устройствами (например LCD-дисплеем). Проблема состояла в том, что на компьютер невозможно установить какие-либо драйвера — нужно звать администратора и объяснять цель всех этих установок.
Читать полностью »

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

Прошиваем AVR вручную
Картинка для привлечения внимания — xkcd

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

Радуясь, что еще не забыли курс ассемблера, вы кое-как написали программу палочкой на песке. Среди уцелевших вещей каким-то чудом оказалась распечатка документации на контроллер (хорошо, что вы еще не успели пустить её на растопку!), и программу удалось перевести в машинные коды. Осталась самая ерунда — прошить её в контроллер. Но в радиусе 500 километров нет ни одного программатора, не говоря уже о компьютерах. У вас только источник питания (батарея из картошки кокосов) и пара кусков провода.

Как же прошить МК фактически голыми руками?
Читать полностью »

В статье habrahabr.ru/post/151544/ и комментариях к ней возник вопрос, почему разные компиляторы выдают код не только разного размера, но и разной эффективности. Если с первым фактором еще можно мириться, то второй может свести все ваши усилия в написании программы на нет. Это на PC еще можно добавить памяти до 32 Гб и поставить 16 ядерный процессор на 10 ГГц, чтобы косынка на NET8.0 не тормозила, а embedded система — девица более изысканная и утонченная.
Итак, сравниваем компиляторы:
1. BASCOM-AVR
2. Wiring
3. С CodeVisionAVR.
Читать полностью »


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