Обновить

DIY

Сначала показывать
Порог рейтинга

Сделал небольшое веб приложение для хранения информации о вещах с поиском через ии.

инструкция по настройке
инструкция по настройке

Хотел добавить больше скриншотов, но сайт не позволяет. Ниже описание работы.

Главная боль: утро в стиле «где мои носки-ключи-документы-терпение»
Каждому знакомо: просыпаешься, опаздываешь, а нужная вещь будто испарилась. У меня рекорд — 47 минут на поиски банковской карты, которая лежала… в холодильнике. После этого я решил: хватит. Память подводит, бумажные списки устаревают, а подписки на «умные дома» стоят как крыло от самолёта. Нужен был бесплатный, офлайн и без заморочек вариант.

Что получилось за пару вечеров после работы
Получился маленький «домашний архиватор» вещей. Программа живёт на обычном компьютере, не требует интернета и умеет разговаривать, как человек. Коротко о главном:

  • Добавляй голосом: «Положил дрель на антресоли в синий ящик» — и всё, запись готова.

  • Спрашивай простым языком: «Где мои зимние перчатки?» — она выдаст: «В прихожей, верхняя полка шкафа, справа».

  • Следит за сроками: «Сколько осталось йогуртов и когда они превратятся в биологическое оружие?» — покажет список, что пора съесть в первую очередь.

  • Работает даже на бабушкином ноутбуке: нужен только Windows/macOS/Linux и 300 МБ свободного места.

Техдетали, которые не скучно
Внутри — две бесплатные штуки:

  • Ollama — запускает языковую модель прямо у тебя на ПК, без облаков.

  • SQLite — база данных размером с пару фотографий, но вмещает весь дом.

Как это выглядит в жизни
Утро. Я пью кофе и бормочу в микрофон: «Добавить: чемодан на балконе, чёрный, средний». Вечером перед отъездом спрашиваю: «Где чемодан?» — получаю ответ и за 5 секунд вытаскиваю его, вместо того чтобы перевернуть всю квартиру. За первый месяц сэкономил, по ощущениям, пару дней чистого времени и кг нервных клеток.

Почему это не очередной «умный дом»

  • Не надо покупать хабы, датчики и прочий железный мусор.

  • Никаких подписок. Скачал — и твой.

  • Данные не уезжают никуда, даже если интернет отключат.

  • Код открыт: хочешь — добавь свою фишку, хочешь — просто поглазей.

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

Теги:
Всего голосов 1: ↑0 и ↓1-1
Комментарии5

Опять про Arduino: DIY-синтезатор от инженера-программиста

Когда к инженеру-программисту приходит с задачкой не босс, а дочка, случаются настоящие чудеса — вот и в этой статье яркая история о том, как папа собрал портативный синтезатор с нуля!

В статье «Как инженер-программист сделал синтезатор для дочери с помощью Arduino и 3D-принтера» все: от идеи музыкальной доски Монтессори до настоящего электронного инструмента на Arduino и 3D-принтере. Автор рассказывает о поиске компонентов, первых шагах с MIDI-протоколом, работе с OLED-дисплеем, сборке корпуса и даже о танцующей панде на экране.

Как инженер-программист сделал синтезатор для дочери с помощью Arduino и 3D-принтера
На свой первый день рождения моя дочь получила развивающую доску Монтессори, полную переключателей и...
habr.com

Статья для тех, кто верит, что что-то сделать своими руками реально — даже если проект кажется сложным и совершенно новым. С фото, схемами и лайфхаками, которые пригодятся каждому инженеру родителю.

Теги:
Всего голосов 3: ↑2 и ↓1+4
Комментарии0

Стал программистом в Контуре чтобы делать игры

Знакомьтесь: мобильный разработчик Контур.Диадока, Дима Моисеев. 😎 Уже 12 лет делает на Ютубе авторское шоу Old Hard о незаслуженно забытых играх, их переизданиях и ремейках, железяках и source-портах. А ещё — пилит собственную игрушку про мистическую техподдержку Creepy Support. 👽 Увлечению Димы мы посвятили второй выпуск «Пет проектов», где программисты гуляют по полю с собаками из приюта Хаски Екб и рассказывают о своих хобби. Выбрали для вас несколько главных тезисов из этой прогулки. 👇 

С чего всё начиналось и чем мотивировался, чтобы не бросить

Я вместе со своим другом вёл текстовый блог (он всё ещё существует, вот ссылка на него), нам понравилось, и мы решили: а что, если пойти дальше и начать снимать видео? Я тогда как раз закончил институт и пришёл работать в Контур. 

Первая игра, на которую мы сделали обзор, называлась «Подземелья Кремля». Это шутер 1995 года от первого лица — российский ответ американскому Doom. 

Сейчас на моём канале 71 тыс подписчиков. А когда начинал, то думал: если до такого-то числа наберу сотню, прекрасно — продолжаем. Если нет — видимо, это не моё, займусь чем-то другим. И вот дата икс, я смотрю, а там 101 подписчик! Это был знак 👣 идти дальше.

Сначала я поставил себе цель — выпускать ролики не реже двух раз в месяц 

Потом понял, что это начинает превращаться во вторую работу, ещё и начальник [Дима сам себе директор] требовательный. 😁Решил: буду делать в максимально комфортном темпе — появилась интересная железяка > я её неторопливо в свободное время исследую > записываю потихоньку ролик > выкладываю. Сейчас у меня около четырёх сценарных видео в год, раньше было 8-10. Иногда проскакивают и не сценарные форматы — подкасты, реже — стримы.

Где нахожу старое железо для выпусков

На барахолках. Часто попадается что-то классное, например, трёхмерный ускоритель 95-го года или джойстик под MS-DOS довиндосовских времён. А ещё — ноутбуки, звуковые карты, игровые консоли… Там много интересных штук!

Как работаю над выпусками

  • Помощников у меня нет, выпуски делаю сам от начала до конца: съёмка, монтаж, публикация. Если зритель указывает на ошибку, мне не на кого её спихнуть 😁, иду исправлять. А ошибки бывают — за всем не уследишь. Но к ним отношусь спокойно и не принимаю близко к сердцу.

  • Закадровый текст я обрабатываю примерно один к двум: на 20 мин черновика выходит 10 мин готового текста. 

  • В принципе, мне нравятся в этой работе все этапы, особенно — писать текст и монтировать. Запись закадра и съёмка — тоже норм, но если в будущем нейронка сможет моим голосом и с правильной расстановкой интонаций записать текст, я перестану следить за микрофоном и это очень облегчит процесс создания роликов.

Блог забрасывать не хочу: мне нравится мой сегодняшний комфортный темп, плюс остаётся время на другие проекты. Например, я ещё делаю свою видеоигру под названием Creepy Support. Суть игры: ты играешь за работника техподдержки в тайной организации, в которую обращаются люди, столкнувшиеся с чем-то паранормальным. Например, кому-то на 15-м этаже постучал в окно человек или позвонил по телефону кто-то странный. 👻 Задача игрока — уточнить детали и дать совет, что человеку делать дальше. Потом можно даже узнать, как этот совет повлиял на жизнь того человека.

Надеюсь, на эту игру тоже в будущем будут делать обзоры. 😉 Кстати, я уже видел несколько отзывов на неё на английском языке. 

Что дают мне пет-проекты

  • Я познакомился с кучей новых людей.

  • Расширил кругозор. Например, для игры Creepy Support выбрал другой язык программирования, не тот, на котором пишу в Контуре. И это здорово помогает мне отвлечься от рабочих задач. 

***

Полный выпуск про Диму, его пет-проекты и ушастую Феню, с которой бродили по зелёному полю, можно посмотреть в VK Видео, на RuTube и YouTube. Подпишись на нас на любой из площадок, чтобы не пропустить новые видосы! 😉

Теги:
Всего голосов 5: ↑4 и ↓1+5
Комментарии0

@SystemSoft, вот если бы вы пришли к какому-то общему знаменателю в вопросах API c этой темой, глядишь, новая открытая платформа бы появилась…

Я бы вот прямо сам бы покодил под такие микро-игрушки (если бы сговорились на Си) :)

Чёрт, прямо обидно, что оскверняю супер-пятницу недостаточной абсурдностью мысли. Была с утра идейка предложить новый форм-фактор ATX-корпуса, но нет сил сейчас делать технический рисунок :(

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии1

Привет, Хабр! Наверное, я занимаюсь какой-то ерундой, но любопытство взяло верх. Однажды я нашёл интересную статью и очень захотел повторить эксперимент самостоятельно, ну и, конечно, написать статью по результатам. В качестве подопытного была выбрана отечественная оперативная память К565РУ5Г.

TL;DR
Автор успешно использует старую микросхему памяти в качестве фотодатчика получает несколько Ч/Б изображений.

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

Паттерн
Паттерн

Вторая проблема - самый душный этап этого квеста. Нужно сопоставить логический адрес каждой ячейки памяти с её физическим расположением. Всё, что у меня получилось извлечь из полученной каши - засветку/затенение блоков 64 на 64 точки. Т.е. кристалл реагирует на свет, но получить что-то внятное не получается.

Заранее с благодарностью призываю коллективный разум на помощь. С меня интересный материал.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Сын в 8 лет обзавёлся 3д принтером и рисует свои модельки в tinkercad. Вроде бы просто и здорово, но когда ближе к концу творения понимаешь, что надо бы чуть-чуть поправить ошибку, допущенную в самом начале, то там эта задача почти не выполнимая.

А есть тут бывалые 3д мастера? Какой редактор посоветуете ребёнку, чтобы было просто и интуитивно, при этом относительно технологично, чтобы можно было хотя бы вносить правки на любом этапе?

Теги:
Всего голосов 5: ↑5 и ↓0+8
Комментарии37

Использую для разных надобностей перешитые TV-боксы, потому что удобные маленькие одноплатники в аккуратных корпусах - а "сделать корпус для своего устройства" - отдельная головная боль, которую в данном случае можно просто избежать.

В частности, неплохая штука - X88-mini, 64-битный 4-ядерный процессор с 4 гигабайтами ОЗУ, для некоторых применений вполне годно.
Чтобы не колдовать каждый раз с подбором образа ОС, и методами его помещения туда - слепил что-то вроде дистрибутива.

В основе - Debian bookworm, в минимальной конфигурации, дополнительно установлены только Midnight и Vim.
Загрузочный образ - примерно 1.5 гигабайта, можно записать на любую подходящую SD-карту, воткнуть в слот и загрузиться.

Работает только по сети, по ssh, терминал подключать не нужно, да и не заработает.
IP получит по DHCP, останется залогиниться и можно настраивать почти под что угодно.
Графический интерфейс тоже можно запустить, в отличии от текстовой консоли - но GPU там так себе, это больше для серверных задач подходит: веб, бекенд, автоматика.

И еще одно ограничение - не удалось подобрать нормально работающее ядро, кроме "родного", это ограничивает использование софта, требующего модулей ядра.
Если кто подскажет хороший вариант - будет неплохо.

Образ закинул на Гитхаб, в релизах: https://github.com/JBFW/X88-mini

Теги:
Всего голосов 7: ↑7 и ↓0+8
Комментарии33

Показываем в скринкасте, как развернуть Minecraft-сервер на бесплатной виртуалке ⛏️👾

Свой сервер пригодится, если хочется настроить игру под себя, свободно приглашать друзей и не переживать за лаги. Александр Стародубцев, технический лидер Cloud.ru,  рассказывает, как создать такой сервер самостоятельно с помощью всего двух сервисов: бесплатной виртуальной машины и публичного IP-адреса.

>>> Смотреть на YouTube

>>> Смотреть в VK Видео

С ресурсами Evolution free tier можно бесплатно создать ВМ, хранить файлы и запускать контейнеры. Сделайте своего телеграм-бота, храните в облаке фото, видео и документы или создайте сервер в Minecraft по нашей инструкции 😉

Теги:
Всего голосов 1: ↑1 и ↓0+2
Комментарии0

Проверил, откуда руки растут.

Как человек уже >года потихоньку ищущий работу, заметил, что мое резюме на hh тем больше набирает показов (попадает в поисковую выдачу), чем чаще оно обновляется (очевидно, кэп).

Поднимать можно руками раз в 4 часа или платить hh за pro-подписку. Второе не то, чтобы дорого, но это не путь самурая. А за длительное время руками поднимать его надоело. В принципе, сервисы для подъема есть, не знаю сколько, но знаю как минимум два, скорее их десятки.

В общем, запилил себе помощника.

Базово Python и Django я понимаю; что есть такое API тоже понимаю. Углы, конечно, срезал - вся документация по API hh после первичного личного ознакомления разом улетела в Gemini 2.5 Pro, как бабулины пирожки на противне в духовку. На выходе - диковатый код, с которого еще немного срезал лишнего. Локально все заработало: tg-бот в качестве интерфейса + бэк, гоняющий запросы-ответы. Дальше облако, домен, код в контейнер, еще немного настроек и вуаля - помощник трудится 24/7. Пока, правда, неотесанный, но работает. Еще немного допилить, и будет user-friendly. А там гляди и в пет-проект превратится)

В общем, всем, кому пет-проекты на Python/Django нужны, рекомендую эту идею запилить. Просто, быстро, полезно.

P.S. Автор как бы не программист, но чуток кодить умеет.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

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

Итак, речь идёт о семействе типовых полипропиленовых канализационных труб (в нашей рознице они диаметром 50мм). В семейство входят как сами трубы, так и всяческое углы, отводы, тройники и прочее добро, из которого прикольно делать беговую трассу для развлечения хомяка. Люди же, которые используют трубы по более скучному назначению (отводить воды), вскоре выясняют, что…

