Pull to refresh

Энтузиаст запустил Linux на Arduino Uno

Reading time3 min
Views18K


Энтузиаст запустил ядро Linux на плате Arduino Uno. Чтобы адаптировать полновесный Linux 6.1 к чипу ATmega328p, он портировал эмулятор RISC-V на эту платформу. Установлен новый антирекорд: более 15 часов для загрузки.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments27

Волшебная сила макросов, или как облегчить жизнь ассемблерного программиста AVR

Reading time8 min
Views12K

Про макросы в ассемблере написано много. И в документации, и в различных статьях. Но в большинстве случаев все сводится либо к простому перечислению директив с кратким описанием их функций, либо к набору разрозненных примеров готовых макросов.
Цель этой статьи — описать определенный подход к программированию на ассемблере для формирования максимально простого и читабельного кода с использованием макросов. В статье не будет описания синтаксиса отдельных команд и директив. Подробное описание уже дано производителем. Мы же сосредоточимся на том, как можно использовать эти возможности для решения конкретных задач.

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

Перепрограммируем кассу и печатаем на ней Киану Ривза

Reading time3 min
Views7.3K
Привет, Хабр!

Как то раз была у меня «работа» — нужно было сделать управление кассовым аппаратом Штрих-ФР-К. Так как моя карьера начиналась с ремонта ККТ, то решил взяться за эту работу.

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

Генерация звука на микроконтроллерах AVR методом волновых таблиц с поддержкой полифонии

Reading time12 min
Views32K
Микроконтроллеры AVR довольно дешевы и широко распространены. Наверно, с них начинает почти любой embedded разработчик. А среди любителей правит балом Arduino, сердцем которого обычно является ATmega328p. Наверняка многие задумывались: как можно заставить их звучать?

Если посмотреть на существующие проекты, то они бывают нескольких типов:

  1. Генераторы квадратных импульсов. Генерация с помощью ШИМ или дергать пины в прерываниях. В любом случае, получается очень характерный пищащий звук.
  2. Использование внешнего оборудования типа MP3 декодера.
  3. Использование ШИМ для вывода 8 битного (иногда 16 битного) звука в формате PCM или ADPCM. Поскольку памяти в микроконтроллерах для этого явно не достаточно, то обычно используют SD карту.
  4. Использование ШИМ для генерации звука на основе волновых таблиц, подобных MIDI.

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



Заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 60: ↑59 and ↓1+58
Comments71

Делаем автономного водного дрона или как я мечтал помочь Байкалу, но я не газпром. Часть 1 и последняя

Reading time4 min
Views14K
Привет, Хабр!

Я живу рядом с Байкалом, и много раз бывал на нем. Это красивое озеро с чистым воздухом. Несколько лет назад озеро начало загрязняться. И вот я подумал почему бы не сделать дрона с солнечными батареями, поставить на нее двигатель, нейронный компьютер с YoloV3(нейросеть которая обеспечивает зрение компьютеру) со стереокамерой, добавить GPS и научить его чистить Байкал в автономном режиме.

image
Total votes 53: ↑40 and ↓13+27
Comments128

USB-звуковая карта на YM3812

Reading time8 min
Views15K

Я люблю старые компьютерные игры. Люблю старое железо, но не настолько, чтобы коллекционировать его дома. Другое дело – поковырять какой-нибудь старый чип и попробовать самому что-нибудь воспроизвести, совместить старое с новым. В данной статье история о том, как я подключил AVR-микроконтроллер к YM3812, применявшуюся в таких звуковых картах как Adlib, Sound Blaster и Pro AudioSpectrum. Я не создал что-то принципиально новое, просто объединил разные идеи. Возможно кому-то будет интересна моя реализация. А может мой опыт подтолкнет кого-нибудь на создание свого ретро-проекта.

Total votes 41: ↑41 and ↓0+41
Comments30

Второе дыхание Pandora DXL 3000 или как я прикрутил собственную телеметрию

Reading time7 min
Views14K
К разработке собственной телеметрии меня привела, пожалуй, многим знакомая ситуация — работало, да перестало. Однажды вечером блок автосигнализации перестал воспринимать брелок. Я понимал, что нужно для начала попытаться перепривязать брелок, для чего требовалось выполнить несложную процедуру, четко следуя инструкциям из руководства по монтажу. Выполнение процедуры становилось невозможным, так как автосигнализация находилась в режиме охраны, отключить которую аварийно можно было кнопкой Valet, введя сервисный код.

Сервисный код я никогда не пытался запомнить, а мастер-код — тем более. Безуспешно перебрать на память несколько кодов я все-таки попытался. В течении нескольких минут мне пришлось угнать свой автомобиль. Трель от сирены в ушах еще потом стояла долго, так как сирена была установлена в салоне авто. Не помню почему я разместил сирену именно там — то ли по собственной лени, то ли увидел в этом какой-то смысл. Знаете, по личному испытанному ощущению, это может привести в сильное замешательство неподготовленного злодея. К моему глубокому сожалению, блок мне пришлось демонтировать. Я начал разбираться как быть дальше и что с этим делать. Кому интересно, что же вышло в итоге, прошу под кат.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments19

Сохраняем данные в EEPROM на Arduino транзакционно

Reading time6 min
Views17K
Наличие EEPROM дает разработчикам удобный инструмент для сохранения конфигурационных параметров или медленно меняющегося состояния, которое должно переживать выключение питания. В этой статье мы рассмотрим, как это делать максимально безопасно и удобно, чтобы ничего не забывать и не вспоминать того, чего не было.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments50

Банальная проблема незапуска AVR, решение которой глубоко под землей

Reading time2 min
Views12K

Представим: купили вы новый камень для своего проекта, а он - зараза - не шьется! Все собрано правильно, программатор правильный - всё равно ошибка. Знакомо? Мне да.

Вам тоже?
Total votes 8: ↑7 and ↓1+6
Comments27

Настройка VSCode для программирования AVR в Linux

Reading time9 min
Views9.6K

Всем, кто занимается электроникой, так или иначе знакомы контроллеры AVR. Начинающим они знакомы, по большей части, за счёт экосистемы Arduino. В данной статье я попытаюсь рассказать начинающим программистам, как можно в Linux просто настроить VSCode для работы с контроллерари AVR и получить удобную навигацию по коду, приятную подсветку синтаксиса и прочие рабости, которые даёт VSCode. Это даст желающим возможность перейти от экосистемы Arduino к прямой работе с процессорами.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments8

8 ферзей на AVR-ассемблере

Reading time4 min
Views8K

Фанатам ассемблера посвящается.

Всем привет! Решил подключить матрицу светодиодов 8х8 и вывести на неё решение задачи о 8 ферзях. [Описание см. на Википедии]

Процессор

В качестве процессора я выбрал компактный и шустрый процессор attiny85. Программа будет написана на ассемблере. С небольшими настройками программа должна работать на любом другом процессоре AVR: attiny и atmega.

Дисплей

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

Читать далее
Total votes 18: ↑15 and ↓3+12
Comments5

Как сделать свой клон Arduino, и есть ли в этом смысл

Reading time3 min
Views8.4K

Многие начинающие и не только ардуинщики столкнувшись с проблемой нехватки памяти и пинов бегут покупать более мощные Arduino MEGA / DUE. Всегда ли можно этого избежать? Как создать свой клон Arduino с прошивкой через USB?

Читать далее
Total votes 16: ↑6 and ↓10-4
Comments19

Собираем свой AM-передатчик кода Морзе

Reading time8 min
Views15K

Это проект по сборке простого маломощного AM-передатчика кода Морзе, позволяющего передавать сообщения, которые можно будет принимать на любом транзисторном радиоприемнике в средневолновом диапазоне. Этого диапазона вполне достаточно для передачи между комнатами в доме, и при этом нет риска пересечься с каналом радиовещания.
Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments33

Как разработать микросхему, от идеи до результата. Часть 1. Теория

Reading time19 min
Views24K
Пока наши соседи по цеху спорят о конкурентоспособности Эльбруса, я продолжаю идти к своей заветной цели — склепать свой собственный Отечественный Процессор (TM). Ранее я рассказывал про программу, финансируемую Google, которая позволяет энтузиастам бесплатно получить прототип их разработок в кремнии. Если вы хотите увидеть всю подноготную процесса производства современных чипов, то этот туториал точно для вас!

