Заработал первый самодельный драйвер



Спаял и запустил первую плату драйвера двигателя. Удивительно, но заработала с первого включения. Только Dead Time пришлось несколько увеличить - транзисторы то из сельпо, а не такие модные как на референсе. Но ничего, тоже все замечательно работает. В общем можно остальные делать.

Collapse )

GPS для Малины



Как быстрое решение - в закромах найдены модуль GPS (MATEK SAM-M8Q) и переходник USB-COM, когда то давно купленные на АлиЭкспресс. Конвертер недорого, а GPS не дешево, т.к. GPS не самый простой - имеет частоту выдачи данных до 18 Гц. Их для дронов используют. При прямом соединении получаем вполне рабочий GPS модуль, который может быть подключен к Raspberry Pi. Задумка в том, что GPS модуль при подаче питания автоматически начинает слать в порт всякие данные. Обычно в формате NMEA-0183.

Один раз в секунду модуль выдает такой текст.

$GNGSA,A,3,16,27,28,07,14,,,,,,,,1.77,1.26,1.24*15
$GNGSA,A,3,79,88,80,81,,,,,,,,,1.77,1.26,1.24*10
$GPGSV,3,1,11,04,05,159,,05,19,294,09,07,86,237,16,08,49,118,08*71
$GPGSV,3,2,11,09,35,181,,14,23,232,09,16,14,058,09,27,40,063,24*75
$GPGSV,3,3,11,28,16,231,12,30,54,281,09,41,27,168,*48
$GLGSV,3,1,10,69,00,190,,70,40,234,,71,41,307,,72,08,346,*6C
$GLGSV,3,2,10,73,27,269,,79,36,071,29,80,76,317,10,81,36,072,26*6F
$GLGSV,3,3,10,82,18,125,,88,18,017,18*67
$GNGLL,5458.53050,N,07325.09812,E,124604.00,A,A*7C
$GNRMC,124605.00,A,5458.53131,N,07325.09907,E,3.601,,071220,,,A*65
$GNVTG,,T,,M,3.601,N,6.670,K,A*3E
$GNGGA,124605.00,5458.53131,N,07325.09907,E,1,09,1.19,129.6,M,-30.8,M,,*61

Первый запуск моторколеса



Акцент делался на изучении аналогового фронтеда STSPIN32F0 и изучении поведения BLDC двигателя если его использовать как PMSM двигатель.
Общий вывод - да, BLDC двигатель от гироскутера так работает, причем вполне прилично - движение плавное и гладкое, даже на очень низкой скорости. Предполагается, что точное движение колес может быть использовано в качестве одной из осей позиционирования манипулятора подборщика, поэтому вопрос возможности медленного вращения я считаю достаточно важным.
В процессе опытов выяснилось, что мотор не может стартануть с места при скорости вращения более 60 RPM без обратной связи по положению. Плавный разгон еще не тестировался.

Сейчас в софте не реализовано вообще ничего кроме трехфазного инвертора.

Нужно реализовать:
1. Измерение тока и его регулировку
2. Обработку команд из последовательного порта в MODBUS RTU подобном стиле
3. Движение в 6 шагов по датчикам Холла

Исследование вращающегося трансформатора.



Он же СКВТ (синусно-косинусный вращающийся трансформатор), он же - резольвер, а по простому - датчик угла поворота.

Нужен будет для построения сервоприводов.

Теория в Википедии.

Collapse )

Интерфейсы робота мусорщика

   В качестве главного "мозга" устройства планируется использовать микрокомпьютер Rasperry Pi4. Для прототипа точно хватит, особенно если помочь "на краю". При недостатке вычислительной мощности можно перейти на AAEON. Либо на UP BOARD, либо на UP SQUARED. А это настоящие промышленные решения. С Атомом, Windows и Мовидиусами.
   Соответственно, для протипа на Малине, используем существующие интерфейсы по максимуму. Считаем, что основные датчики и органы управления должны быть подключены сверхнадежно, вспомогательные - просто надежно.
   Логично подключать бинокулярную камеру с помощью штатного USB.
   Логично подключить мотор-колеса с помощью надежного полевого RS-485 с минимумом конверторов - а значит к штатному UART Малины. UPD. В обратную сторону от драйверов колес нужно на GPIO завести прервывание - для обратной связи. Например если колесо буксовать начало сообщить.
   Драйвер поворотника бинокулярной камеры можно разместить рядом с Малиной - значит допустимо использовать нежный I2C.
   Подключение GPS, акселерометра и компаса пока вызывает вопросы. Все эти устройства имеют свои достаточно разнообразные интерфейсы. Единственный вариант - использовать промежуточный контроллер. Скорее всего это будет вот такая отладочная плата на основе STM32F407 . Тогда можно контроллером собирать все данные с разных датчиков, а потом по Eternet отдать в центральную плату.

Поворотник бинокулярной камеры

 

   Бинокулярная камера будет поворачиваться шаговым двигателем. При этом легко может быть построена панорама, ведь шаговый двигатель шагает на четко определенный угол, в моем случае - 1,8 градуса.
   В случае шагового двигателя вопрос драйвера решается половинчато - на Алиэкспрессе есть силовая часть, но интерфейсную все же пришлось сделать. 
   Работает вот так: