Comments 75
Т.е. вам очень повезло, либо вы сильный специалист, если у вас заработала плата с первого раза =)
Очень круто, спасибо! Можно ли купить ваше устройство?
Мы во Флиппере тоже используем STM32 WB55 и столкнулись с выгоранием передающего тракта BLE если оставить на сутки устройство в режиме STOP 2, проблема описана здесь. Может кто сталкивался с подобным?
Кроме доски есть же ещё внезапно и человек. Снимать данные с движения человека прикидывали?
Ведь, думается мне, движение доски это следствие движения человека. И если думать о системе разбора движений, то надо данные человека в первую очередь снимать и анализировать.
Движение доски это следствие. Хотя как упрощенная версия записи движения человека годится.
Извините, если немного сумбурно.
Теоретически там дохнуть нечему, кроме MEMS, для него надо читать даташит. P.S.: ещё кварцы могут…
Конформное покрытие (заливка) нужна в основном для защиты от влаги. Есть варианты. Хорошо работает покрытие чем-нибудь типа Humiseal 1A33 в три слоя. Ремонтопригодно, удобно контролировать качество нанесения под ультрафиолетом. Да, вероятно, не бюджетно, зато не двухкомпонентный, как какой-нибудь УР-231 и сохнет относительно быстро.
Как бы я делал. Напечатал бы под плату корпус несколько больше платы — буквально, на миллиметр с каждой стороны. Установил туда плату на стоечках с точечным контактом, и залил всё силиконовым двухкомпонентным компаундом. Можно попробовать начать с ПК-68, он шикарно затекает в любые самые мелкие щели, но довольно мягкий. Возможно, потребуется найти более твёрдую версию. Собственно, эластичный компаунд обеспечит защиту как от вибрации, так и от воды. Но вот USB он точно испортит, залившись внутрь, да и вообще любые разъёмы.
P.S. Довольно странный выбор, использовать гребёнки с шагом 2.5 мм на таком миниатюрном устройстве. Чем вам mini molex не понравились?
P.P.S Увидел дальше 100500 комментариев «зачем такие разъёмы».
Довольно странный выбор, использовать гребёнки с шагом 2.5 мм на таком миниатюрном устройстве.
Это временный разъем для программирования, потом я планировал его отпаять.
Желаю довести софт до конца! Надеюсь, будет продолжение
Шикарная реализация! Интересно было почитать.
В глаза бросается неуместный разъем с шагом 2,5мм. Я подозреваю, что это для программирования. Недавно видел отличную рекомендацию для этого случая — оставляйте контактные площадки и подключайтесь прищепкой с Pogo Pins.
Рекомендацию видел на шикарном канале https://www.youtube.com/c/VladimirMedintsev/videos, само видео быстро на нашел.
Схематически варианты исполнения можно тут посмотреть:
https://hackaday.com/2019/06/13/soicbite-a-program-debug-connector-for-an-soic-test-clip/
https://imgaz.staticbg.com/images/oaupload/ser1/banggood/images/4D/63/a5208c02-942c-4e88-b535-21ea94b87275.jpg.webp
https://youtu.be/nTp0e01cLE0?t=391
Да, вот эта самая "прищепка". И процесс ее эволюции )
Вот я такие SMD разъемы случайно отрываю эпизодически. Ушел от них в сторону сквозных с таким-же шагом. По крайней мере любую косую нагрузку держит норм, хоть и добавляет доп работы дома.
Вот мой девайс на ардуино! и «схема» где каждая микросхема (даже в DIP корпусе) на отдельной платке и все это соединино лапшой из проводов.
Суть в работе на колбэках по готовности: подписались на notifi — отправляем первый кусок. Первый кусок отправлен — отправили второй и т.д. пока не отправим все данные.
Советую увеличить MTU — будет заметно проще. Делал такой же девайс ~ 400 измерений в секунду не проблема при правильной организации передачи данных.
Была статья про проект измерителя вибрации для велосипеда с целью картирования велодорожек. КМК возможность недорого приобрести подобный гаджет и легко интегрировать его с картографическим приложением в перспективе послужила бы развитию мелкодорожной сети.
Почему выбрали micro-b а не type-c?
Из каких соображений выбирали отверстия? Под головки винтов места совсем нет.
Над трассировкой еще можно поработать.
Я бы сначала придумал корпус хотя бы примерно, а потом вписывал бы в него плату, параллельно корректируя и то и другое.
Почему выбрали micro-b а не type-c?
MicroUSB занимают меньше места, у меня много шнуров для них, просто дело привычки.
Из каких соображений выбирали отверстия? Под головки винтов места совсем нет.
Чтобы плата просто крепилась на пластиковые бобышки такого же диаметра внутри корпуса.
Над трассировкой еще можно поработать.
Идеальной трассировки не бывает, это вопрос лишь того, сколько времени хочется на это потратить. Хотелось бы услышать какие-то конкретные замечания, если что-то бросается в глаза. Было бы очень полезно.
Я бы сначала придумал корпус хотя бы примерно, а потом вписывал бы в него плату, параллельно корректируя и то и другое.
Хотя бы примерно корпус как бы есть, но пока он только в моём воображении.
Пластиковые бобышки в каком именно виде? Оплавляемые блямбочки после монтажа? Стопудово отлетят. Поджатые с двух сторон корпусом?
По трассировке, первое, что бросается в глаза:
1. Лучше выводить трассы непосредственно из углов, избегая образования острых углов вида «площадка-трасса». Это кислотные ловушки и просто некрасиво.
2. Зазор между сегментами (переходными отверстиями) одной и той же цепи тоже должен быть выдержан. Формально это нарушение правил зазоров, но многолетний просмотр чужих плат показал, что многие производители забивают на это и делают как есть.
3. Не соединяйте выводы контроллера просто между собой под корпусом трассами (полигоном — вполне). Всегда тяните трассу наружу. Это сейчас у вас нет рентген-контроля. А когда понадобится, то технологи будут вас тепло вспоминать, потому что не понятно, залипло, медь, непротрав или что там в действительности в этом месте.
4. Питание надо делать полигоном. У вас не двухслойка, так используйте все плюсы четырёхслойки. Т.е. никакой непонятной звезды. Нормальный полигон. Все неиспользуемые места в этом слое — земля, сшитая переходными с основной землёй.
5. То же касается нижнего слоя. Можно было залить землёй. Тут еще есть такая штука как баланс меди. Понятно, что в вашем случае это скорее всего не имеет значения, но вы же когда код пишете, вы же его пишете так, чтобы было удобно, масштабируемо, поддерживаемо и вот это всё. То же самое касается железа.
6. Из-за размера платы термалы на внутреннем слое не имеют смысла. Плату такого размера прогреет почти любой паяльник.
7. Дикое подключение крайнего левого отверстия гребёнки над разъемом. У вас же там трасса во внутреннем слое спокойно к нему подходит. Зачем два переходных отверстия?
8. Одно переходное на микросхему питания — очень мало. Сшейте пузо хотя бы пятью отверстиями. Ведь мк у вас нормально сшит с землёй, так чем питальник хуже? Во всех подобных корпусах на пузо как минимум сбрасывается тепло с кристалла, поэтому хороший контакт с внутренней землёй очень нужен!
9. Подвод питания к axp тоже можно было делать единой трассой, не деля её в конце на несколько тоненьких. Да, понятно, что потребление мало и всё такое прочее. Но лучше всегда делать с запасом, благо ваш дизайн это позволяет.
Разумеется это так всё, придирки. По моим наблюдениям, не работают нормально только совсем уж кривые дизайны.
Ах, да, про корпус. Я бы на вашем месте искал какой-то готовый корпус в первую очередь. Какую-нибудь гаинту из abs отлитую. С герметизацией. Да еще чтобы можно было 18650 туда запихнуть. Опять же по моему опыту, от ударных нагрузок типа 500g 1-2мс ничего таким аккумуляторам не делается. Ставь их хоть вдоль, хоть поперёк удара — всё держат. Главное — механически не повредить.
Вы не первый, кто предлагает ставить USB-C, думаю надо всерьёз задуматься над его использованием. Никаких аргументов кроме привычки в пользу MicroUSB нет. Интересно, получится ли найти Type-C разъем ещё и дешевле чем MicroUSB? Текущий разъем от Molex довольно дорогой.
Мопед не мой. Артикулы оттуда я не проверял. Но вообще их очень много всяких разных.
www.aliexpress.com/item/33045191307.html
Как-то тоже решил поразвлекаться с stm32. Долго мучался с драйвером usb audio. Использовал cubeMx и в нём тогда было куча багов. Такого сервиса с монтажом тогда ещё не было и я паял сам. Так и не смог стмку припаять, они сгорали от нагрева паяльником или феном и не прошивались полноценно. В итоге на элементарнишую задачу потратил кучу времени, нервов и денег. После этого зарёкся больше к stm32 не прикасаться.
Есть один проект в похожем направлении (там powermeter для бега: github.com/fuzzylabs/wearable-my-foot). С ним возникла одна сложность, дрифт измерений скорости (интеграл ускорения по времени) и углов. Калман-фильтр помогает примерно никак, разбег там очень большой. То есть, если не «обнулять» регулярно угол и скорость, то она улетает в бесконечность. Кто-то сталкивался, в чем может быть проблема? (Не исключаю что было упущено что-то достаточно очевидное)
А Калман у вас какие данные объединяет? Насколько мне известно, добавление магнитометра помогает компенсировать дрифт гироскопа, но это не точно.
Мне так и не удалось соединится ни с одним STM32WB55 произведённым в 2020 году, у вас вроде из той же серии.
Может уже хватит запихивать в мк rust/python/ruby/javascript и другие не предназначенные для этого языки?
При этом я абсолютно согласен с тем, что python/ruby/javascript не стоит пихать в микроконтроллер, хотя бы по причине того, что эти языки не компилируемые. А по поводу Rust у вас какие-то предрассудки. Советую заглянуть хотя бы сюда: docs.rust-embedded.org, сюда и сюда.
Кстати, какой фильтр используете, думаю, что Мадвиска, раз у вас кватернионы, но все же?
И еще вопрос несколько риторический. Скейтеры не засчитывают трюк, если спортсмен коснулся ногой земли после исполнения. Как-то с этим бороться думали? И что делать с grab трюками, тем же indy?
Посмотреть на их работу в реальности, как железо и прошивка работает в купе. Какой функционал присутствует?
По вопросам и предложениям:
1. К минусам Type-C можно отнести размер. Он крупнее. Хотя минус такой себе=)
2. Влаго- и прочая защита. Старым дедовским способом залить все это дело лаком не пойдет? Извините, если это какая-то некрофилия, я далек от этого всего.
3. Корпус. Самое доступное — 3d-печать. Если нужна помощь в печати — пишите, попробую помочь. Я бы предложил фиксировать плату к корпусу с помощью болтов (М2 или М3) через резиновые демпферы, типо таких, если не ошибаюсь, на них полетные контроллеры цепляют для дронов. Из-за них показания системы будут несколько «ватными», но не думаю, что слишком критично.
4. Сомневаюсь, что передача данных в 15 Гц ограничение, вызванные BLE. Если бутылочное горлышко находится реально в стеке, то тогда имеет смысл (собственно как Вы и писали) пробовать запихнуть несколько измерений в одну пачку, но тогда при этом возможно понадобится еще передовать и время (даже какое-то относительное). Или если у вас используется несколько характеристик (например, одна для компаса, другая для акселерометра, третья для гироскопа) объединить их в одну характеристику — возможно, проблема в обновлении значений по каждой характеристике. На nrf-ах указывается интервал, через который рекомендуется проводить повторное соединение. Но не факт, что это характеристика на что-то влияет, возможно на клиенте надо будет тоже проводить манипуляции с этой величиной.
P.S. Сразу прошу прощения, если написал какой-то очевидный бред.
Очень хотелось бы узнать их судьбу: на чем остановились, какие возникли трудности?Часами к сожалению перестал заниматься после того как купил себе Apple Watch. Основные трудности были в том, что используемый дисплей SHARP memory LCD сняли с производства, затем 2.0 версия платы была со странным багом: nRF52 чип не работал без отладчика (semihosting этим грешен, но его точно я не использовал, даже мигалка не работала без подключенного отладчика). Ручная пайка тоже занимала слишком много времени и сил, сейчас бы с пайкой на заводе было бы гораздо легче итерироваться, да и опыта у меня уже гораздо больше. Но особого интереса к проекту уже нет.
К минусам Type-C можно отнести размер. Он крупнее. Хотя минус такой себе=)В новой ревизии платы трекера я занялся более конкретно вопросами установки Type-C и более оптимальными разъемами для отладки и батареи, а так же нормальными монтажными отверстиями.
По поводу влагозащиты, PCBWay имеет галочку «conformal coating», т.е. специальная заливка платы, вроде должно быть что надо.
Почему не стали использовать барометр? Есть такие с достаточной точностью?
Быстрый поиск показал такие барометры поточнее:
1. www.nxp.com/docs/en/data-sheet/MPL3115A2.pdf (0.1 метра)
2. www.infineon.com/dgdl/Infineon-DPS310-DataSheet-v01_01-EN.pdf?fileId=5546d462576f34750157750826c42242 (вплоть до 0.02м)
Другая проблема с барометрами в том, что они снижают влаго-/пылезащищенность устройства, т.к. им нужно «окно» для воздуха.
Блин, пишите еще, я с вашей статьи и комментариев узнал очень много информации!
PS: Делаю трекер для страйкбола
точность барометра составляла ≈1 метр
Странно, по идее даже bmp280 имеет точность сильно лучше, чем 1 м
Добрый день. Очень понравилась ваша статья что с часами, что про данный давайс. Какую литературу посоветуете в качестве понимания того, какие компоненты нужны. Есть ли какая то литература по проектированию устройств? И с чего начинали вы, когда учились этому?
Буду премного благодарен !!!
Могу посоветовать эти ютуб каналы, там есть ряд видео об основных принципах и правилах хорошего тона, которыми следует руководствоваться при разработке девайсов:
* EEVBlog (Dave Jones): www.youtube.com/user/EEVblog
* Fobert Feranec: www.youtube.com/user/matarofe
Например вот полезное видео о том, на что обращать внимание при выборе чипов:
А зачем использовали 2450AT18B100 если на всех модулях антенна выведена прям на платах, так же как и на Nucleo, и подскажите пожалуйста, а где ссылка на гитхаб и на источники?
Привет, чип-антенна занимает гораздо меньше места на плате, а большая дистанция для связи не требовалась.
Ссылка на гитхаб в конце статьи, продублирую здесь: https://github.com/eupn/tracksb
Спасибо за ответ, хотел немного уточнить
- Вообще для антенны STM сам использует LFB182G45CGFD436 в качестве band pass filter в Nucleo, это и есть рекомендация
- Насчет гит хаба, схем не нашел, да и с кодом не чисто, вы не в HAL делали? а сам код обычно для стм пишут на Atollic_TrueSTUDIO, Keil
- Непонятно за чем вы все время говорите про прошивки, все уже давно реализовано, зачем велосипеды изобретать
- Вы не вышли на краудфандинг, причина в chip shortage? Вообще как с этими чипами дела?
Выходы регуляторов напряжения LDO1 и LDO2 через сдвоенный диод Шоттки питают основной микроконтроллер. Диоды нужны, чтобы оба LDO не перетягивали друг на друга одеяло и регулировали только свой выход.
Почему вы не использовали просто LDO4? У него ведь выход 0.5А.
Фитнес-трекер для скейта