При усаживание труб друг в друга, деформируется резинка (без того стоЯщая волной) и пропадает герметичность стыка. Хотя использую при монтаже Сантехническую смазку, усаживаем прокручивая, а не вдавливаем. В общем сами трубы хороши, плотные, пластик достаточно толстый, но вот эти прокладки... Уплотнители текут!!!111 [куча лайков]

Решение просто, как и всё гениальное:

  1. Наматываем на крайние несколько сантиметров «папы» пару-тройку слоёв изоленты, чтобы получить мягкий деформирующийся уплотнитель.

  2. Вставляем «папу» в «маму».

  3. На «маму» (с самого края) надеваем червячный хомут. Затягиваем его простой отвёрткой даже в самых труднодоступных местах, типа угла за унитазом.

Вот он, хранитель трубных соединений.
Вот он, хранитель трубных соединений.

У стандартной пятидесятимиллиметровой трубы наружный диаметр у края составляет ~55мм. Это значит, что хомут нужен с диапазоном 40-60мм. Его цена составляет примерно 40% от цены метровой трубы. Это очень немного за радость собрать герметичное соединение, которое даже не надо проверять, подкладывая газетку и зорко высматривая на ней капли. Собрал и забыл.

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

Теги:
Всего голосов 4: ↑2 и ↓20
Комментарии40

Linux Mint 22 - KiCad-5 с GUI и графическим ускорением на карте AMD в Docker-контейтере.

При перезде с Минт-20 на Минт-22 мне захотелось сохранить возможность полноценной работы с проектами выполнеными в KiCad-5, без конвертации их в формат KiCad-9 на который я плавно мигрирую при перезде на Минт-22. Специфика в том, что KiCad-5, в том числе в виде AppImage на Минт-22 запускаться категорически не хочет.

Из возможных вариантов выбрал для себя запуск KiCad-5 в Docker-контейтере, с пробросом графики через X11. За основу взял эту реализацию. Добавил к ней проброс графического ускорения(без него GUI будет подтормаживать) своей карты AMD, русификацию, и Firefox, для плагина InteractiveHtmlBom. В итоге получился вот такой dockerfile:

FROM linuxmintd/mint20-amd64

ENV LANG=ru_RU.UTF-8

RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y nano sudo keyboard-configuration software-properties-common x11-apps xdg-utils \
    locales language-pack-ru-base language-pack-ru xed xed-dbg firefox firefox-locale-ru && \
    update-locale LANG=ru_RU.UTF-8

RUN add-apt-repository --yes ppa:kicad/kicad-5.1-releases && \
    apt-get update && \
    apt-get install --no-install-recommends -y kicad kicad-locale-ru kicad-doc-ru

# Укажите здесь используемые на вашем хост-компьютере
# имя пользователя, идентификатор пользователя и идентификатор группы.
ENV USER_NAME=vasily
ENV UID=1000
ENV GID=1000

ENV HOME=/home/${USER_NAME}
ENV XDG_RUNTIME_DIR=/tmp/runtime-${UID}


RUN mkdir -p ${HOME} && \
    echo "${USER_NAME}:x:${UID}:${GID}:USER_NAME,,,:${HOME}:/bin/bash" >> /etc/passwd && \
    echo "${USER_NAME}:x:${UID}:" >> /etc/group && \
    echo "${USER_NAME} ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/${USER_NAME} && \
    chmod 0440 /etc/sudoers.d/${USER_NAME} && \
    chown ${UID}:${GID} -R ${HOME}

USER ${USER_NAME}

# Раскомментируйте программу, которую вы хотите запустить в контейнере.
#ENTRYPOINT ["eeschema"]
ENTRYPOINT ["kicad"]

Обратите внимание, что значения USER_NAME, UID, GID, в строках 17, 18, 19 в dockerfile берутся из вашего аккаунта на хост-машине.

Образ создается как обычно выполненой в открытом в одной директории с dockerfile терминале командой(не забываем пробел и точку в конце команды):

docker build -t kicad5 .

Размер образа получаеться около 800 Мбайт.

Скрипт для старта контейнера на машине с графической картой AMD:

#! /usr/bin/env bash

docker run --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /usr/share/kicad5:/usr/share/kicad -v $HOME:$HOME --device=/dev/dri:/dev/dri kicad5

До первого запуска контейнера:

1). Создаете в Минт-22 директорию /usr/share/kicad5 и копируете туда содержимое /usr/share/kicad из Минт-20 с установленным kicad5

2). Копируете содержимое $HOME/.kicad_plugins из Минт-20 с установленным kicad5 в $HOME/.kicad_plugins в Минт-22

3). Копируете содержимое $HOME/.config/kicad/ из Минт-20 с установленным kicad5 в $HOME/.config/kicad в Минт-22

