Язык Go благодаря своей простоте, возможности компиляции в выполняемый образ и встроенной поддержке многозадачности стал, в некотором смысле, "серебряной пулей" для создания высокопроизводительных инструментов и, совместно с Rust, сформировал современный технологический ландшафт для DevOps. Но в действительности, благодаря поддержке набора инструментов LLVM, стало возможным использовать Go и для встраиваемых систем, например при создании мобильных приложений для Android/iOS (например, проекты android-go или gomobile) или микроконтроллеров. В этой статье мы поговорим о возможностях проекта TinyGo, его преимуществах по сравнению с C++ для Arduino и других микроконтроллеров, рассмотрим несколько примеров по работе с оборудованием (на примере реализации драйвера шины SPI для светодиодной ленты WS2812).
Electronics
Как позвонить всем вокруг
Мы в Postuf большие поклонники франшизы Watch Dogs - приключенческой видеоигры, в которой главный герой в лице Эйдена Пирса, имея доступ к вымышленной системе ctOS, способен проворачивать со своего смартфона разные хакерские трюки. Однажды нам стало интересно, возможно ли в реальной жизни повторить трюк звонка на телефоны находящихся рядом людей.
Умный дом на основе API Telegram
Как реализовать рабочую IoT систему на API Telegram, создавать устройства, предусмотрев масштабируемость и развитие проекта.
Ускорение MicroPython
В своей работе я использую MicroPython для прототипирования, быстрой проверки идей и для создания небольших стендов. Благодаря REPL и простому синтаксису MicroPython также отлично подходит для DIY проектов и для обучения программированию.
Когда речь заходит о взаимодействии компьютеров с реальным миром, меня всегда интересует скорость их взаимодействия. В некоторых случаях использования микропроцессорной техники, например в сфере интернета вещей, скорость реакции устройства не так важна. Нет особой разницы когда включится сирена сигнализации: через 10 микросекунд после обнаружения движения или через 10 миллисекунд.
Но в некоторых аспектах, скорость работы и время реакции важно и встаёт вопрос о целесообразности использования MicroPython. Поэтому я провел небольшое исследование, на которое меня вдохновило видео с выступления создателя MicroPython Damien George. Мне стало интересно как быстро программа, написанная на Micropython будет реагировать на входное воздействие.
Подопытным устройством будет микроконтроллер ESP8266, на плате NodeMcu с MicroPython версии esp8266-2018511-v1.9.4 на борту.
Начинаем FPGA на Python
Данная технология имеет один существенный минус: для программирования используются довольно сложные и специфичные языки описания цифровой аппаратуры Verilog и VHDL. Это осложняет вхождение новичка в FPGA и для работодателя найти специалиста с этими специфичными знаниями на рынке труда сложно. С другой стороны популярный высокоуровневый язык программирования Python с фреймворком MyHDL делают программирование FPGA простым и приятным. Тем более людей знающих Python на порядок больше специалистов владеющих Verilog/VHDL. Серией статей я хочу показать как легко и просто войти в область FPGA зная Python и начать делать настоящие сложные FPGA проекты на этом языке. Отмечу, что на ПЛИС python непосредственно не исполняется, а является инструментом для генерации прошивки.
Python и FPGA. Тестирование
Допустим, есть задача описать на ПЛИС некое устройство, работающее с памятью. Для простоты возьму память, общающуюся с другими устройствами через параллельный интерфейс (а не через последовательный, например I2C). Такие микросхемы не всегда бывают практичны в виду того, что для работы с ними требуется много пинов, с другой стороны обеспечивается более быстрый и упрощенный обмен информации. Например отечественная 1645РУ1У и ее аналоги.
Реверс-инжиниринг железа: находим UART и извлекаем прошивку при помощи UBoot
Введение
В этом посте мы расскажем об UART, UBoot и USB, а нашей целью станет игровой автомат Arcade 1UP Marvel. Серия автоматов Arcade 1Up предоставляет возможность за приемлемую цену приобрести домашнюю аркадную машину. С момента выпуска этих автоматов появилось множество модов, демонстрирующих, как заменить внутренние компоненты автомата для запуска стандартного ПО MAME. В посте мы исследуем оборудование автомата и узнаем, как извлечь его прошивку.
OBD2 reader — диагностика автомобиля
Micropython на GSM+GPS модуле A9G
В этот раз я задумался о том, чтобы спрятать в велосипед GPS-трэкер в качестве меры предосторожности. На рынке есть масса автономных устройств для слежения за автомобилями, грузом, велосипедами, багажом, детьми и животными. Подавляющее большинство из них взаимодействуют с пользователем с помощью СМС. Более дорогие варианты предоставляют функциональность Find my phone, но привязаны к конкретному онлайн-сервису.
В идеале хотелось бы иметь полный контроль над трекером: использовать его в удобном режиме без СМС и регистрации. Поверхностное гугление вывело меня на пару модулей из поднебесной, один из которых, A9G pudding board, я и заказал (~15$).
Эта статья о том, как я заставил работать python на этом модуле.
Превращаем DSLogic Basic в DSLogic Plus
В данной статье расскажу как модифицировать DSLogic Basic до DSLogic Plus.
Возможно для кого-то это не будет новостью.
Во всяком случае — собрал инфу с зарубежного форума, убрал все лишнее и рассказываю вам.
Кому интересно — прошу под кат.
Тайна прошивок
Как с помощью самых общих предположений, основанных на знании современных процессорных архитектур, можно восстановить структуру программы из бинарного образа неизвестной архитектуры, и дальше восстановить алгоритмы и многое другое?
В этой статье мы расскажем об одной интересной задаче, которая была поставлена перед нами несколько лет назад. Заказчик попросил разобраться с бинарной прошивкой устройства, которое выполняло управление неким физическим процессом. Ему требовался алгоритм управления в виде компилируемой С-программы, а также формулы с объяснением, как они устроены и почему именно так. По словам Заказчика, это было необходимо для обеспечения совместимости со «старым» оборудованием в новой системе. То, как мы в итоге разбирались с физикой, в рамках данного цикла статей мы опустим, а вот процесс восстановления алгоритма рассмотрим подробно.
Практически повсеместное использование в массовых устройствах программируемых микроконтроллеров (концепции интернета вещей IOT или умного дома SmartHome) требует обратить внимание на бинарный анализ встраиваемого кода, или, другими словами, бинарный анализ прошивок устройств.
Бинарный анализ прошивок устройств может иметь следующие цели:
- Анализ кода на наличие уязвимостей, позволяющих получить несанкционированный доступ к устройству или к данным передаваемым или обрабатываемым этим устройством.
- Анализ кода на наличие недокументированных возможностей, приводящих, например, к утечке информации.
- Анализ кода для восстановления протоколов и интерфейсов взаимодействия с устройствами для обеспечения совместимости данного устройства с другими.
Поставленная выше задача анализа бинарного кода может рассматриваться как частный случай задачи анализа бинарника для обеспечения совместимости устройств.
И снова о втором мониторе из планшета…
Что можешь получить от 54-ФЗ лично ты, username, или DIY-автоматизация учета расходов
Кросспостинг постов из Instagram в паблик VK на Python
Предисловие
Решил выйти на новый рынок сбыта, тем более, целевая аудитория моего интернет-магазина, не имеющая аккаунтов в Instagram, давно интересовалась появлением дубликата в VK. Идея хорошая, но постов на странице сотни, соответственно вручную работать ctrl+c ctrl+v не хотелось, плюс дальнейшие перспективы обезьянней работы не впечатляли.
Уверенный, что в интернете полно бесплатный решений, я начал гуглить. Естественно, первые страницы поисковой выдачи пестрят платными сервисами, с довольно обширными функционалами. Но мне, всего лишь на всего, надо было перенести все посты со страницы Instagram в паблик VK и в дальнейшем синхронно пополнять его.
Не найдя ничего подходящего
Документация по api Instagram и VK довольно подробная и задачка не кажется сложной. Освободив себе пару вечеров, я приступил к работе. Первым делом необходимо было получить токены как в Instagram, так и в VK. С этим проблем не было, оба были получены за пару минут.
Дальше меня ждал первый подводный камень…
Получение рекламных кампаний Яндекс Директ с помощью API в DataFrame (Python)
В данной статье я расскажу про то, как следить за рекламными аккаунтами с помощью API и Python.
На выходе мы получим запрос к API Яндекс Директ, с помощью которого будем получать статистику по рекламным кампаниям и сможем обрабатывать эти данные.
Для этого нам нужно:
- Получить токен API Яндекс Директ
- Написать запрос к серверу
- Импортировать данные в DataFrame
Программное обеспечение для тестирования и наладки устройств и сетей на базе MODBUS
Протокол Modbus довольно распространен как в промышленных системах автоматизации, так и сетях систем типа "Умный дом", автоматизации малых объектов (теплицы и т.п.) и стыковки различного оборудования с домашним компьютером. Появление таких проектов как Arduino и Raspberry Pi значительно повысило интерес к задачам, связанным с робототехникой, автоматикой и автоматизацией. Все это обеспечивает рост популярности Modbus среди любителей и профессионалов. В статье рассмотрен вопрос тестирования и наладки, как отдельных устройств, так и сетей на базе протокола Modbus с позиции требований к программному обеспечению для решения таких задач и обзора существующих инструментов.
x86 на производстве: high end промышленные контроллеры, Паскаль и вирусы
Напоминающие, конечно, не внешне.
Как и в вашем ноутбуке, в контроллере может стоять процессор Core i5, обыкновенная DRAM (только обычно с ECC), SSD диск, обычный Ethernet. Процесс загрузки тоже не отличается — BIOS загружает операционку. Как правило, операционка — RTOS. Однако иногда бывает даже Windows. Причем не всегда это Windows Embedded Compact (бывшая CE). Используется даже Windows Embedded 7, а это полноценная семерка. (Линуксы тоже встречаются)
Arduino+Modbus+MasterScada
Почему именно Master Scada? Отвечу: Master Scada работает через собственный OPC сервер имеющий множество настроек, что позволяет хорошо рассмотреть процесс опроса каналов, ну и он бесплатный на 32 канала).
Для теста воспользовался двумя ультразвуковыми дальномерами HC-04 и платой arduino uno.
Передачу осуществил по протоколу modbus.
Black Hat USA 2015: полная история взлома того самого Jeep
В начале своего исследования Миллер и Валасек пытались взломать мультимедийную систему Jeep через Wi-Fi. Производитель автомобиля, компания Chrysler, предлагает возможность использования Wi-Fi по подписке. Оказалось, что эту беспроводную связь взломать достаточно легко, из-за того, что пароль на неё генерился автоматически на основе времени, когда машина и мультимедийная система включались впервые.
Теоретически, измеряя время с точностью до секунд, этот метод довольно надёжен, учитывая большое количество вариантов времени. Но если вы знаете хотя бы год производства и угадаете месяц, то перебор будет ограничен 15 миллионами комбинаций. Если уменьшить время до дневных часов, останется уже 7 миллионов комбинаций. А это уже достаточно неплохой результат – его можно пробрутфорсить за час.
Shock at the wheel: your Jeep can be hacked while driving down the road https://t.co/40h8StaLFG pic.twitter.com/bOvjzQb9K4
— Kaspersky Lab (@kaspersky) 23 июля 2015
Проблема в том, что в течение всего часа необходимо находиться поблизости от этого джипа, чтобы оставаться в пределах досягаемости Wi-Fi. Но исследователи нашли другой путь. Оказалось, что пароль для Wi-Fi создаётся до того, как в системе будут установлены дата и время – то есть, дефолтное время отсчёта плюс несколько секунд на то, чтобы бортовой компьютер загрузился.
И это время составляет ровно January 01 2013 00.00.32 GMT.
Быстро поднятое не считается упавшим. Повышаем отказоустойчивость встраиваемых систем
Год назад выполнял довольно интересную работу по разработке встраиваемого компьютера для одного предприятия, занимающегося электроникой. Компьютер ничего принципиально интересного не представлял: процессор Cortex A-8, работающий на субгигагерцовых частотах, 512Mb DDR3, 1Gb NAND, легковесная сборка Linux. Однако устройству, в который компьютер встраивался, а значит и ему самому, предстояло работать в довольно жестких условиях. Широкий температурный диапазон (от -40 до +85 градусов Цельсия), влагостойкость, стойкость к электромагнитным излучениям, киловольтные импульсы по питанию, защита от статики в 4 кВ и много чего интересного, что хорошо описано в различных ГОСТах на спецтехнику, – это все про него. Одно из основных требований заказчика – срок выработки на отказ не менее 10 лет. При этом производитель обеспечивает гарантийный ремонт изделия в течении пяти лет, потому вопрос не риторический, а денежный и серьезный. В изделие была заложена соответствующая элементная база. Прибор с честью прошел испытания и получил требуемые сертификаты, но разговор не про то. Проблемы начались когда была изготовлена установочная партия, и устройства разошлись по отделам и КБ для создания прикладного ПО. Пошли возвраты с формулировкой: «Чего-то не загружается».
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity