Обновить

DIY

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

Разбираюсь с бюджетными преобразователями 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

Японский энтузиаст собрал детскую версию легендарной Toyota AE86 — даже при своей маленькости она резво раздаёт угла. Размеры малютки как у офисного стола (2400×1000×800 мм), вес 110 кг, но выдерживает пилота до 300 кг. Внутри электромотор на 2500 Вт, который обеспечит весьма реальный дрифт при максималке в 70 км/ч. По сути, шустрая игрушка с характером старшего брата из культового аниме про дрифт — Initial D.

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

Когда мы собирали в гараже электрокартинги, нужно было обеспечить хорошее освещение. Поставил 6 люминисцентных светильников по 2 лампы 120 см: три на стенах и два на потолке.

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

В итоге недавно заменил все светильники на светодиодные и счастлив.

Полностью светодиодное освещение (простите за хлам)
Полностью светодиодное освещение (простите за хлам)

Алгоритм замены простой:
1. Покупаете светодиодные лампы, цоколь G13. Цена 1 шт. от 160 до 250 руб. в зависимости от мощности. Я брал на 30 Вт., 4000K.
2. На светильнике снимаете лампы, полностью отключаете ЭПРА, он нам больше не понадобится.
3. Переподключаете схему светильника (как на рисунке): с одной стороны на все 4 клеммы (под две лампы) подводите фазу, с другой стороны - ноль.
4. Устанавливаете новые светодиодные лампы.

Забываете обо всех проблемах с пуском. Если выходит из строя одна лампа (хотя, у меня еще это не случилось), просто меняете её, не нужно выяснять в лампе ли дело, или в ПРА.

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

Заметки с ИИ-котом v. 1.0, для Windows

⁠⁠Скачать. (ссылка обновлена) Бесплатно, и установка не требуется.

Разрабатываю по фану — потому что мне самому не хватало чего-то простого, лёгкого и по делу.

Это приложение для личных заметок не претендует на звание "универсальной системы управления знаниями", не строит из себя ракетный двигатель и СОВСЕМ не пытается быть новым Обсидианом. Это просто удобное место, куда можно быстро спрятать мысль, идею или список покупок.

Что умеет:

  • Работает только с текстом: .txt, .md, .markdown, .mdown

  • Создаёт новые заметки в формате Markdown (но без наворотов — как в старые добрые)

  • Не держит тебя в облаке, не шифрует данные в своём формате — всё лежит на диске, как тебе привычно

  • Левое окно показывает структуру папок — полупрозрачные папки = пустые (нет файлов или подпапок)

  • Двойной клик по папке — запоминается как начальная при следующем запуске

  • Одинарный клик — раскрывает содержимое

  • Если в буфере есть текст — он автоматически попадёт в новую заметку. Буфер очищается.

  • Поиск: по тексту, по названиям файлов, по содержимому. С историей. А еще есть Избранное.

  • Настройки? Пока только для нейросетевых функций и ответов ИИ-кота (его можно позвать, кликнув по коробке), который может что-то подсказать или прокомментировать с долей сарказма.

Про искусственный интеллект:

  • Поддерживает OpenRouter — регистрируешься, получаешь 50 бесплатных запросов в день

  • Хватает за глаза для личных заметок, резюме текстов, генерации идей или перевода мыслей во что-то собранное

  • ИИ-кот ведёт себя не особо прилично.

В чем отличие от Обсидиана:

Обсидиан — это космический шаттл для заметок. А мы тут катаемся на велосипеде — быстро, удобно и без инструкции.

Просто. Не нужно ничего устанавливать — скачал, запустил, пишешь.

Лёгкий. Всё приложение весит 17 Мб.

Минимум функций. Не запутаешься. Никаких плагинов, графов, связей и внутренних ссылок.

Стиль свой. Не такой серьёзный, как Обсидиан.

Бесплатный ИИ здесь не только для управления, а еще для подколов и помощи.

Короче:
Если устал от систем, которые требуют обучения, миграции каждые полгода... и выглядят как база данных космического корабля — это приложение для тебя.
Просто открываем, пишем, сохраняем. ИИ критикует и помогает, если нужно, но не навязывается.

Горячие клавиши:
Ctrl + N - создать заметку
Ctrl + P - создать папку
Ctrl + F - искать текст в открытом файле
Ctrl + S - сохранить файл
Ctrl + колёсико - изменение размера шрифта

Win + точка - вставка эмодзи

Теги:
Всего голосов 9: ↑9 и ↓0+9
Комментарии9
Как можно видеть, строки 5 и 6 используют вдобавок уменьшенный интервал.
Как можно видеть, строки 5 и 6 используют вдобавок уменьшенный интервал.

Была даже абсолютно безумная мысль замутить электронную книжку на таком вот сегментном принципе, но не знаю, что меня больше останавливает: глазоломность шрифта или перспектива паять около 10 000 светодиодов в размере 0402 (или хотя бы 0603).

ЗЫ: добавил «ненормальное программирование» просто потому, что оно напрашивается сначала в эмуляции погонять и оценить степень невыносимости такого шрифта.

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

Блогер собрал безумный симулятор для мотогонок. Установка повторяет каждое движение из игры: наклоны, подскоки и... даже падения. Если в игре вы потеряли контроль — в реальности тоже рискуете слететь с «мотоцикла». Реагирует всё: от угла поворота до столкновений. Авария в симуляторе — гарантированный удар в корпус. Виртуальная смерть теперь почти настоящая.

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

3д принтер у меня с ковида, octoprint на Raspberry 3 у него вырос практически сразу, и все это время дома был home assistant который сменил уже 3 поколенея Raspberry и сейчас живёт на 4. Так же принтер creality ender 5 pro почти сразу был подключен через розетку на zigbee. Много лет, Карл ! Но как сделать автоматическое выключение принтера после печати я додумался только вчера. В общем все очень просто, и, надеюсь, понятно, по скрину из автоматизации home assistant. Само собой нужна установленная и настроенная интеграция OctoPrint в HA. z_power_3d_printer это вот такая розетка.

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

Универсальная автоматизация для Home Assistant, которая закрывает все краны в комнате, где произошла утечка

alias: Сработал датчик протечки
description: Закрыть все стояки в комнате, где сработал любой из датчиков
triggers:
  - value_template: >
      {{ states.binary_sensor | selectattr('attributes.device_class', 'eq',
      'moisture')| selectattr('state', 'eq', 'on') | list | count > 0 }}
    trigger: template
    for:
      hours: 0
      minutes: 0
      seconds: 5
actions:
  - variables:
      data: |
        {% set leak_sensor = states.binary_sensor
          | selectattr('attributes.device_class', 'eq', 'moisture')
          | selectattr('state', 'eq', 'on')
          | first %}
        {% if leak_sensor %}
          {% set area = area_id(leak_sensor.entity_id) %}
          {{ {'leak_sensor': leak_sensor.entity_id, 'area': area, 'area_name': area_name(area)} }}
        {% else %}
          {{ {'leak_sensor': None, 'area': None, 'area_name': 'Unknown'} }}
        {% endif %}
  - parallel:
      - data:
          entity_id: >
            {{ expand(area_entities(data.area)) | selectattr('domain', 'eq',
            'valve') | map(attribute='entity_id') | list }}
        action: valve.close_valve
      - action: script.play_text
        data:
          message: Обнаружена протечка в {{ data.area_name  }}, закрыла стояки
      - action: notify.persistent_notification
        metadata: {}
        data:
          message: Протечка в {{ data.area_name  }}
      - action: input_text.set_value
        metadata: {}
        data:
          value: Обнаружена протечка в {{ data.area_name  }}
        target:
          entity_id: input_text.protechka

Алгоритм простой, в течении 5 секунд должны появится устройства с типом moisture со статусом ON, по нему вычисляется комната и название (для вывода на экран и озвучивание), потом в найденной комнате все краны закрываются, плюс проигрывается звук на колонках, плюс выводится сообщение. Главное условие - датчики протечки и краны должны иметь свойство комната.

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

Исследователи из Федеральной политехнической школы Лозанны (EPFL) и Итальянского института технологий создали роботизированный торт с танцующими мармеладными мишками, использующими съедобные аккумуляторные батареи. RoboCake является частью финансируемого ЕС проекта RoboFood в сотрудничестве с кондитерами и учёными из EHL в Лозанне. Наверху свадебного торта, работающего на съедобных аккумуляторных батареях, танцуют два красных мармеладных мишки из желатина, сиропа и красителей. У них есть внутренняя пневматическая система. Воздух, нагнетаемый в мармеладных мишек, проходит по специальным каналам, и в результате их головы и руки двигаются. То, что заставляет мишек качаться, помимо пневматической системы, — это набор темных шоколадных дисков на нижнем ярусе десерта — съедобные перезаряжаемые батареи. Их разработали исследователи из Istituto Italiano di Tecnologia из витамина B2, кверцетина, активированного угля и шоколадом. Кроме того, их можно есть, как и жевательные конфеты. Эти съедобные перезаряжаемые батареи на роботизированном свадебном торте также питают светодиодные свечи.

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

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

Инженеры Bethesda в сотрудничестве с мастерской AWE me создали настоящий щит-пилу из Doom: The Dark Ages и показали его в действии. Боевой гаджет оснастили вращающимися лезвиями и двигателем, который приводит пилу в действии. Устройство передадут в качестве экспоната в Королевскую оружейную палату Великобритании.

Игра Doom: The Dark Ages выйдет 15 мая на PC, Xbox Series X/S, PS5 и в сервисе Game Pass.

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

Про колёсо Илона (оно же "колесо Mecanum") я с коллегами узнал достаточно давно. Году в 2018 мы загорелись желанием изготовить свой вариант четырехколёсной тележки на колёсах Илона чтобы освоить программирование её кинематики и начали с проектирования собственно колёсного хаба. К слову сказать, таких колёс на просторах известного китайского маркетплейса - вагон и маленькая тележка, но нам захотелось изготовить колесо своего дизайна. Подробности о кинематике тележки на четырех колёсах Илона можно прочесть в статье на Wikipedia.

Коллега ЧПУшник за пару недель полностью спроектировал колесо в 3D и даже изготовил один хаб (из двух симметричных половинок) из сплава Д16Т на нашем фрезерном ЧПУ в 5-ти координатах. Много лет этот хаб лежал на витрине и пугал своей экзотичной формой посетителей нашего офиса. В марте-апреле 2025 года у нас образовалось некоторое количество свободного времени и мы решили задействовать его с пользой, то есть дожать тему колёс Илона. Мы изготовили оставшиеся три хаба, для чего пришлось полностью переписать программу для ЧПУ чтобы сделать инверсную копию колеса. Запроектировали и изготовлили на токарном ЧПУ латунные втулки для роликов, а на 3D принтере напечатали сами ролики из эластичного материала. Оси роликов изготовили из калибровонного прутка Ф6 пищевой нержавейки.

Собрали всё воедино и установили на платформу с четырьмя шаговыми двигателями типа NEMA17, привод на колёса от которых передается через червячные редукторы с числом редукции 1:30. Для подачи сигнала на ШД использовали драйверы DRV8825 от дешманского 3D принтера предоставленного на разграбление всё тем же коллегой. Блок управления запрограммировали на Verilog-е для разработанной ранее плате "Карно" предназначенной для обучения ПЛИСоводству. В качестве дистанционного управления тележкой выбрали пульт ДУ от телевизора, так как код его декодера очень прост в реализации на Verilog и уже применялся нами для другого аналогичного проекта.

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

1. Слишком большое редукционное число (1:30) делает перемещение тележки очень медленным. Радикально увеличить частоту сигнала STEP (сейчас это 16 кГц при режиме MODE=1/16) не получается - шаговики теряют синхронизацию и перестают вращаться. Планируем зменить редукторы, воможно вместе с ШД, на BLDC.

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

3. Число роликов в колесе требуется увеличить (сейчас их 6 шт), чтобы обеспечить плавный переход от одного ролика к другому, иначе заметны рывки.

4. Ролики требуется изготавливать гладкими из резины с высоким коэф трения, 3D печать не дает качественной поверхности и такие ролики плохо сцепляются с половым покрытием. Тут есть варианты: выточить на ЧПУ из полиуретана или отлить из эластопласта в пресс-форму. Возможности для этого имеются.

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

Код блока упраления тележкой на языке Verilog для ПЛИС: https://github.com/Fabmicro-LLC/KarnixMecanumTest

Дизайн платы "Карно" выполненный в САПР KiCAD: https://github.com/Fabmicro-LLC/Karnix_ASB-254

PS: 3D модель колеса Илона выложу позже, после доработок.

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

Занимательная арифметика ни о чем:

Как писал уже - переделал TV-бокс в десктопный компьютер, работающий с большим монитором.

Одна из целей в том числе: проверка теоретической "энергоэффективности" сего девайса.
Питается он от USB, замеры потребления показали: максимум - 0.7А при 4.99В, то есть с округлением 3.5 Ватта.
Вспоминая "биг-тауэры" 15-летней давности, уступающие в производительности, но с блоками питания по 400 Ватт... Хм...

А что, если посчитать автономную работу?
Допустим, у нас есть аккумуляторная батарея 12В, и преобразователь DC-DC с КПД 100% (чтобы проще считать)
На сутки работы требуется 24 * 3.5 Ватт = 84 Ватт*ч.
Приводя ватты к 12-вольтовой батарее получаем 7 А*ч.
Разумеется, свинцовая батарея дает где-то треть от номинала - значит, это будет 21 А*ч. Стандартная автомобильная - от 45 и более.

То есть, на одной заряженной автомобильной батарее такой компьютер, без учета монитора, может работать пару суток?
А если взять LiPO4, у которой реальная емкость более соответствует номиналу - несколько суток с запасом?

При этом, чтобы покрыть расход в 84 Ватт-часа - достаточно заряжать эту батарею всего один час в день 100-ваттной солнечной панелью, еще и запас останется, на всякие там КПД. А день немножко длиннее чем 1 час.

Возобновляемая энергетика как она есть.
Еще бы монитор был энергоэффективным...

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

На сайт Foldnfly представлены 53 инструкции по сбору бумажных самолётиков. Для каждого вида самолётика сделан подробный гайд с уровнями сложности и пошаговым описанием, а также видеороликами по сборке. Если вы хотели прочистить мозги и весело залипнуть, то это отличный вариант для приятного времяпрепровождения.

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