Захотелось вот поупражняться в программировании на SystemVerilog. Какую-то шибко интересную задачу выдумывать не стал — решил просто сделать часы на FPGA. Понятно, что электронные часы являются не слишком интересным устройством. Тем более, что их намного проще сделать на базе микроконтроллера. Однако реализация часов на SystemVerilog позволяет столкнуться с множеством тонкостей данного языка. Понимание этих тонкостей является необходимым для создания более сложных проектов.

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

Розетка с таймером (ее же иногда называют «реле времени») — это устройство, функционал и назначение которого должно быть очевидно из названия. Вы подключаете какую-нибудь лампу в розетку через это устройство, в результате чего получаете возможность запрограммировать лампу. Например, лампа может автоматически включаться каждый день в 9 утра и выключаться в 10 вечера. Зачем это может быть нужно — уход за растениями, создание эффекта присутствия людей в доме с целью отпугивания воров, и так далее. Розетку с таймером в наше время легко купить готовую за небольшие деньги. Однако в этой заметке я расскажу, как сделать такое устройство своими руками.

Про LCD-модули на базе HD44780 (здесь и далее под HD44780 понимается как оригинальный чип, так и совместимые с ним аналоги) я писал уже дважды — в заметке Научился выводить текст на ЖК-индикатор из Arduino, а также Об использовании экранчиков 1602 с I2C-адаптером. В обоих статьях использовался принцип «подключаем экранчик так-то, берем готовую библиотеку, и магия, все работает». Магию, как вы можете помнить, я осуждаю. Поэтому сегодня мы наконец-то разберемся, как устроен протокол подобных дисплеев, и напишем нашу собственную, очень простенькую, библиотеку для работы с ними.

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

Ранее мы с вами познакомились с такими интегральными схемами, как таймер 555, счетчик 4026, логические вентили, а также сдвиговые регистры и декодеры. Теперь же пришло время узнать о компараторах. Несмотря на кажущуюся простоту, компараторы — куда более интересные устройства, чем может показаться на первый взгляд. Читайте далее, и сможете убедиться в этом самостоятельно.

Так исторически сложилось, что в качестве ПО для построения принципиальных схем и проектирования печатных плат долгое время я использовал EAGLE. Эта программа мне очень нравится низким порогом вхождения, наличием freeware версии, и, конечно же, поддержкой Linux. Столкнувшись в какой-то момент с ограничениями бесплатной версии (принципиальные схемы ограничены двумя листами, можно делать платы размером примерно до 10x10 см, число слоев в плате ограничено двумя) я решил купить EAGLE. И тогда я узнал, что компания-разработчик не продает его гражданам России. Вообще. Почему — не знаю. Тогда я впервые серьезно задумался о переходе на бесплатный и открытый KiCad.

В одном из предыдущих постов, а именно — посте Учимся программировать под FPGA на SystemVerilog, мы познакомились с основами разработки под FPGA, а также платой Arty Artix-7 и средой разработки Vivado от компании Xilinx. Помимо прочего, было сказано, что все ПО в мире FPGA является закрытым и совместимым только с железом конкретного производителя (то есть, полный вендор лок). Так вот, оказывается, что это не совсем правда. Открытое ПО для разработки под FPGA все-таки существует, и сегодня мы научимся с ним работать.

Вам, конечно же, знакомы карточки и брелки, которые нужно подносить к считывателю, а они при этом пропускают на работу или дают проехать в метро. Такие брелки и карточки используют технологию под названием RFID, Radio Frequency IDentification. Сегодня мы познакомимся с основами этой технологии, а также узнаем, как использовать ее в своих проектах на базе Arduino.

Помните, как мы удаленно мигали светодиодом при помощи NRF24L01, а затем использовали этот же беспроводной модуль для управления гусеничным роботом? В этих заметках модуль мы использовали по принципу «подключаем к таким-то пинам, берем готовую библиотеку, пишем пару строк кода и все работает, магия». Так вот, мне не нравится магия. Я программист, а не колдун, и потому хочу знать точно, что там и в каком виде передается в эфире. К счастью, Software Defined Radio позволяет с легкостью это увидеть.