Теперь можете запускать KiCad-5 с GUI и графическим ускорением на карте AMD в Минт-22 и паралельно установить в Минт-22 KiCad-9.

Чтобы заархивировать созданный образ выполняем в терминале:

docker save -o ./my_bac_kicad5_image.tar kicad5

Чтобы развернуть заархивированый образ на другом машине выполняем в терминале, открытом в одной директории с файлом my_bac_kicad5_image.tar, на нее скопированном:

docker load -i ./my_bac_kicad5_image.tar
Теги:
Рейтинг0
Комментарии0

Аркадный ЗОЖ. 3 напитка для завершения рабочего дня

Привет, Хабр! Пятница — идеальное время для небольшого эксперимента. Недавно наткнулся на свой же старый пост про светящиеся напитки из TRON, и это навело на мысль: а что если совместить ностальгию по ретро-играм с реальной пользой для айтишника?

Мы часто залипаем в экран, забывая про реальность. Приглашаю вместе со мной пофантазировать на тему айтишных напитков по мотивам ретро-игр.

Супергрибной эликсир от Mario. Классика аркадного ЗОЖ

Рецепт:

  • 200-250 мл холодной комбучи (имбирь/ягоды, без сахара — смотрим состав!);

  • Горсть замороженных ягод (малина, вишня, черника);

  • Ломтик лимона или лайма.

Что это даёт и почему это не просто лимонад

Комбуча — это не просто «кислая бурда из детства». Это симбиотическая культура бактерий и дрожжей. Главная её ценность для айтишника — пробиотики и жирные кислоты (уксусная, глюкуроновая).

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

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

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

Что в итоге

Лёгкий, тонизирующий напиток без резкого скачка глюкозы и последующего «отката», как от кофе с печенькой. Реально полезный аналог сладкой газировки. Идеален для легкого перекуса или послеобеденного «перезапуска».

Respawn Sprite (Doom). Восстанавливаемся после DeathMatch

Рецепт:

  • 500 мл воды;

  • Шипучая таблетка электролитов (калий, магний, натрий, без сахара);

  • Порция EAA/BCAA (5-10 г, с цитрусовым вкусом);

  • Коэнзим Q10 (50-100 мг).

Разбираем состав «аптечки»

Электролиты восстанавливают водо-солевой баланс и снимают усталость;

Аминокислоты BCAA/EAA (5-10 г). Быстро усваиваются, снижают умственную усталость, поддерживают мышцы при долгом сидении. Предпочтительнее незаменимые аминокислоты  EAA;

Коэнзим Q10 (50-100 мг) для выработки энергии в митохондриях, чтобы улучшить обмен веществ и уменьшить стресс, снять усталость.

Что итоге

Средство от «выжатости», головной боли и для восстановления нервной системы. Пить после часовых митингов с командой.

Обязательно читайте инструкцию и противопоказания к препаратам!

Nuka-Cola (Fallout). Антирадиационный тоник для хакатонов

Рецепт:

  • Сок 1/2 лимона/лайма;

  • Немного оставшейся цедры;

  • 1 чайная ложка меда;

  • 300 мл ледяной содовой/газированной воды;

  • 1 капсула витамина С или порошок (аскорбат натрия).

Секретные ингридиенты

«Радиация» в данном случае – окислительный стресс от долгого сидения за монитором, плохого сна и вредной еды.

Лимон/лайм. Содержат витамин С и вещества, которые поддерживают работу печени — нашего главного детокс-центра.

Витамин С. Мощный антиоксидант, который позволяет быстро восстановиться при стрессе. Аскорбат натрия менее кислая форма, которая не раздражает ЖКТ.

Охлажденная газированная вода. Дает мгновенное ощущение бодрости за счёт воздействия на вкусовые рецепторы.

Что в итоге

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

Важно

это все это всего лишь элемент стратегии «аркадного ЗОЖ». Основу всё равно составляют сон, нормальное питание и движение. Но такие тоники здорово помогают поддерживать организм в условиях бесконечного бега.

Делитесь своими идеями пятничных напитков в комментариях.

Теги:
Всего голосов 5: ↑5 и ↓0+10
Комментарии2

Прошиваем CH32V003 с помощью платы Arduino

Задался вопросом, а можно ли сделать программатор из подручных средств для CH32V003 на экстренный случай? Или это еще может пригодится тем, у кого его еще нет.

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

В проекте ch32fun есть программа minichlink, так вот она умеет прошивать WCH микроконтроллеры с помощью разных программаторов, например, b003boot, ardulink, esp32s2chfun. Нас интересует программатор ardulink.

