Ранее мы познакомились с IceStorm, открытым набором инструментов для разработки под FPGA серии Lattice iCE40, а также дешевой отладочной платой iCEstick на базе чипа ICE40HX1K. Кроме того, с использованием IceStorm, iCEstick и языка SystemVerilog нам удалось сделать электронные часы. Сегодня же при помощи тех же инструментов мы попробуем поработать со звуком. Однако на пути к этой благородной цели таится преграда, да не одна!
Как я паял и программировал Кракена с ZeroNights 2017
22 января 2018
Год назад я писал о бейдже в форме матрешки, который можно было получить на конференции ZeroNights 2016. В этом, или точнее, уже прошлом, 2017 году, на ZeroNights у организаторов одного из железных стендов также можно было получить плату-бейдж. На сей раз плата называлась Кракен и имела форму осьминога (или ананаса, смотря какой стороной повернуть :D). Кракен представляет собой отладочную плату на базе STM32F405RGT6. Насколько я смог выяснить, плату разработали Арсений Жгилев и Антон Канышев.
Готовим «взрослую» среду разработки под STM32 в Linux
15 января 2018
Ранее мы выяснили, как разрабатывать под микроконтроллеры STM32 с использованием знакомой и понятной многим Arduino IDE. Этот подход, впрочем, не лишен недостатков. В частности, он (1) вводит лишние слои абстракции, что не позволяет писать максимально эффективный и компактный код, (2) работает с весьма ограниченным множеством микроконтроллеров и плат, а также (3) привязан к конкретной среде разработки, и не самой лучшей. Поэтому сегодня мы научимся разрабатывать под STM32 по-взрослому.
Используем джойстик от Sega Genesis в проектах на Arduino
11 января 2018
В детстве я много времени проводил за игровой приставкой Sega Mega Drive, также известной, как Sega Genesis. Одна из интересных особенностей этой приставки заключается в том, что джойстики подключаются к ней через обычный DE9-порт. Теоретически, сигнал от джойстика должно быть достаточно просто декодировать. Джойстик от ретро-приставки видится мне интересным примитивом для использования в будущих DIY проектах, в связи с чем я решил попробовать подружить его с Arduino.
Как я делал электронные часы на базе FPGA
27 декабря 2017
Захотелось вот поупражняться в программировании на SystemVerilog. Какую-то шибко интересную задачу выдумывать не стал — решил просто сделать часы на FPGA. Понятно, что электронные часы являются не слишком интересным устройством. Тем более, что их намного проще сделать на базе микроконтроллера. Однако реализация часов на SystemVerilog позволяет столкнуться с множеством тонкостей данного языка. Понимание этих тонкостей является необходимым для создания более сложных проектов.
Травим плату перекисью водорода с лимонной кислотой
25 декабря 2017
Традиционно платы травят хлорным железом, как это ранее было описано в статье про лазерно-утюжную технологию. Однако хлорное железо имеет ряд недостатков. В частности, оно оставляет несмываемые пятна на одежде и мебели. Плюс к этому хлорное железо продается только в специализированных магазинах и стоит сравнительно дорого. Поэтому сегодня мы рассмотрим альтернативный и лишенный названных недостатков подход, заключающийся в использовании перекиси водорода, лимонной кислоты и поваренной соли.
Собираем крафтовую розетку с таймером на базе Arduino
22 декабря 2017
Розетка с таймером (ее же иногда называют «реле времени») — это устройство, функционал и назначение которого должно быть очевидно из названия. Вы подключаете какую-нибудь лампу в розетку через это устройство, в результате чего получаете возможность запрограммировать лампу. Например, лампа может автоматически включаться каждый день в 9 утра и выключаться в 10 вечера. Зачем это может быть нужно — уход за растениями, создание эффекта присутствия людей в доме с целью отпугивания воров, и так далее. Розетку с таймером в наше время легко купить готовую за небольшие деньги. Однако в этой заметке я расскажу, как сделать такое устройство своими руками.
Работаем с LCD на базе HD44780 без библиотек
11 декабря 2017
Про LCD-модули на базе HD44780 (здесь и далее под HD44780 понимается как оригинальный чип, так и совместимые с ним аналоги) я писал уже дважды — в заметке Научился выводить текст на ЖК-индикатор из Arduino, а также Об использовании экранчиков 1602 с I2C-адаптером. В обоих статьях использовался принцип «подключаем экранчик так-то, берем готовую библиотеку, и магия, все работает». Магию, как вы можете помнить, я осуждаю. Поэтому сегодня мы наконец-то разберемся, как устроен протокол подобных дисплеев, и напишем нашу собственную, очень простенькую, библиотеку для работы с ними.
Изучаем работу операционного усилителя на примере NE5532
1 декабря 2017
Операционный усилитель — это интегральная схема, предназначенная для усиления слабого сигнала. Операционные усилители часто используются в различных аудио-устройствах. Например, если вы решите спаять усилитель для высокоомных наушников, вам наверняка понадобится операционный усилитель. Звучит, как что-то полезное. Так давайте же разберемся, как работать с этим хозяйством, на примере конкретного чипа NE5532.
Знакомство с компараторами на примере чипа LM339
22 ноября 2017
Ранее мы с вами познакомились с такими интегральными схемами, как таймер 555, счетчик 4026, логические вентили, а также сдвиговые регистры и декодеры. Теперь же пришло время узнать о компараторах. Несмотря на кажущуюся простоту, компараторы — куда более интересные устройства, чем может показаться на первый взгляд. Читайте далее, и сможете убедиться в этом самостоятельно.