I2C, UART, CAN: Какой протокол я выбрал для своего робота на Orange Pi и STM32? 🤖

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ม.ค. 2025

ความคิดเห็น • 45

  • @olegmilantiev
    @olegmilantiev  15 วันที่ผ่านมา

    Спасибо за комментарии к видео! Для меня в новинку использовать ютуб не только для донесения моих мыслей до заинтересованных темой людей, но и как площадку для обсуждения. Я уверен, что проект без обратной связи обречён на провал. Как мне давно сказал хороший знакомый: "один человек создаёт поделку. Только коллектив и обратная связь создают продукт". И я рад, что с вашей помощью я смогу улучшить мой проект.
    Выписал себе из почёрпнутого в комментариях:
    - провести стресс-тест (повысить частоту коррекций и замерить кол-во пропусков. Довести и найти предельную частоту). Оценить, потянет ли одна "пилюля" два мотора (думаю да, но хочу быть уверенным) - спасибо @ИванОсинин-с7и ;
    - нужна ли мне 115200 бод скорость? Опять таки, хочу замерить и принимать решение на основе цифр, а не ощущений - спасибо @barcooler ;
    - напирать на децентрализацию - спасибо Алексею и Игорю.

  • @KyM_TlolKBA
    @KyM_TlolKBA 19 วันที่ผ่านมา +4

    Привет Олег, дядя Вова здесь. КМК надо CAN- потому что ты с ним не работал. Из интереса, если силы есть. Ну, и цена UART2САN.

    • @olegmilantiev
      @olegmilantiev  18 วันที่ผ่านมา

      @@KyM_TlolKBA Привет!
      С наступающим :)
      CAN, конечно, стоит попробовать. Судя по описанию и со слов того знакомого, очень хорошая шина!
      Но ресурсов разработчиков (меня) мало, так что исходя из принципа "не чини работающее", с этой частью робота я закончил. Пока что буде пара UART.

  • @Anton-kr5vc
    @Anton-kr5vc 15 วันที่ผ่านมา +3

    Мне очень нравится 485😊

  • @БакирИмомов
    @БакирИмомов 3 วันที่ผ่านมา

    Да ты прав, самый лучший интерфейс это CAN, только у него проблема это близорукость.

  • @innamoratopazzo25
    @innamoratopazzo25 5 วันที่ผ่านมา +1

    Arduino UNO R4 поддерживает CAN. Arduino UNO R4 WIFI поддерживает WIFI, Bluetooth BLE. Есть ЦАП и АЦП. Часы реального времени RTC. Интерфейс HID. Один операционный усилитель.

    • @olegmilantiev
      @olegmilantiev  5 วันที่ผ่านมา

      @@innamoratopazzo25 blue pill на похожем процессоре. Тоже есть CAN. Но для его работы нужны трансиверы на стороне каждого контроллера и на стороне Orange Pi.
      Для подключения по UART дополнительного оборудования не требуется. Достаточно трёх проводов.

  • @handlewithoutsuitcase
    @handlewithoutsuitcase 14 วันที่ผ่านมา +2

    Есть еще Modbus на 485 - старый добрый, проверенный. Но нужен внешний контроллер, да

    • @olegmilantiev
      @olegmilantiev  14 วันที่ผ่านมา +1

      @@handlewithoutsuitcase Странно, что SPI забыли :)

    • @vvdvlas8397
      @vvdvlas8397 7 วันที่ผ่านมา

      Что за "внешний контроллер"? Наверно драйвер.

  • @Upd-p5q
    @Upd-p5q 19 วันที่ผ่านมา +2

    Когда навигацию уже начнёш делать и закончишь с колёсами, протоколами? Решил объеденить одометрию от лидара и данные от камеры глубины (воксельную карту) оказалось это решается значительно сложнее чем предпологалось (мне казалось этот путь самый простой, ведь проторен многими), и потребовалось как специальное крепление распечатанное на 3д принтере (обьеденяющее камеру и лидар) так и калибровать лидар с камерой, что-бы система координат (СК) однометрии совпадала с СК воксельной карты в моём случае эта калибровка решается нахождением поправок для совмещения облаков точек от камеры и лидара (матрицы вращения и вектора смещения) теперь с энкодерами колёс (и ижесними imu, компасы т.д.) я не преставляю как найти такое преобразование. Если хочешь что-бы ведрусоход ездил автономно т.е. по координатам полученным от камеры, они должны совпадать с однометрией. А без калибровки но с помощью однометрии нужно проехать по маршруту в ручную что-бы он потом проехал сам и всё. С протоколоми не копался ни один не знаю) скопировал бинарный протокол UBLOX себе и по его примеру свои делаю пока нареканий нет.

    • @olegmilantiev
      @olegmilantiev  19 วันที่ผ่านมา

      Да самого напрягает эта возня с железом. Хочется уже высокоуровневыми софтами заниматься. Но засада в том, что движение робота застопорилось в прямом и переносном смысле из-за отсутствия энкодеров у него на ногах. А энкодеры потянули за собой STM32. А теперь мне ещё надо все датчики (сонары, термометр и АЦП) перевесить на порты апельсина (I2C и GPIO, видимо). А для этого неплохо бы платку нарисовать и фрезернуть. Не заливать же 40 pin апельсина в термоклей.
      Пока платформа не готова, не могу развивать проект дальше. Хвала небесам, двиние вперёд есть! А о большем сейчас и мечтать не хочу.
      Поведенческие алгоритмы ещё и рефакторил с LLM-помощником. По их запуску тоже предстоит небольшая морока. Но то уже предстоящие приятные хлопоты.
      P.S. Я бы развивал проект быстрее, но интересно и видео о нём записать. Думаю, мои ролики могут быть кому-то полезны.

  • @fertiv5_67
    @fertiv5_67 14 วันที่ผ่านมา +1

    однозначно uart лучше всех по пропускной. Если не брать spi. Но лучше 485. Есть возможность внешнего мониторинга. Помехи не проблема. Есть возможнось нпрастить. Драйверы копеечные тянут 500кбит.

  • @borisov_dmitry
    @borisov_dmitry 18 วันที่ผ่านมา +1

    К Orange Pi можно подключить MCP2515, драйвера есть.

    • @olegmilantiev
      @olegmilantiev  18 วันที่ผ่านมา

      @@borisov_dmitry верно. Нужно три трансивера, чтобы связать три устройства (апельсин и две stm32 пилюли), чтобы был CAN.
      Или (в моём случае достаточно) два по 4 провода кинуть на UART.

  • @ИванОсинин-с7и
    @ИванОсинин-с7и 18 วันที่ผ่านมา +2

    Зачем тебе по STMке на колесо? Неужели 1 STM не может справится сразу с двумя или вообще сам апельсин?

    • @olegmilantiev
      @olegmilantiev  18 วันที่ผ่านมา

      Сам апельсин - точно нет. У него уже загрузка около 40% и будет только расти. А вот на одну STM два колеса повесить - идея хорошая! Но только после стресс-тестов смогу точнее ответить, реализуемая ли она.

    • @denpar5450
      @denpar5450 14 วันที่ผ่านมา

      @@olegmilantiev одна стм32 спокойно справится с твоим роботом. у меня робот -пылесос на том же стм, что в голубой таблетке. и да в голубой таблетке есть аппаратный юсб, не надо ни каких конверторов.

    • @olegmilantiev
      @olegmilantiev  13 วันที่ผ่านมา

      @denpar5450 понятно. Что ж, тем проще подключать.

  • @denpar5450
    @denpar5450 14 วันที่ผ่านมา +1

    какой кан?! там что в роботе по 10 метров провода? и в блюпил есть кан и юсб есть.

  • @igorovcharov7424
    @igorovcharov7424 18 วันที่ผ่านมา +1

    Проблема у всех без исключения роботов в том, что они вешаются на центральный процессор, расходуя и без того ценное время его работы, своими относительно редкими функциями. Нужно же менять концепцию в корне! а именно: Делать так как в природе. Вспомните структуру мозговых трубчатых костей да хоть человека, хоть любой другой животной. За действия членов отвечает не центральный мозг, а местные мини мозги в этих трубчатых костях, которые в период роста обучаются определенным навыкам(ходьбе, бегу, сидению, письму и прочему и прочему) и после обучения уже выполняют только короткие команды от головного мозга, а не заново учатся.
    Надеюсь доступно изложил.

    • @olegmilantiev
      @olegmilantiev  18 วันที่ผ่านมา

      На все 100% согласен!
      Есть у меня подозрение, что Orange Pi 3B и будет тем самым вспомогательным компом. А поверх него, в некоторой не такой уж отдалённой перспективе, придётся ставить мозг побольше. С GPU или NPU.
      Грубо говоря, этот апельсин может поставлять в гипотетический центральный мозг обработанные через YOLO данные камер, safety предупреждения и тревоги и т.п. Очень интересно именно к этой части перейти. Но так как иду от простого к сложному, то вот ... ноги робота переделал. В текущей реализации тоже есть что доделать. Но должно на первое время хватить и такого шасси.

    • @2005gep
      @2005gep 15 วันที่ผ่านมา +1

      Немного не по теме ролика, но все же - о каких структурах в трубчатых костях вы говорите? Насколько мне известно, в костях действительно есть орган, называемый мозгом - костный мозг. Но он только называется так, а по сути к нервной деятельности отношения не имеет. Занимается выработкой клеток крови. Опять таки - не являюсь специалистом и могу ошибаться, но всю двигательную активность - генерирует спинной мозг. Он имеет простую структуру и разделен на отделы, каждый из которых отвечает за моторику отдельных частей тела.

  • @AET-j3q
    @AET-j3q 10 วันที่ผ่านมา

    давно у блюпил кан отняли?

    • @olegmilantiev
      @olegmilantiev  10 วันที่ผ่านมา

      @@AET-j3q его и не было без трансивера

    • @AET-j3q
      @AET-j3q 10 วันที่ผ่านมา

      @@olegmilantiev аааа
      а он у кого то есть с трансивером?

    • @olegmilantiev
      @olegmilantiev  10 วันที่ผ่านมา

      @AET-j3q вы не тот вопрос задали :)
      Есть ли возможность подключения этих устройств без трансиверов? По какому-то другому протоколу. Например, UART или USB.
      Задача же не во что бы то ни стало использовать CAN. Смотрите на 03:05

  • @barcooler
    @barcooler 18 วันที่ผ่านมา

    А чего не взять контроллер со встроенным CAN?
    Тогда проще было бы, как минимум с одном стороны.
    К слову - 100кБит есть потребность, в такой скорости обмена?

    • @olegmilantiev
      @olegmilantiev  18 วันที่ผ่านมา

      Если цель во что бы то ни стало запустить CAN, то в твоих словах есть логика. На 01:03 я объяснял, особенно в хобби проекте с единственным разработчиком приходится концентрироваться и решать узкую задачу. Сейчас нужно было связать апельсин с колёсами. Проще всего и эффективней всего оказалось пару UART кинуть к BluePill.
      У меня на RKNN уже настроена YOLOv8 с custom моделью. Я поэтому не хочу этот апельсин менять на другой. Если сейчас затевать перестановку основного компа или смену контроллеров - это ещё больше отдалит меня от интересных поведенческих задач робота. Железо меня так .... во вторую очередь интересует.

    • @vvdvlas8397
      @vvdvlas8397 7 วันที่ผ่านมา

      100кбит - это очень небольшая скорость.

  • @SeregaTikhonov
    @SeregaTikhonov 16 วันที่ผ่านมา +1

    что такое "Дорого"? У вас куча камер, колёса, приводы, одноплатник... В этом случает три-пять конвертеров CAN - это какой процент стоимости от всего?
    Я просто не понимаю таких экономистов, сначала купят железа на 15 тыс, а потом... "не, преобразователь за 150 р это дорого...". Это как те, кто по электричкам от контролёров бегает, у которых 200 тыс на айфон есть, а 55р на проезд нет.

    • @olegmilantiev
      @olegmilantiev  16 วันที่ผ่านมา

      @@SeregaTikhonov ну не стоит передёргивать. "Дорого" я говорил про смену миникомпа. Он тыщ 12 стоит, если orange 5 на рокчипе следующем.
      Тренд "CAN любой ценой", нешуточно разгоревшийся в комментах мне нравится :)
      Хорошо, что я чётко понимаю задачу и у меня нет сомнений в эффективности применённого решения.

    • @olegmilantiev
      @olegmilantiev  16 วันที่ผ่านมา +1

      Бритва Оккама даёт очень простой ответ, отсекая лишние компоненты.

  • @Kastomz
    @Kastomz 13 วันที่ผ่านมา +1

    Modbus rtu

  • @sergeyworm1476
    @sergeyworm1476 19 วันที่ผ่านมา

    Привет!
    Спасибо за видео!
    Но у BluePill (stm32f103) есть CAN на борту. Называется bxCAN. Но трансивер для него прикупить придётся.

    • @olegmilantiev
      @olegmilantiev  19 วันที่ผ่านมา +1

      Ага, наличие CAN видно в правом списке на 03:05. И там же сноска, что CAN не подключить без трансивера. Если б нужно было BluePill подключить к существующей системе с CAN, выбор мог бы быть другим. Но этой шины нет в используемом сейчас апельсине.

  • @hutoryanin
    @hutoryanin 6 วันที่ผ่านมา

    Делай по SPI 😅

    • @olegmilantiev
      @olegmilantiev  5 วันที่ผ่านมา +1

      @@hutoryanin о да!! :)

  • @yurigolovin4333
    @yurigolovin4333 16 วันที่ผ่านมา

    Эм, в Blue Pill на чипах f103с8 есть CAN, держу в курсе. Ни один интерфейс на серъезных щах подключать без доп обвязки нельзя

    • @olegmilantiev
      @olegmilantiev  16 วันที่ผ่านมา

      @@yurigolovin4333 с новым годом! :)
      Да, есть у него CAN, гляди 03:05. Там же рассказал, почему именно в этот раз эта хорошая шина не подошла именно мне.
      Я рещал и решил локальную задачу. В отрыве от контекста CAN супер выбор!

    • @yurigolovin4333
      @yurigolovin4333 16 วันที่ผ่านมา

      @@olegmilantiev и вас с наступившим! Мне ж как зрителю надо вас носом тыкнуть :)

    • @olegmilantiev
      @olegmilantiev  16 วันที่ผ่านมา +1

      @yurigolovin4333 :) согласен. В споре рождается истина

  • @AlexeyKuklin
    @AlexeyKuklin 18 วันที่ผ่านมา +1

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

    • @olegmilantiev
      @olegmilantiev  18 วันที่ผ่านมา

      @@AlexeyKuklinДатчики почти не влияют на загрузку проца. И пока не влияют на низкоуровневые функции управления колёсами

  • @juozasnarvoisas7516
    @juozasnarvoisas7516 12 วันที่ผ่านมา

    Vania!!!!