Читать дальше →
Total votes 113: ↑112 and ↓1+111
Comments62

Как разработать микросхему, от идеи до результата. Часть 2. Установка программного обеспечения

Reading time9 min
Views9.6K
В этой статье мы поставим все необходимые инструменты для того, чтобы начать разработку микросхемы. Также мы установим Process Design Kit, про который мы говорили в предыдущей статье.

Напоминаю, что я продолжаю идти к цели — сделать свой собственный Отечественный Процессор (TM). Продолжение процесса разработки можно посмотреть под катом.

Читать дальше →
Total votes 66: ↑66 and ↓0+66
Comments18

Как разработать микросхему, от идеи до результата. Часть 3. Схемотехническое представление и Layout

Reading time14 min
Views8.4K
В прошлой статье мы установили все программы, а в этой части, мы наконец приступим к практической части. Готовьтесь, эта часть будет очень большой. Для тех кто пропустил прошлые части — ссылки ниже.



Как разработать микросхему, от идеи до результата. Ссылки на все статьи։

В этой части мы:

  1. Будем рисовать схему, используя XSCHEM
  2. Произведём симуляцию нашей схемы, используя NGSPICE
  3. Поймём цикл производства микросхемы
  4. Нарисуем Layout, используя KLayout

Предполагается, что вы уже прочитали предыдущие материалы. Если мне удалось вас заинтересовать, прошу под кат!
Читать дальше →
Total votes 59: ↑59 and ↓0+59
Comments18

Как разработать микросхему, от идеи до результата. Часть 4. DRC/LVS/PEX

Reading time12 min
Views5.7K
В прошлой статье мы сделали Layout, а в этой части мы проведём LVS/DRC/PEX и исправим ошибки из прошлой статьи. Для тех, кто пропустил прошлые части, вот ссылки на них.




В этой части мы:

  1. Запустим Design Rule Check, чтобы проверить возможность произвести нашу схему
  2. Запустим Device Extraction для сравнения нашего Layout с целевой схемой.
  3. Произведём сравнение наших компонентов из Layout и нашей схемы, которую мы нарисовали в XSCHEM.
  4. Сгенерируем netlist с паразитными конденсаторами и резисторами (PEX).
  5. Просимулируем netlist с паразитными конденсаторами и резисторами.
  6. Сгенерируем LEF файл.
  7. Подведём итоги этой серии статей.
Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments8

Реализуем подобие DMA на микроконтроллерах AVR

Reading time3 min
Views6.9K

Всем привет. Довелось мне писать довольно большой проект на AVRках. Как известно у них не очень большие скорости 16 МГц, у тех же STM32 можно гнать 72МГц и выше. Но опыта на STM мало, по этому пока AVR. Так вот мне нужно было в проекте передавать данный по UART, посылки не большие 10-15 байт, скорость 9600. Если все это дело реализовать в основном цикле, то это очень сильно тормозит систему. А у меня помимо этого есть еще куча других задач. Единственный выход использовать прерывания. Посмотрел несколько примеров в интернете, некоторые из них сложные, другие я даже не понял как работают, и по итогу сделал как понимал, и теперь делюсь с вами.

И так в первую очередь нам необходимо сформировать то что хотим отправить, то есть получить буфер для отправки, не важно как sprintf или itoa. Допустим определим буфер:

Читать далее
Total votes 19: ↑9 and ↓10-1
Comments28

Меньше, еще меньше! Делаем вольт-ампер-ватт метр на Attiny85

Reading time4 min
Views15K

Ну вот наконец добрался до Attiny85, все хотел чего-нибудь сделать на них. А тут коллеги решили с гальваническими покрытиями поиграться. Путем нехитрых доработок блок питания для светодиодных дисплеев на 5В 60А стал регулируемым. А вот контролировать такие токи нечем. Шунт на 75мВ при 50А в местных магазинах мы нашли, а вот головку к нему нет, а стоять считать чего там милливольты показывают на мультиметре- такое себе.

Читать далее
Total votes 72: ↑70 and ↓2+68
Comments19
1
23 ...