Pull to refresh

УМК на ATmega16

Reading time16 min
Views21K
Спойлер: данная статья не выдавит ностальгической слезы.

Решив не так давно познакомиться поближе (после Arduino) с микроконтроллерами вообще
и с микроконтроллерами ATmega в частности, я быстро понял, что просто читать о МК,
прогонять код в эмуляторе, «моргать светодиодом» — это как-то не то. Поэтому я решил
«запилить» какой-нибудь — пусть даже бесполезный — проект, и разбираться со всем
уже по ходу дела. На ум пришли лабораторные работы по микропроцессорным системам
и учебный стенд, на котором эти работы выполнялись — так называемый учебный микропроцессорный
комплект (УМК), который у нас звался просто «Умкой».

Про УМК


Итак, если не вдаваться в подробности (если вдаваться — то по ссылкам ниже), то
«Умка» это микро-ЭВМ на базе микропроцессора К580ИК80А, выпускался в 80-х годах
прошлого века (мне же посчастливилось работать с ним в не совсем далёком 2009 году),
представляет из себя весомый такой ящик. Более подробную информацию об истории «Умок»
и прочем можно найти по второй ссылке ниже. Вот так он выглядит.

Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments10

Истории самодельного робота. Ч.1

Reading time8 min
Views5.1K

image


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


Что будет например если ваша поделка весом под 60 кг сломает, например, кому то ногу.Или собьется GPS-трек и робот спровоцирует ДТП на оживленном пешеходном переходе-перекрестке? Или подарит цветы не той, "незапрограммированной" девушке, ошибется цветом кожи клиента или доставит до адресата пиво теплым а шаурму холодной? Задавшись в один прекрасный момент идеей создания робота своей мечты можно получить ответы на некоторые эти вопросы, заодно, в очередной раз, попробовать перевернуть мир.Собственно под катом описан процесс создания некого универсального робота.Конкретно шасси.

Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments10

Старые ISA-видеокарты и AVR

Reading time28 min
Views47K
Лет десять тому назад достались мне предназначенные на помойку ISA-видеокарты от 286...486 машин. Видеокарты были опробованы и с тех пор пылились в ящике. Пару лет назад появилась у меня мысль, а не подключить ли такую видеокарту к микроконтроллеру? Вот об этом я и расскажу в статье.
Total votes 76: ↑76 and ↓0+76
Comments58

Памятка. AVR. Buzic

Reading time15 min
Views24K

Суть


Я создал уже некоторое количество разных хоббийных электронных устройств, и у меня есть странная особенность: если на плате присутствует звуковой пьезоэлектрический излучатель(buzzer), я, по окончании основных работ над проектом, начинаю страдать ерундой и заставлять его проигрывать различные мелодии(насколько это возможно). Особенно бывает полезно включить мелодию, по окончании какого либо продолжительного процесса для привлечения внимания. Например, я это использовал, когда построил самодельную экспозиционную камеру для засветки фоторезиста и т.д.

Но когда я начал искать примеры генерации частот для AVR в сети, почему-то мне попадались монструозные, либо недостаточно лаконичные проекты, реализующие генерацию звуковых частот чисто программным образом. И тут я решил во всём разобраться сам…
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments40

Управление LCD и OLED дисплеями на AVR-ассемблере

Reading time27 min
Views15K
Сразу предупреждаю, что не собираюсь разводить холивары насчет преимуществ AVR-ассемблера перед С/Arduino, или даже перед BASCOM-AVR и MikroPascal for AVR — каждый инструмент уместен в своей области. У ассемблерного подхода в ряде случаев имеются свои преимущества — в основном это небольшие проекты, а также системы, в которых требуется точный расчет времени. Немаловажное достоинство этого подхода — простота необходимого инструментария. Но один из крупнейших недостатков в сравнении с языками высокого уровня — отсутствие готовых библиотек хотя бы для базовых задач. Для того же Arduino они имеются на все случаи жизни, но, к сожалению, совмещать их с ассемблером оказывается сложно и потому нецелесообразно — проще уж все и сделать с помощью самого Arduino. Поэтому некоторое время назад я задался целью создать более-менее законченную экосистему для проектов на основе AVR-контроллеров с программированием на чистом ассемблере.

Основные результаты по созданию такой экосистемы изложены в книжке под названием «Программирование микроконтроллеров AVR: от Arduino к ассемблеру». Там же вы найдете подробное изложение целесообразности и границ применимости изложенного подхода. Руководствуясь приведенными в книге примерами, можно строить вполне законченные проекты с минимальной затратой сил и средств, и получить в результате девайс, ласкающий взор своей компактностью, экономичностью и скоростью работы. В этой статье я привожу один из примеров обращения с современными периферийными устройствами с помощью ассемблера, который работает лучше, быстрее и стабильнее, чем его аналог на Arduino.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments22

Приемопередатчик HC-12 и датчик температуры DS18b20 на AVR-ассемблере

Reading time26 min
Views16K
По мотивам содержания моей книжки «Программирование микроконтроллеров AVR: от Arduino к ассемблеру» была опубликована статья о подключении дисплеев к AVR с применением только «чистого» ассемблера. Под «чистым» имеется в виду наличие только простейшего редактора кода и программатора, и отсутствие необходимости во всяких навороченных инструментах вроде Atmel Studio. В конце я пообещал, что изложенный там материал продолжится изложением примеров, затронутых в книжке лишь вскользь или не вошедших в нее вовсе.

Одним из таких моментов является беспроводная связь между устройствами, вторым — цифровые датчики (в книжке большей частью изложено обращение лишь с аналоговыми). По нижеизлагаемым причинам для связи я остановился на модуле HC-12, а в качестве цифрового датчика использовал одну из бессмертных разработок «всех времен и народов» — датчик DS18b20.

Для упрощения отладки проекта его составляющие сначала моделировались на Arduino, и затем воспроизводились на ассемблере на более адекватной элементной базе.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments28

Дешёвый хронограф для пневматики своими руками

Reading time9 min
Views98K


В своей первой публикации я хочу рассказать вам, как я собрал хронограф за пару вечеров из дешевых и доступных всем деталей. Как вы наверное уже догадались из названия, этот девайс служит для измерения скорости пули у пневматических (и не очень) винтовок и бывает полезным для контроля её технического состояния.
Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments94

Сказ о том как перфекционизм мне контроллер сбрасывал

Reading time6 min
Views16K
image

Задумал я как-то купить йогуртницу. Да такую, чтобы йогурт делала хороший и всегда одного качества. Что для этого нужно? Во-первых, сырье, во-вторых, точная и стабильная температура, в-третьих, настройка времени приготовления. Стал я выбирать и столкнулся со следующей засадой: дешевые йогуртницы оказались нерегулируемые. То есть внутри нагревательный провод, и этот провод, по сути, подключается к сети. Какая температура будет при этом внутри йогуртницы, зависит от рук сборщика, температуры окружающей среды, фаз луны и глубины сна Ктулху (Ктулху фхтагн, кстати).

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

Это была предыстория. А теперь история.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments34

Ускоряем свою Arduino

Reading time3 min
Views201K
Месяца 3 назад, как и многие горе-электроники, купил себе на мой тогдашний взгляд самую навороченную микропроцессорную плату из семейства Arduino, а именно Seeeduino Mega, на базе процессора Atmega1280. Побаловавшись всласть вращающимся сервоприводом и моргающим светодиодом, встал вопрос: «зачем же я её купил?».

Я работаю одним из ведущих конструкторов на одном крупном военном Зеленоградском заводе, и в данный момент веду проект по разработке метрологического средства измерения. В данной задаче существует бесконечное множество проблем, которые требуют индивидуального решения. Одной из таких задач является управление шаговым двигателем без шумов и с шагом не 1.8 градуса, как сказано в документации шагового двигателя, а до 0.0001 градуса. Казалось бы, задача сложна и нерешабельна, но, повозившись немного со схемами управления, пришёл к выводу, что всё реально и возможно. Требуется только генерация двух сигналов специфичной формы и со сдвигом фаз и частотой изменения напряжения до 1 МГц. (Подробное исследование шагового мотора и раскрытие всех тайн управления напишу в следующей статье) Сразу же в голове стали появляться проблески надежды, что я не зря потратил 1500 рублей на свою красненькую Seeeduino, и я, набравшись энтузиазма, начал разбираться.
Читать дальше →
Total votes 59: ↑46 and ↓13+33
Comments70

Использование графических эффектов в приложениях UWP с помощью Win2D

Reading time6 min
Views14K

Знакомьтесь: Win2D это легкое в использование Windows Runtime API для более удобного использования возможностей DirectX. Прорисовка графики осуществляется с ускорением GPU. Win2D доступно для разработчиков C#, C++ и VB и в Windows 8.1 и в Windows 10.

С помощью Win2D вы сможете рисовать фигуры, линии, текст и изображения, а также добавлять ко всему этому различные эффекты. Кроме того, можно добавить какие-то эффекты к видеоизображению.

Предлагаю рассмотреть на примерах основной функционал библиотеки.
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments15

К вопросу о пинах

Reading time26 min
Views22K

Дню знаний посвящается...


Данный пост посвящен тому, с чем сталкиваются все пользователи Ардуино (далее по тексту А, имейте в виду что под этой буквой будет прятаться как сам кристалл, так и среда разработки программ), а именно с работой с портами ввода/вывода.

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

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

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

Поскольку я вижу перед собой читателя с различным уровнем подготовки, то постараюсь ориентироваться на различный диапазон знаний в области МК (микроконтроллеров), поэтому, если Вам что то покажется хорошо известным (а будет немало таких мест) смело пропускайте этот фрагмент, а вот если что то будет не вполне понятно, то комментарии и существуют для того, чтобы там задавать вопросы, я их читаю и, по мере своих сил, пытаюсь ответить.
Как же нам ускорить пины
Total votes 26: ↑24 and ↓2+22
Comments56

Как я смски получал с помощью ИИ

Level of difficultyEasy
Reading time7 min
Views4K

Я живу в деревне и как практически в любой деревне на постсоветском пространстве у нас интернет идёт через модем с сим-картой.

Возникла необходимость читать смски с этого модема не заходя в web-интерфейс. Но писать самому этот код не очень хотелось. Поэтому решил использовать ChatGPT как помощника.

Читать далее
Total votes 20: ↑18 and ↓2+16
Comments6