Код программатора Ardulink можно взять из arduino-ch32v003-swio. На гитхабе есть обертка его для PlatformIO, кому как удобнее. Он написан под atmega328p, поэтому спокойно запускается на Arduino Nano. Подсоединяем провод от D8 (PB0) ножки Ардуино к SWIO (например, восьмая ножка у CH32V003J4M6), питание к питанию, земля к земле. Всего 3 провода. (Ножку D9 (PB1) так и не понял к чему подключать, но про нее есть в Readme.)

Дальше выполняем команды:

minichlink.exe -c COM3 -i этой командой можно проверить определяется ли микроконтроллер, где COM3 номер порта платы Ардуино, которую используем как программатор.

minichlink.exe -c COM3 -w .\firmware.bin flash -b а этой командой можно залить файл прошивки, где firmware.bin сам файл.

Пока у меня не получилось подключить такой программатор напрямую к PlatformIO, только получилось работать из командой строки, но при желании это сделать можно.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Ближайшие события

ТестНаСпид.РФ — и нет, мы не про болезни

С чего все началось?

Недавняя блокировка Speedtest.net в России застала многих любителей помериться скоростями врасплох и заставила искать альтернативы, которые могут помочь им утвердиться.

Not anymore, ladies and gentlemen — представляем вашему вниманию инновационный отечественный сайт для замера скорости интернета — ТестНаСпид.РФ

Преимущества:

Данное решение является полностью отечественным и не имеет аналогов на рынке. Замер скорости можно осуществить к любому серверу из сотен различных стран на выбор пользователю.

UI поражает своим новшеством в мире дизайна сайтов. Начиная с мелочей и до overall experience все сделано для максимального удобства пользователя.

Адаптивный Web-UI
Адаптивный Web-UI

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

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

На данный момент сервис находится в открытом Beta-тестировании и в планах реализовать ещё много дополнительного функционала по нашему (закрытому) Roadmap-у.

Теги:
Всего голосов 10: ↑6 и ↓4+3
Комментарии5

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

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии2

DIY-плата AD/DA для DSP-задач на ARM+FPGA: зачем я её собрал

В мире встроенных систем и цифровой обработки сигналов (DSP) ключ к быстрому прототипированию и надёжной отладке лежит через собственный инструмент — аппаратную платформу, точно отвечающую вашим задачам. Моя цель — отработать цепочку «аналог ↔ цифра ↔ FPGA ↔ ARM» в реальном времени, без лишних звеньев и оговорок. Именно поэтому я спроектировал собственную отладочную DIY-плату AD/DA с программируемым генератором тактовой частоты.

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

Плата выполнена в формате "Arduino" (?) и служит модулем для быстрой интеграции в платформы ARM+FPGA (Zynq-7000 или аналогичные) через стандартный 40-контактный разъём KLS.

Плата AD/DA
Плата AD/DA

В основу конструкции легла классическая SDR-структура: трансформаторы, АЦП, программируемый тактовый генератор, буфер тактового сигнала, ЦАП и интерфейсные сигналы на разъём KLS.

1. Аналого-цифровой преобразователь: AD9283

  • 8-битный одноканальный АЦП с параллельным CMOS-интерфейсом.

  • Частота преобразования до 100 MSPS.

  • Сигнал PWRDWN и шина данных подаются с разъёма KLS.

  • Вход с внешнего SMA через трансформатор дает дифференциальный сигнал для высокого SNR.

2. Тактовый генератор и буфер: Si514 & Si53306

  • Программируемый кварцевый генератор Si514 формирует опорную частоту.

  • Тактовый буфер Si53306 распределяет сигнал на АЦП, ЦАП и FPGA.

3. Цифро-аналоговый преобразователь: AD9744

  • 14-битный одноканальный ЦАП с параллельным CMOS-интерфейсом.

  • Частота преобразования до 210 MSPS.

  • Сигнал SLEEP и шина данных подаются с разъёма KLS.

  • Выход через трансформатор возвращает аналоговый сигнал на внешний SMA-коннектор.

Зачем и для чего: практические сценарии использования этой отладочной платы

  1. Формирование и анализ сигналов

  • Создания многокомпонентных тестовых сигналов (модуляции AM/FM, chirp-сигналов) для оценки пропускной способности и реактивности FPGA-ядра.

  • Тестирования и калибровки входных трактов при различных уровнях амплитуды и частоты.

  • Генерации шумовых или псевдослучайных сигналов для проверки устойчивости DSP-алгоритмов.

2. Отладка алгоритмов цифровой обработки в реальном времени

  • Нужно прототипировать алгоритмы цифровой обработки данных непосредственно на связке ARM+FPGA и видеть результат «на лету».

  • Использование платы в образовательных целях: для обучения студентов или коллег практикам embedded-разработки и современной цифровой обработки сигналов.

  • Реализация и проверка в HDL алгоритмов, например, вейвлет-преобразования для анализа сигнала и выделения его локальных особенностей.

