• Как регулировать мощность переменного тока

    • Tutorial

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

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

    Итак нам нужно выходить на заданную величину и поддерживать её, с этим должен справляться алгоритм ПИД регулятора, глубоко вдаваться в его работу не буду, скажу лишь что он получает на вход текущую ошибку, а на выходе выдает какое-то число в заданных пределах. У меня таким числом будет необходимая мощность выдаваемая на ТЭН. Для начала разберемся с мощностью.

    Читать далее
  • Симуляция радара истребителя на 3″ осциллографической ЭЛТ

    • Translation

    Все из вас уже наверняка повыбрасывали старые громоздкие ЭЛТ-мониторы, предпочтя им изящные ультратонкие ЖК-дисплеи. Многие уже и не думают, что еще можно повстречать столь древний девайс в современном мире… Но здесь речь пойдет об особенном ЭЛТ-дисплее – круглом! Его диаметр составляет всего 3 дюйма, и выглядит это чудо очень мило.
    Читать дальше →
  • PortablePy: компьютер-раскладушка для MicroPython

    • Translation
    Признаю: мне очень нравится та невероятная скорость, с которой загружаются домашние компьютеры 1980-х годов. Я какое-то время пытался оптимизировать время загрузки Raspberry Pi, но особенно далеко в этом деле не продвинулся. Я, кроме того, большой поклонник специализированных устройств, в которых аппаратное обеспечение используется для решения какой-то одной задачи. Такие системы тоже работают очень быстро. MicroPython — это очень интересная разработка, попадающая в сферу моих интересов. Это, с одной стороны — «язык высокого уровня», а с другой — программный комплекс, который без особых сложностей работает на весьма скромных аппаратных ресурсах.


    Читать дальше →
  • FreeRTOS: введение


      Здравствуйте. В короткой серии постов я постараюсь описать возможности, и подходы работы с одной из наиболее популярной и развивающейся РТОС для микроконтроллеров – FreeRTOS. Я предпологаю базовое знакомство читателя с теорией многозадачности, о которой можно почитать в одном из соседних постов на Хабре или ещё где-то.
      Ссылки на остальные части:
      FreeRTOS: межпроцессное взаимодействие.
      FreeRTOS: мьютексы и критические секции.
      Читать дальше →
    • STM32 + linux

        Для разработки системы управления одной железякой после длительных поисков мною был выбран ARM-микроконтроллер семейства STM32 — STM32F103 (в «стоножечном» исполнении). А в качестве макетки для разработки и отладки — STM32P103 (там ножек хоть и меньше, но ядро то же самое). «Истории успеха» я понемногу выкладывал в своей ЖЖшке, но вот решил собрать все воедино и рассказать о том, каково же оно — программировать микроконтроллеры в линуксе. Сам проект лежит на sourceforge.

        Читать дальше →
      • Создание камеры-ловушки с использованием Raspberry Pi, Python, OpenCV и TensorFlow

        • Translation
        • Tutorial


        Я сильно верю в обучение через практику, через создание чего-то нового. А для того чтобы что-то создавать, нужно чтобы работа приносила бы удовольствие.

        Я начну рассказ о моём новом проекте с того, что раскрою причины, по которым решил попытаться создать камеру-ловушку на основе Raspberry Pi.

        Я живу в Лондоне, мой сад часто посещают местные представители дикой природы. Случается это так часто, что я, заядлый садовник, мало-помалу начал расстраиваться. Разбитые горшки, выкопанные из земли растения, съеденные фрукты и овощи…

        Я видел в своём саду маленьких лис (они — просто прелесть), больших лис, кошек (не моих), птиц. А однажды меня даже посетил ястреб-перепелятник.
        Читать дальше →
      • В России плохо жить, даже если ты разраб. Но я все равно отказываюсь от релокейта



          Несколько лет назад я читал на Хабре про скандал разраба Алексея Адамовского с компанией Xored. Липкий кейс, компания не заплатила человеку деньги, и для меня сразу стал очевиден главный враг в этой истории. Непонятно было другое. Адамовского наняли работать в новосибирском офисе компании, а он очень хотел поработать в пражском. За те же деньги. Кое-как уговорил их и уехал туда. В целом его право, но меня тогда очень задело другое — неужели человек настолько ненавидит жить в РФ, что готов смотаться отсюда на любых условиях?
          Читать дальше →
        • Buck-boost преобразователь с цифровым управлением на STM32F334 в режиме CC/CV

            Наиболее популярные топологии dc/dc преобразователей buck и boost имеют существенное ограничение: топология buck может лишь понижать входное напряжение, а топология boost только повышает его. Однако бывают задачи, когда диапазон входного напряжения требует одновременно работы и на повышение и на понижение, например, мы имеем вход 3...15В, а на выходе необходимо получить стабилизированные 12В. Знакомая ситуация?


            Тут возможны 2 решения:


            • С помощью преобразователя boost повысить входное напряжение из 3...15В до стабильных 15В на выходе, а затем уже с помощью топологии buck понизить напряжение до требуемых 12В;
            • Применить топологию buck-boost, которая позволяет оптимально решить данную задачу.

            Очевидным минусом первого способа является необходимость применять 2 дросселя, увеличенное количество конденсаторов и не самый оптимальный режим работы, а значит более низкий КПД. Buck-boost топология лишена данных недостатков, поэтому сегодня рассказ пойдет о ней. Чтобы было интересно, я решил не брать какой-то готовый контроллер и реализовал dc/dc преобразователь с цифровым управлением на базе STM32F334C8T6.


            Фото преобразователя


            Результат работы для тех, кто не хочет читать стену текста

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

            Читать дальше →
          • Пишем операционную систему. Часть 1. Загрузчик

            Всем привет! Сегодня мы напишем загрузчик, который будет выводить «Hello World» и запустим его на VirtualBox. Писать будем на ассемблере FASM. Скачать его можно отсюда. Также нам понадобится собственно VirtualBox и UltraISO. Перед тем как писать код, разберемся как загружаются операционные системы.

            Итак, когда мы нажимаем большую кнопку включения на нашем компьютере запускается система, которая есть на любом компьютере — BIOS (Basic Input/Output System или базовая система ввода/вывода). Задача BIOS это:

            Читать дальше →
          • Почему мы испортили индикаторные светодиоды и что нужно менять

            • Translation


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

            Дело не в технологиях, а в том, как вы их используете.


            С большой яркостью приходит и большая ответственность.

            В 90-х было много хорошего: Nirvana, Linux, и, конечно же, голубой светодиод. Как и Teen Spirit, последним слишком быстро начали злоупотреблять: технология быстро стало символом всего нового и крутого, вплоть до боли в глазах покупающей публики.
            Читать дальше →
          • USB-звуковая карта на YM3812

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

            Читать дальше →
          • Полнофункциональный I/O реактор на голом Си

            • Tutorial


            Введение


            I/O реактор (однопоточный цикл событий) — это паттерн для написания высоконагруженного ПО, используемый во многих популярных решениях:



            В данной статье мы рассмотрим подноготную I/O реактора и принцип его работы, напишем реализацию на меньше, чем 200 строк кода и заставим простой HTTP сервер обрабатывать свыше 40 миллионов запросов/мин.

            Читать дальше →
          • Сказ о сплаве Розе и отвалившейся КРЕНке

              image
              Давным, давно, когда я был школьником и добывал радиодетали преимущественно из разных выброшенных на свалку плат, заметил я необычное явление в процессе распаивания очередной такой платы: некоторые пайки моментально отваливались от фольги, стоило в них ткнуть паяльником. Контактная площадка оставалась чистой от припоя, гладкой и серебристо облуженной, а капля припоя на выводе детали имела внизу такое же блестящее плоское основание.
              Читать дальше →
            • Повышение помехоустойчивости Arduino

                Нет, это не кластер


                Даже если система собрана правильно и скопипащен написан хороший код, вероятность что все заработает как надо, примерно 50/50.


                Причин тому может быть три:


                1. Беспаечные макетные платы
                2. Электродвигатели
                3. Модули GSM-связи

                И если в первом случае достаточно взять в руки паяльник (что делаю с самого начала), то электромагнитные помехи — проблема, которую не всегда можно решить экранированием и фильтрами питания.


                Под катом — наиболее простой и "беспроводной", как вы поняли из фото способ поменять фюьзы Ардуино, перейдя на внутренний RC-генератор и отключив контроль питания.

                Читать дальше →
              • Сравнение Эльбрус-4С и Эльбрус-8С в нескольких задачах машинного зрения

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



                  Эльбрус-8С — новый 8-ядерный процессор МЦСТ с VLIW-архитектурой. Мы тестировали инженерный образец с частотой 1.3 ГГц. Возможно, в серийном выпуске она еще возрастет.

                  Читать дальше →
                • Как обойти блокировки сайтов, не направляя весь трафик через VPN

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

                  На Хабре, да и не только на нем, есть множество инструкций, как обойти блокировки с помощью VPN, в частности, с помощью OpenVPN, есть и прекрасные пошаговые консольные скрипты установки OpenVPN. Однако чаше всего подобные инструкции подразумевают, что в результате весь интернет-трафик будет идти через VPN-соединение, что может быть неудобным по ряду причин. И в этом коротком посте я хотел рассказать, как настроить OpenVPN Access Server и обычный OpenVPN для обслуживания только заблокированных ресурсов.
                  Читать дальше →
                • Недокументированные возможности Windows: регистрация событий доступа к ключам реестра

                    Начиная с Windows 8 пользователи операционной системы могут заметить в журнале системных событий такое сообщение: «The access history in hive […] was cleared updating [...] keys and creating [...] modified pages». Что же скрывается за этим сообщением?
                    Читать дальше →
                    • +16
                    • 8.6k
                    • 3
                  • Справочник «пчеловода» или отвечаем на вопросы по микроконтроллерам EFM8 Bee

                      Микроконтроллеры семейства EFM8 Bee с каждым днем становятся всё популярнее и уже накопился список частых вопросов, на которые приходится регулярно отвечать. Решил разместить их здесь, чтобы люди, которые стесняются задавать вопросы инженерам компании «ЭФО», могли найти ответы через поисковик.

                      Для читателей, кто не знаком с микроконтроллерами EFM8 Bee, вкратце изложу основные особенности этих кристаллов, ответив тем на уже наверняка возникший вопрос: Чем особенны микроконтроллеры EFM8 Bee?
                      Читать дальше →
                      • +12
                      • 6.2k
                      • 6
                    • У вас есть право на анонимность. Часть 2. Законодательство против анонимности

                        image

                        Первые попытки ликвидировать анонимность в Сети на законодательном уровне в России начали появляться в 2013 году.

                        Так, Федеральным законом №97-ФЗ от 05.05.2014 («Закон о блогерах и организаторах распространения информации», разработан годом ранее) владельцам страничек в социальных сетях или личных сайтов с суточной аудиторией более трех тысяч пользователей было запрещено анонимное использование собственных блогов в сети. Согласно дополненной ст.10.2 Федерального закона №149-ФЗ «Об информации» лицо, признанное Роскомнадзором блогером обязано разместить на своих сайте или странице сайта в сети «Интернет» свои фамилию и инициалы, электронный адрес для направления ему юридически значимых сообщений. На текущий момент в соответствующий реестр блогеров внесено со стороны надзорного ведомства более 2000 пабликов и личных страниц во ВКонтакте, YouTube, Instagram, Facebook, Google Plus и др. Да и обычных, личных небольших сайтов тоже внесено в данные реестр nn-ое количество.

                        Но в этом же законе есть еще и статья про «организаторов распространения информации» — это владельцы сетевых сервисов, веб-сайтов и разработчики ПО, которых обязали ФСБ и Роскомнадзор осуществлять сбор метаданных своих пользователей (все действия и взаимодействия), их хранение и предоставление по первому требованию компетентным органам. А с 1 июля 2018 года, с момента вступления в силу «пакета Яровой» (№374-ФЗ от 06.07.2016), точнее — тех пунктов этого закона, которые касаются внедрения тотальной телефонной и интернет-слежки за гражданами, организаторы распространения информации (как и операторы связи) обязаны будут собирать, хранить и делиться со спецслужбами не только метаданными пользователей, но и всей их перепиской, звонками, осуществленным файлообменом — всем генерируемым на их площадках или через их ПО трафиком.
                        Читать дальше →
                      • К вопросу о константах

                          Есть ли в мире что либо более постоянное, чем временные переменные


                          Просматривая тематический форум, увидел традиционное «Не работает скетч, подскажите, в чем дело» — таких постов чуть меньше, чем все, но в заголовке фигурировала работа с SD карточкой, поэтому решил глянуть. Больше всего порадовала фраза, что «скорее всего, дело в карточке, но решил попросить посмотреть код, может, что интересного увидите» — не ручаюсь за точность цитаты, но смысл передал верно. Действительно, интересного там наблюдалось много, мой взгляд зацепился за выражение

                          unsigned long Interval = 2000; ....
                          while (micros() < StartInterval + Interval) {};

                          причем дальше эта переменная использовалась, как константа в запуске задержки. Оставим за скобками способ обращения с временем, сейчас речь не об этом.

                          Сначала я, действуя на автомате, написал, что следует применять #define, «да призадумалась, а сыр во рту держала». Может быть, я чего-то не знаю, и применение констант в таком формате может быть выгодно при определенных условиях? Вдумчивое чтение мануалов на разные микроконтроллеры (МК) привело к интересным находкам, которыми (вместе с ответом на мой вопрос) и собираюсь поделиться под катом.
                          Читать дальше →