Tag Archives: Python

1. Реверс-инжиниринг DPS5005

Применительно к модулю DPS5005 определение реверс-инжиниринга можно описать как изучение работы «железа» (аппаратной части STM32) и написание программного обеспечения для управления этим «железом».

Я, собственно, — разработчик. Это есть моя основная работа. У меня всегда находятся «под рукой» как принципиальные схемы устройств, так и их прототипы. Но на этот раз у меня не было ничего. Это сильно осложняло мою задачу.

Блин! С чего начинать?

Читать далее

Python для иммигрантов

Когда я иммигрировал с Виндовса на Линукс, одной из первых моих проблем была проблема перекодировки моих исходников программ.

Это были не только какие-то программные наработки комповых программ на С/С++, которые не хотелось бы терять. По большей части это были исходники программ для микроконтроллеров, с комментариями и пояснениями.

Читать далее

Python и Qt

Я преднамеренно не указал версии продуктов.

У меня до сих пор в ходу и «второй» и «третий» Питоны. Я не такой уж сильно мудрый. Я не вижу особой разницы между этими двумя Питонами. Мне без разницы для какой версии Питона писать прогу. Я ещё не сталкивался с какими-либо принципиальными ограничениями при создании программ под «вторым» Питоном. Наверно мои программы не такие уж крутые, чтобы нарываться на жёсткую необходимость использования Pithon-3.x

Читать далее

Python. Расчёт переходных процессов

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

Суть метода заключается в том, что переходной процесс или какая-то нелинейная функция разбивается на достаточно мелкие участки. На этих участках считается, что значение функции неизменно. А если речь идет не о математике, а об электрических процессах, то считается, что напряжение на конденсаторах и ток в катушках индуктивности неизменны.

Изменения этих величин происходят скачкообразно только при переходе от одного участка к другому. Это чем-то напоминает работу АЦП (Аналого-Цифрового Преобразователя).

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

Сейчас для этих задач используются разные специализированные программы такие как, например, LabView, MicroCAP и другие. Я с этими  программами не знаком, я не могу даже их перечислить.

Молодёжь их во всю юзает. Это удобно — накидал на экране схему, определил параметры, задал начальные условия, нажал на кнопку и получил результат. Что там и как посчиталось — не важно! А результат — вот он! Быстро. Удобно. Достоверно.

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

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

Читать далее

Python. Преобразования

Русский профессор доктор наук В. Савельев утверждает, что у разных людей мозг может отличаться в разы. А если брать какие-то более узкие области мозга, то различия могут быть и до 40 раз.

С другой стороны все люди внешне выглядят примерно одинаково. Нет таких людей, физиологические данные (например, длина ног или размер ушей) которых отличались бы в 40 раз.

Другими словами, по внешним признакам сложно судить о человеке на сколько он умен. Собственно, поэтому и говорят: «Молчи, дурак, и за умного сойдёшь».

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

Читать далее

Qt и однослойная катушка индуктивности

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

Ничего необычного в этой катушке нет. Обычная катушка, без сердечника, установлена на выходе усилителя. Индуктивность катушки — 5 мкГн. Собственно, задача уже выполнена. Всё посчитано, изготовлено, смонтировано. испытано. Всё работает отлично, вопросов нет.

Но вот, поскольку в настоящее время я человек безработный, то меня увлёк процесс создания программы для расчета катушки индуктивности. И я решил поделиться этими умениями с теми, кто читает мои записи.

По большому счёту ни в методике расчёта, ни в написании программы нет никакого ноу-хау. Всё давным давно известно. Поэтому тем людям, кто умеет и то, и другое, — им читать эту статью будет не интересно. А остальных я приглашаю под кат.

Читать далее

Небольшая проблемка с CH340G

На днях я разбираемся с проблемой — почему CH340G на скорости 115200 не может пересылать данные в компьютер.

Ответ на вопрос получен.

С CH340G всё в порядке! CH340G — может работать на 115200 и на любой другой стандартной скорости. Проблема не в микросхеме. Проблема в том, что команда

# stty -F /dev/ttyUSB0 115200

в Debian-8.6 не выполняется.

Читать далее

18650. Java vs. Python vs. C

На этот статья посвящена не столько проблемам аккумулятора, сколько проблемам применения языков программирования.

Сначала анекдотичный случай из жизни. Один молодой человек пишет:

Мне сейчас 11 лет и у меня задача — к 14 знать 2-3 языка программирования (я сам себе такую задачу поставил).

Я сейчас уже достаточно хорошо владею JS, на изучение ушло 1.5 месяца (html и css в список входит) …

Не-е, вы — лохи — поняли, как надо изучать языки?!

Полтора месяца, и ты — крутой разработчик. Бингоу!!!

Читать далее

Программатор для EEPROM с интерфейсом I2C

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

Хождение по интернетам показало, что возможны две причины либо слетела прошивка у микросхемы памяти 24C02, либо издох видеопроцессор.

Я выпаял 24C02, ибо это несложно, но вот, программатора для этих дел у меня нет. Пришлось сочинять из того, что есть.

IMG_1225

Читать далее

Python для Си-шника — 2

Полтора года назад я уже писал на эту тему (http://wp.me/p1H7g0-RZ). Я там рассказывал про питоновскую программу mkch для создания двух Си-шных файлов (.c и .h), имя которых задавалось пользователем.

Та программа отличалась простотой и была мягко говоря небезопасна в своём применении. Я имею в виду ситуацию, когда пользователь по невнимательности мог создать точно такую же пару файлов и похоронить наработанный в них текст. О чём говорить, если я и сам пару раз на ступал на эти грабли!

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

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

Юзайте на здоровье!

Читать далее