dzz: Dizzy の冬 (Default)
Кстати, нужно выбрать инструмент для отображения скелетной 3D-модели кисти в реальном времени с малой задержкой. Наверняка есть такие фреймворки под Linux, но я очень далёк от разработки не-вебовских программных мордочек...
dzz: Dizzy の冬 (Default)
Научился работать с мультиплексором i2c из питона.

Вообще, набор модулей adafruit_circuitpython не устаёт удивлять количеством поддерживаемого железа при едином подходе к API. Их вариант MPU6050 заработал через их же модуль мультиплексора с первой попытки, данные с двух акселерометров снимаются отлично.

Поддержки DMP там, правда, тоже нет, но с этим я уже смирился. Зато появилась идея поставить на перчатку промежуточный контроллер для сглаживания выбросов и расчёта эйлеровых координат, эдакий DIY DMP.

По софту: всё прототипирование будет на питоне, сейчас это, скорее, POC, чем полноценный проект, по результатам приму решение о целевой архитектуре и языках.
dzz: Dizzy の冬 (Default)
Продолжаем продолжать пилить железку, пока на уровне макетной песочницы.

AR_Glove_2023-03-22_19-58-04.jpg

Доехали мультиплексоры i2c (PCA9548A) и ещё один забавный датчик расстояния/приближения (VL6180X). С мультиплексорами пока не разобрался, а вот у гироскопа, на энергопотребление которого я ругался, оказался бракованый стабилизатор питания. Заменил модуль на такой же из соседнего пакетика - ток упал в 10 раз.

Proxy-датчик работает в диапазоне от 0 до 255 мм, забавность же заключается в том, что при отсутствии препятствия он заметно подтормаживает с ответом. Если видит препятствие вне 25 см - выдаёт 255 и не тормозит.
dzz: Dizzy の冬 (Default)
Продолжаю пилить мелкими фракциями железячный pet-проект.

Вечер пятницы прошёл под флагом 6-осевого гироакселерометра MPU-6050.

Во-первых, внезапно выяснилось, что эта плата модуля жрёт 100 миллиампер вместо заявленных для чипа 39 в максимально неэкономном режиме. Если питать её от распберри, жутко греется стабилизатор питания, превращающий 5 вольт в штатные 3.3. Возможно, всё это из-за встроенных в плату резисторов подтяжки, надо отпаять и посмотреть. При внешнем питании от 3.3В стабилизатор почти не греется, но потребляемый ток всё равно порядка 80 mA.

Во-вторых, научился получать данные акселерометра и гироскопа по i2c на распберри из плюсов и питона, и это хорошо. Плохо то, что в чипе есть некий Digital Motion Processor (DMP), доступный только из софта производителя (InvenSence, сейчас TDK) по недокументированным портам, и, в теории, сильно облегчающий обработку данных. Но не для опенсорса.

Пишут, что сам чип довольно старый (2017) и шумный. Заказал десяток более современных сенсоров BMI160, чуть дороже, но точнее и без секретных DMP. Приедут в мае, пока обойдусь тем, что есть. В принципе, на рынке имеются более интересные чипы по $25-50 за штуку, но мы же делаем дешёвую перчатку :)

В-третьих, разобрался в принципах работы motion-трекера Vive Tracker. Высокая точность и абсолютное позиционирование. Ага. Он оптический и абсолютный за счёт настенных маяков. Т.е. для автономного трекинга в движении не годится совсем. Но некоторые идеи можно почерпнуть и оттуда. До кучи посмотрел подходы к определению положения пальцев в разных AR/VR-проектах. Где-то тензодатчики длиной во весь палец, где-то - индукционные маяки на каждой фаланге, где-то - вообще оптическое распознавание.

В-четвёртых, научился дешифровывать i2c-протокол с помощью логического анализатора DSLogic Plus. Скорее до кучи, чтобы освоить прибор. На клиентской стороне - линуксовый DSView, разбираться с ним было достаточно прикольно.

В целом, доволен, буду дальше двигаться понемногу. На очереди - полноценный сбор данных с множества IMU-датчиков через i2c-мультиплексор (приедет в апреле), станут ясны требования к производительности. А там и до ключевого момента - обучения и распознавания движений нейросеткой, глядишь, дойдёт.

Ну и просто отвлечься от софтописательства разной степени энтерпрайзности на что-тотновое - бесценно :)
dzz: Dizzy の冬 (Default)
Сенсорные кнопки вполне успешно подключились по i2c к RPi через контроллер TI PCF8574. Сам не фанат вертикальных видео, но иначе не показать всю мощь решения :)



Большую часть времени убил на то, чтобы понять: распберри и плата с внешним питанием должны иметь общую землю, иначе мастер i2c просто не видит устройство. Я, всё-таки, ненастоящий сварщик.

Подтяжка резисторами не понадобилась. Соседняя плата гироскопа-акселерометра (Pololu AltIMU-1) тоже успешно определилась.
Следующим шагом будет монтаж всего великолепия на перчатке, когда подъедет мультиплексор i2c. Заодно станет понятно, хватит ли скорости шины для параллельной обработки пяти акселерометров в реальном времени.
dzz: Dizzy の冬 (Default)
Купил для одного пет-проекта немного сенсорных кнопок на базе чипа TTP223 с режимами нажатия и фиксации (задаются перемычкой). На выходе - сигнал срабатывания (прямой или инвертированный, тоже определяется перемычкой). Чувствительность регулируется внешним конденсатором.




Следующим шагом буду делать из них i2c, когда доедет контроллер TI PCF8574.

December 2025

S M T W T F S
  12 3456
7 8 9 10 11 1213
14151617181920
21222324252627
28 29 3031   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 31st, 2025 01:55 pm
Powered by Dreamwidth Studios