www.open-tager.ru https://open-tager.ru/forum/ |
|
Умный датчик. Smart sensor. https://open-tager.ru/forum/viewtopic.php?f=5&t=4949 |
Страница 1 из 17 |
Автор: | Pingvin [ 24 дек 2016, 09:54 ] |
Заголовок сообщения: | Умный датчик. Smart sensor. |
Принято "политическое" решение создания "умного" датчика для платформ АРМада и Каустик. Выбран контроллер из серии STM32F0, а именно - STM32F030F4P6. https://ru.aliexpress.com/item/Free-shipping-10PCS-LOT-STM32F030F4P6-STM32F030F4-STM32F030-IC-MCU-ARM-16K-FLASH-TSSOP20-Best-quality/32478775310.html?spm=2114.14010208.99999999.413.KZkCt2 Взаимодействовать с платой повязки датчики будут по UART в режиме полудуплекса, запрос-ответ. Мои предложения: - прикрутить FreeRTOS - реализовать прием пакета (аппаратными средствами) - передачу пакета (аппаратно) - прикрутить смарт RGB Если хватит ресурсов - прикрутить радиомодуль Сейчас нужно апаратные ресурсы распределить. |
Автор: | onegray [ 24 дек 2016, 14:36 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
Pingvin писал(а): Взаимодействовать с платой повязки датчики будут по UART в режиме полудуплекса, запрос-ответ. Полудуплексный двусторонний UART не получится сделать аппаратным, т.к. у STM линии Rx и Tx физически на разных пинах. А почему не I2C? |
Автор: | onegray [ 24 дек 2016, 14:43 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
onegray писал(а): Полудуплексный двусторонний UART не получится сделать аппаратным, т.к. у STM линии Rx и Tx физически на разных пинах. А, ну только если их физически как-нибудь соединить и согласовать.
|
Автор: | Pingvin [ 24 дек 2016, 14:46 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
LTagKirov писал(а): Pingvin писал(а): Сейчас нужно апаратные ресурсы распределить. Как насчёт продумать такую реализацию схемы "умного датчика" чтобы на нём можно было сделать лазертаг-макет минимально необходимого для игры функционала (Tag8, Ltk_v1 и тд), пусть звук будет пищалка(просто ключ без усилителя), без радиомодуля и в пределе на односторонней лутовой плате Положительно отношусь. |
Автор: | Pingvin [ 24 дек 2016, 14:47 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
onegray писал(а): Pingvin писал(а): Взаимодействовать с платой повязки датчики будут по UART в режиме полудуплекса, запрос-ответ. Полудуплексный двусторонний UART не получится сделать аппаратным, т.к. у STM линии Rx и Tx физически на разных пинах. А почему не I2C? Я тоже хотел сперва на I2C. Но автор Каустик хочет 3-х проводный шлейф сделать, а I2С - 4 жилы, как не крути. Да и АРМаду для UART варианта я уже развел - минимальные изменения. I2C сложнее выделить для этого - ножки уже заняты под другие нужды. |
Автор: | Pingvin [ 24 дек 2016, 14:50 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
onegray писал(а): onegray писал(а): Полудуплексный двусторонний UART не получится сделать аппаратным, т.к. у STM линии Rx и Tx физически на разных пинах. А, ну только если их физически как-нибудь соединить и согласовать.Именно. |
Автор: | Pingvin [ 24 дек 2016, 14:52 ] | |||
Заголовок сообщения: | Re: Умный датчик. Smart sensor. | |||
Бился сегодня с FreeRTOS - под GCC много флеша жрет - больше половины. Кейл дает более компактный бинарик - около 5 КБт (на контроллере всего 16 КБт) - сам проект сгенеринован Кубом. Кроме того - если меньше 32КБт бинарик, Кейл не требует лицензии. Может и без RTOS обойдемся вовсе.
|
Автор: | onegray [ 24 дек 2016, 15:36 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
Pingvin писал(а): onegray писал(а): onegray писал(а): Полудуплексный двусторонний UART не получится сделать аппаратным, т.к. у STM линии Rx и Tx физически на разных пинах. А, ну только если их физически как-нибудь соединить и согласовать.Именно. RM0360 Reference manual писал(а): The USART can be configured to follow a single-wire half-duplex protocol where the TX and RX lines are internally connected.
|
Автор: | Alexies [ 24 дек 2016, 17:19 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
О, да, тема создана, это хорошо. Выскажу свое мнение по всем вопросам. Я вижу данный проект, как простое устройство, которое не делает никаких космических вещей, без WiFi и тачскрина. Которое будет доделано до конца и будет просто использоваться, а не бесконечно совершенствоваться. Pingvin писал(а): Мои предложения: - прикрутить FreeRTOS - реализовать прием пакета (аппаратными средствами) - передачу пакета (аппаратно) - прикрутить смарт RGB Если хватит ресурсов - прикрутить радиомодуль 1. Операционная система, на мой взгляд, не нужна. Она только усложнит работу. Хватит банального main loop с опросом всех "медленных" вещей + прерывания для "быстрых". Операционную систему применяют, когда у устройства есть задачи, занимающие длительное время, чтобы избежать залипания других задач. Пример - чтение и запись на SD-карту. Для всего остального достаточно кооперативной многозадачности в одном цикле. Кроме того, это позволяет избавиться от проблем "гонки данных" (data race). Не нужно мьютексов, семафоров и критических секций, коих полно в многопоточном коде с вытеснением (когда ОС может прервать ваш код в любом месте). Ну и проект становится понятнее и проще. 2. Да, девайс должен реализовывать только физический уровень ИК-приемника-передатчика. То есть пришел массив - он его передал. Пришел ИК-сигнал - он записал в массив. Протокол разбирать уже должна повязка. 3. Не знаю, зачем смарт-RGB. Ножек хватает и на обычный RGB с полноценным ШИМ по каждому каналу. Можно воспроизвести абсолютно любой вызуальный эффект. А выходного тока МК хватит, чтобы питать диод напрямую, без транзисторов. При этом смарты дороже. Предлагаю сделать на обычных, а потом, если захочется, приделать смарт. 4. Радиомодуль - по-моему лишнее. Это будет уже другое устройство. Я за более простой девайс для начала. Аргументы против радио очевидные: чтобы уместиться в корпус датчика, нужно распаивать NRF самому на плате. Цена деталей, внезапно, в три раза больше, чем готового модуля. Делать огромный датчик, но зато без провода - вообще непонятно, зачем. О других вещах: 5. UART на STM32 поддерживает аппаратно полудуплексный режим. Если бы не поддерживал, достаточно было бы соединить провода. Делать на I2C конечно же проще, но если можно уложиться в 3 провода ценой чуть более сложного кода - нужно это сделать, иначе просто неинтересно. LTagKirov писал(а): Как насчёт продумать такую реализацию схемы "умного датчика" чтобы на нём можно было сделать лазертаг-макет минимально необходимого для игры функционала (Tag8, Ltk_v1 и тд), пусть звук будет пищалка(просто ключ без усилителя), без радиомодуля и в пределе на односторонней лутовой плате 6. ИМХО, это другой проект, никак с "умным датчиком" на связанный. Если кто-то сделает - будет круто. За уши притягивать одну и ту же плату, да ещё чтобы она была ЛУТ-воспроизводимой - бессмысленно. Иначе датчик будет большой и страшный, изобилующий незадействованными гнездами и ненапаянными элементами. А раз уж платы разные, и прошивки разные - это разные проекты. |
Автор: | Pingvin [ 24 дек 2016, 17:48 ] |
Заголовок сообщения: | Re: Умный датчик. Smart sensor. |
Смарт - это один пин контроллера и один таймер. Их можно последовательно цеплять. Обычный RGB - это 3 пина и 3 канала PWM. Но это, конечно, не критично. Под аппаратным захватом сигнала я подразумевал это |
Страница 1 из 17 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |