www.open-tager.ru
http://www.open-tager.ru/forum/

Умный датчик. Smart sensor.
http://www.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 обойдемся вовсе.

Вложения:
Keil_FreeRTOS.jpg
Keil_FreeRTOS.jpg [ 95.77 KiB | Просмотров: 15179 ]
GCC_FreeRTOS.jpg
GCC_FreeRTOS.jpg [ 58.93 KiB | Просмотров: 15179 ]

Автор:  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/