3. Сравнительное исследование реальной производительности ARM и FPGA-ядер

  • FPGA-ядро: пропускная способность HDL-модулей FIR/IIR, вейвлет-анализ, дизайн HLS-функций.

  • Сбор и визуализация метрик (latency, throughput, resource utilization) через ARM-API и JTAG-интерфейс FPGA.

  • ARM-ядро: замеры FFT-блока, фильтров в Linux-окружении.

Заключение

Эта AD/DA-плата для ARM+FPGA обеспечивает точность, скорость и гибкость, необходимые как для исследований DSP-алгоритмов, так и для промышленных встраиваемых и исследовательских проектов.

Присоединяйтесь к https://t.me/dsp_labs — там выходят реальные бенчмарки, исходники и советы по оптимизации DSP-алгоритмов на ARM/FPGA платформах!

Теги:
Всего голосов 11: ↑10 и ↓1+11
Комментарии11

Разбираюсь с бюджетными преобразователями USB CAN. В качестве параметра для классификации удобно использовать тип применяемого протокола, по которому данные передаются на ПК.

slcan - текстовый протокол который применяется еще и с интерфейсом RS2232, с оборудованием фирм LAWICEL и VScom, переросшим в связку USB-UART-CAN, с виртуальным последовательным портом, а затем - в USB CAN на единственном микроконтроллере, а затем и вообще TCP. C которым можно работать из обычной терминальной программы, без особого софта.
Существует множество реализаций и расширений этого протокола, на разных микроконтроллерах, в том числе STM32, включая поддержку CAN-FD (на STM32G431, STM32G01) в основном в виде проектов на GitHub.
Проект canable (VID:PID AD50:60C4 либо 0x0403:0x6015) (и еще ранний вариант под названием cantact), прошивается в доступные платки на базе контроллеров STM32F042 и STM32F072 (на Ali похоже уже только на F072 продают). Получил развитие в виде canable v2 (STM32G431, 0x16D0:0x117E).
Вариация USB2CANFDV1 от WeAct studio (STM32G01, 0x0483:0x5740) - зашифрованная прошивка без исходников.
Помимо этого: stm32-slcan (STM32L433, 0x0483:0x5740, протокол урезан), UCCBEmbedded (STM32F042, 0x0483:0x5740), CFDC_embedded-slcan (STM32G431, 0x0483:0x5741), CAN2USB (STM32F105, 0x0483:0x5740), CANsniffer (STM32F042, 0x0483:0x5740).
Проект USBtin (PIC18, 0x04D8:0x000A) представляет собой скорее исторический интерес, в его состав входят макросы для поддержки протокола slcan в легендарной HyperTerminal. Не менее историческая разработка - у Michael Wolf, которая как то связана с программой CanHacker.
Проект ESP32RET использует текстовый протокол LAWICEL в качестве подмножества команд для двоичного протокола GVRET как через USB так и WiFi (TCP). Проект WiCAN реализует поддержку протокола slcan через USB, WiFi, BLE, а так же протокола для программы RealDash. Так же эти прошивки знают известный протокол ELM327 для автодиагностики, это тестовый протокол со множеством реализаций, однако при его помощи "сырой" CAN захватить либо трудно либо нельзя.

gs_usb более известный как candleLight (0x1D50:0x606F) по названию платы (разработка Linux Automation GmbH, так же фигурирует наименование USB2CAN by Geschwister Schneider Technologie-, Entwicklungs- und Vertriebs UG). Это уже двоичный протокол. Который рассчитан в первую очередь на контроллеры STM32F042/STM32F072, поддержка контроллера STM32G01 и CAN-FD на текущий момент только создается.
Однако есть проект bugetcan - прошивка для "most STM32 devices", есть готовые пресеты для STM32F042, STM32G01, STM32G431, STM32G473, STM32H743, STM32H745 и тоже работает с этим протоколом

uCAN_FD - упомянутый ранее CFDC_embedded (uCAN CanFD USB Converter(CFUC)) также предлагают свой собственный протокол, но он, похоже, работает только в софте из этого проекта.

pcan и kvaser по названию соответствующих фирм. Реализованы не только для фирменного оборудования, но и для тех же дешевых платок canable/cantact на STM32F042 (0x0bfd:0x0120 и 0x0483:0x000C), что дает возможность использовать софт рассчитанные именно на эти платы.

usb_8dev для 8 devices USB2CAN, реализован в открытом проекте CANalyze (STM32F042, 0x0483:0x1234), который, похоже, больше не развивается

Разные программы для мониторинга CAN обращаются с протоколами по разному. Например мощная программа BUSMASTER умеет работать с оборудованием VScom (в том числе и через TCP) и PEAK, а значит можно попробовать использовать ее с дешевыми платами перепрошитыми на поддержку такого протокола. SavvyCAN и CANgaroo умеют работать с LAWICEL/slcan, протокол candleLight - через драйвер для Windows. RealDash умеет работать с огромным числом протоколов. Ну а в linux (с относительно свежим ядром) некоторые перечисленные протоколы уже встроены в виде драйверов сетевых (устройств) SocketCAN, что тоже поддержано большим количеством софта.

Теги:
Всего голосов 7: ↑7 и ↓0+9
Комментарии8

Американский метеоролог Рид Тиммер показал один из спецавтомобилей Dominator, на котором он преследует торнадо.

В основу транспортного средства в виде «передвижного бункера» взят Ford F‑350. Фары и стёкла машины надёжно прикрыты толстым слоем прозрачного поликарбоната. Также там установлены двойные окна, чтобы защититься от летящих на огромной скорости обломков, когда команда приближается к самому центру торнадо.

Чтобы не дать шторму перевернуть машину, корпус Dominator может опускаться и плотно прижиматься к земле — это делает авто устойчивее и не даёт ему качаться из стороны в сторону. Двери Dominator не распахиваются вбок, а поднимаются вверх. Управляет ими система рычагов и клапанов, установленная на крыше.

Экипаж Dominator также может запускать специальные ракеты с датчиками — они собирают информацию о торнадо прямо изнутри. Эти ракеты крепятся на крыше, а запускаются с панели внутри салона.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии4

В языке C (и C++ тоже) существуют три различных типа: char, unsigned char и signed char.

При этом типы unsigned char и signed char предназначены для хранения чисел. "Предназначены" стоит воспринимать как "рекомендуется использовать для этих целей", фактически, программист волен в этих типах хранить и, выражаясь терминами языка Си, символы.

Когда выбрать unsigned char, а когда signed char? Нужно подумать сколько значений может принимать ваша переменная. Например, если вы храните результат ввода с клавиатуры и у вас вообще не стоит проверка на длину введенного числа, то ... То ваша программа порочна. Следует ограничивать предельную размерность всех данных. Итак, если у вас пользователь вводит
число из диапазона [0..255], тогда используйте unsigned char. Если у вас переменная может быть в диапазоне [-128..127] то используйте signed char. И так далее. Если у вас числа уже не помещаются даже в uint64_t, гуглите Длинная арифметика.

Тип char предназначен для хранения только символов. В зависимости от настроек компилятора char при компиляции транслируется или в signed char или в unsigned char. Хранение чисел в char возможно, но является признаком быдлокода.

char a = 'a'; //верно
char b = 200; //задумайтесь, может тип указать как uint8_t ?

Отдельно хочу отметить, что в 1999 году уже до всех дошло, что каждый раз писать ансигнед чар долго, очень долго. Были введены синонимы (typedef) в файле stdint.h

typedef unsigned char uint8_t;
typedef signed char int8_t;

Я рекомендую вам использовать эти синонимы вместо длинных названий сигнед чар и ансигнед чар.

К слову. Крайние значения для каждого типа хранятся в limits.h. Я напоминаю, что использование магических чисел - плохая практика. Поэтому обратите внимание на возможность написания UCHAR_MAX вместо 255 и так далее см. вики

Для тех, кто пишет код под 8-bit архитектуры (привет, atmega) но планирует в дальнейшем переход на другие платформы, обратите внимание на такие типы, как uint_least8_t...

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Небольшой апдейт по устройству ClockworkPi PicoCalc. Умельцы раскопали RockChip SDK и собрали на основе платы разработки LuckFox Lyra B минимальный рабочий образ Ubuntu 22.04 со всеми драйверами для компонентов устройства. Плата электрически совместима с платой Raspberry Pi Pico. Превращение из кибердеки на Basic в кибердеку на Linux происходит за пару минут.

А внутри Linux уже доступны и Basic и Python и другой софт. У платы всего два недостатка: малый объём памяти и отсутствие Wi-Fi (что решается подключением USB-донглов к внутреннему разъёму USB на плате).

И это реально работает. Покопаться пришлось разве что с процедурой прошивки. Особенность чипа LuckFox Lyra B в наличии встроенной SPI-флешки со стандартной прошивкой, которую нужно стереть для того, чтобы загрузка с MicroSD-карты заработала.

За подробностями отправляю на форум разработчика. Там энтузиасты решают проблемы с RTC-часами, Wi-Fi-адаптерами и прочим.

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии0