Например TDA7294

Форум РадиоКот • Просмотр темы - RSLK от TI (Robotic System Learning Kit)
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Сб авг 15, 2020 04:27:36

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 144 ]    , , 3, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Пн сен 16, 2019 18:15:04 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 1169
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 6665
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Оказывается я заблуждался. На сайте Pololu комплект стоит дешевле, потому что туда не входит сам LaunchPad. При этом ланчпада недостаточно - требуется еще 2х19 гнездо и желательно с удлиннёнными выводами, если будет желание подключиться "сверху".

Ну это так - лирика. На выходных я взялся за тахометр... и разочаровался. Метод захвата времени по срабатыванию таходатчика никуда не годится. Сделав первую часть (собственно я давно её был сделавши, но не запускал на железе) упёрся в проблему: как включить мотор и при этом остаться под отладчиком. Пока думал, решил для начала потыкаться осциллографом и картинку он показал удручающую. Робот крутил колёсами в воздухе, а картинка на осциллографе дрожала. Т.е. длительность между фронтами постоянно колебалась. Отчего это так, или неравномерность вращения двигателя, или неравномерно распределены полюса на магнитном диске (или диск немного косит) пока не понял. Но факт остаётся такой, что все измеренные интервалы из-за этого разные. Что и подтвердили дальнейшие действия.

Чуть позже, разобравшись, что нужно включить и что - отключить, получл конструкцию, которую я могу разом и двигать, и отлаживать. Начал выполнять лабу, где производится сбор данных при разных скоростях вращения колёс. Сначала получил дикие результаты. Функция сбора данных раз в 10мс записывает в буфер значение периода, скорости (скорость = 2000000/период - странно, что период на 0 не проверяется, можно спокойно в GPF влететь) и потом добавил еще один параметр. Так вот сразу после включения когда двигатель переходил из состояния покоя к 25% мощности были "всплески". Причем всплески были как вверх - значит что за период опроса не было ни одного срабатывания захвата, так и вниз! Со вторым моментом понятно. Так как там период вычислятся "циклически", то если предыдущее состояние было 0xFFFF, а следующее 0x0001, то получается, что период - 2. Но это в том случае, что за время срабатывания захвата счетчик только один раз прошел через 0. А если два и более? Так и было. Колесо вращалось ещё настолько медленно, что период был больше 5.64мс и счетчик успевал два раза перейти через 0, а простая разница показывала скорость, даже выше, чем при 75% мощности (в тесте двигатель крутился по 1 секунде на 25%, 50%, 75%, 50%, 25% и останавливался). Т.е. получается, что нужно обработчик усложнять? С первой проблемой оказалось так, что её не должно было случиться - при сборе данных с интервалом в 10мс, а период при тех оборотоах - порядка 1мс. Но оказалось, что когда я начал писать робота для лабиринта, я начал переделывать эти функции под себя, а они, на самом деле общие во всём рабочем поле проектов. И следующие лабы у меня "поломались". Поэтому я решил робота утащить прочь из CCS. Ну и оказалось, что возвращая на место, не всё исправил в исходное состояние. Так что опрос оказался гораздо чаще, чем 10мс. После того как все хвосты нашел и вернул на место - эти "выпады" вверх исчезли.

Далее, я решил сделать учет пройденного расстояния. Это просто. На каждый импульс надо прибавлять или убавлять дистанцию, в зависимости от направления вращения. В задании сказано было прибавлять 1, но мне подумалось, что практичнее сразу считать в нормальных единицах. Энкодер даёт 360 импульсов на оборот колеса, с учетом редуктора. Диаметр колеса где-то 69.5-70мм. Ну я тут попытся округлить, самое близкое получилось считать, что на 1 импульс робот проходит 0.61мм. Запустил этот пятисекундный тест - отчет показал, что робот должен был проехать 4 метра. Но поставив на пол, он явно столько не проезжал. Взял рулетку - всего 2 метра. Где-то я ошибся. Оказалось всё очень просто. Копируя этот код для второго колеса, порт опрашиваемый поменял, а переменную - нет. Вот и получилось, что насчитало в два раза больше.

Мне вот почему-то думается, что измерять период - не правильно. Правильно считать расстояние и из него можно легко получить скорость. Причем без риска сделать деление на 0. И для усреднения не нужно заниматься фильтрованием, усреднением, так как если пройденное расстояние поделить на время мы так и так получим среднюю скорость. А если так, то применение счетчика в таком виде для работы этого энкодера совершенно не нужно. А возможности использовать счетчик как квадратурный, как в STM32 здесь нет возможности. Для учета именно расстояния, достаточно порты запрограммировать на прерывание по изменению. Думаю, в роботе так и сделаю. А пока надо еще поиграться с этой лабой и перейти к 17 - там уже на основе этого энкодера будет ПИД-регулирование.

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Вс окт 06, 2019 00:26:51 
Друг Кота
Аватар пользователя

Карма: 69
Рейтинг сообщений: 541
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3307
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Не знаю насчёт HC11 (у них скорость выдачи в порт 9600), нормальные BLE модули версии 4.2 прокачивают порядка 300К/сек, а 5.1 - уже более мега. В плане приёма многое зависит от смарт девайса. На сегодня устройства на iOS гораздо медленнее чем Android. Я сделал-бы донгл к компу, переводящий BLE в UART или использовал готовые BLE-UART или WiFi-UART конвертеры. Вот, к слову, мой донгл на сайпровских BLE чипах. Нижняя платка передаёт данные с акселерометра каждые 0.1 сек и передаёт через донгл в UART на скорости 9600 (больше не нужно было). Передатчик потребляет около 190 мкА в среднем. Делал эту заготовку для разработки безконтактной системы регистрации поклёвки для рыбаков. Но в дело не пошло - мой компаньон неожиданно ушел из жизни, а без него уже не то...
Изображение

На этой неделе ездил на День Технологии ТИ и вернулся в полном разочаровании. Представитель сказал, что ТИ уже не планирует выпуск MSP432 в менее ногастых корпусах и вообще они уже проектируют новое семейство (какое, сказать не мог - секрет). Похоже, 432-е в народ не пошли (это я уже так домысливаю). Зато ТИ идёт вперёд 7-мильными шагами в плане безпроводных технологий. Каждый год появляются усовершенствованные модели их WiFi и BLE чипов. Так было и в этот раз. Я сейчас опять плотно сел на Silabs и за ТИ не поспеваю. Впрочем, также не поспеваю и за Silabs - с весны у них пошли безпроводные модули второго поколения, а я всё ещё на первом застрял. Кстати, посетил тут ещё воркшоп фирмы Nordik - те меня сильно поразили своим новым семейством NRF91 для LTE-M. Будет время - напишу про них подробнее в КОМПЭЛ-овской теме по безпроводке здесь.


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Вс окт 06, 2019 08:41:40 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 1169
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 6665
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Это всё печально слышать. Будем надеяться, что Валвано продолжит начатое. А то я не утерпел и таки купил его книжку - посмотрим, что там будет написано. В комментарии на амазоне один из покупателей написал, что слишком мало там заданий(?). Ну сначала нужно дождаться когда она придёт. Как и плата. Куда-то запропастилась. По трек-коду последняя запись от 11 сентября, что двинулась из Лос-Анжелоса дальше по сети USPS и всё. Будем ждать. Может придёт как и ремешки для ласт. У старых советских ласт ремешки совсем оборвались, и в июле заказал на ebay какие-то, вроде подходящие. Лето уже прошло, вода остыла, купальный сезон объявил закрытым. И я уже их списал, так как прошло уже более двух месяцев, и тут они приходят. Кстати, нормально подошли (мне казалось, что они будут сильно уже, чем оригинальные ремешки) - пришлось лезть в холодную воду, чтобы обновить покупку.

Подумал, что пора для этой платы приобрести OLED дисплей, когда (если) она придёт. Начал изучать... Для платы предусмотрен 1.3" Adafruit-овский дисплей. Ага - на ebay он самый дорогой и есть. Почти в 10 раз дороже других аналогов. Посмотрел что это за счет того, что на этой плате питание 5в, дальше стоит стабилизатор на 3.3в и преобразователь уровней. У дешевых - ничего этого нет. Им давай питание 3.3в (что меня вполне устраивает). Правда разводка разъёма совершенно иная - так что в предусмотренное место оно не подходит. Но мне этот вариант установки дисплея тоже не особо нравится. Там дисплей - только дисплей, а у меня это дисплей с кнопками - т.е. интерактивный узел. Я с него могу робота сконфигурировать, провести тесты, сделать запуск.
Изображение
Вот пока у меня так начальное меню выглядит. Короч, купил я этот "китайский" дисплей и пока он идёт решил немного поупражняться. Кстати вот ссылка на блог на элементе14, где человек сделал краткий обзор всех лабораторных. Правда, 17-ю лабу он не сделал. Ну и в блоге описано так - я сделал и отстаньте. На самом деле, в этих лабах самое интересное в разделе Additional challenges. Вот, например, в лабе про OLED дисплей предлагалось написать функцию рисования линии на экране. Ну тут я вспомнил, что когда-то на заре знакомства с графическими дисплеями, для своей "метеостанции" был написавши всего одну функцию - рисование прямоугольника (закрашенного или нет) и с её помощью я мог нарисовать от точки до линии или рамки, просто за счет комбинирования вызываемых параметров. Потратил некоторое время на это дело. Попутно еще написал вывод текста, спрайтов 16х16 и облагородил вывод двух тестов: мотора и бумперов. square drawing - это временный тест при помощи которого я и проверял работу этих функций.

А потом, мне на глаза попалась строчка, что в заказанном дисплее контроллер не SSD1306, а SH1106 - и он не имеет тех фич, которыми я тут пользуюсь, для своей конструкции. Так что, видимо, большой дисплей отпадает - буду ставить маленький 0.96" - как и сейчас. А потом, я еще обнаружил, что порты, на которые я навесил свои кнопки в новой плате будут заняты для других целей. Так что опять надо думать.

Еще по поводу развития робота. В каком-то документе промелькнула информация, что к этому роботу (RSLK-MAX) можно будет подключать дальномерные сенсоры типа time-to-fly vl6180. Может это для них там на каждом углу выведен i2c? Но как же согласование уровней? мне казалось, что им нужно 2.8в, а не 3.3. И еще им нужно вывести каждому сигнал сброса, иначе, как их можно посадить на одну шину?

Занимался тахометрическими сенсорами и 17-й лабой - в полный рост стала проблемы - как вытащить данные из робота наружу. Да, в отладчике я вижу этот массив в памяти. Но пометить этот кусок памяти и засунуть в клипбоард или как-то от экспортировать что-то или не получается, или получается слишком муторно - слишком много надо делать телодвижений. в CCS есть возможность массив отобразить графически. Но по умолчанию показывает только 200 элементов. И оттуда я могу сделать экспорт в csv. Экспортирует, правда, только те самые 200 отсчетов. Но войдя в настройки отображения и введя там 500 - почему то массив из 32 bit integer показывает как float. Еще неделю назад такого не было. И не могу понять, что я делаю не так или что изменилось.

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Вс окт 06, 2019 16:50:09 
Друг Кота
Аватар пользователя

Карма: 69
Рейтинг сообщений: 541
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3307
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Не сомневаюсь, что Вальвано продолжит. Я слежу за его книгами уже несколько лет. Кстати, его книги адаптированы в качестве учебников во многих университетах страны. Сначала он писал книги под Stellaris, затем под Tiva, теперь под MSP432. В Electrical Engineering программах проходят 3-семестровый курс по программированию встроенных систем. Соответственно, у него есть 3-томник. Однако, там на 50% написано тоже самое, т.е. сильное пересечение и изложение весьма неглубокое (на мой взгляд). Последней каплей для меня был том 3 его курса, когда я пытался освоить TI RTOS пару лет назад. На сайте ТИ имеются уроки в виде краткого описания и выложены видео довольно дорогого трейнинга по RTOS в Далласе. Однако, как оказалось, эти видео несколько устарели, и если делать всё как там, то на версии даже 2-летней давности они не работали. Впрочем, это беда многих производителей, что их документация часто не поспевает за продукцией. Тогда я и купил 3-й том курса Вальвано, посвящённый RTOS, надеясь что он мне поможет. Но оказалось, что в том курсе он больше занимается разработкой маленькой учебной RTOS с весьма ограниченным функционалом и касается TI RTOS лишь вскользь. Я так тогда расстроился, что отдал его книгу в библиотеку (как donation) и поклялся более никогда их не покупать. Думаю, с уроками про робот ситуация иная, т.к. пока вышла лишь первая версия его и всё должно пока соответствовать.

Следует, правда, отметить, что мне следовало-бы более плотно посидеть за TI RTOS и разобраться самостоятельно. Или по форумам полазить (чего я очень не люблю, может и зря). Но тогда к нам в город приехали люди с Micrium (когда она ещё не была под Silabs) и я посетил их 3-дневный трейнинг с hands-on упражнениями на демо-плате с 9 утра до 5 вечера non-stop каждый день. Это была огромная разница. Лектор в конце курса даже заметно охрип. На следующий год они приехали к нам опять и я взял их трейнинг ещё раз для закрепления. Сейчас я смотрю их видео на сайте Силабс, и понимаю, что научиться чему-то там лишь по ним невозможно, и ценность их для меня лично =0. Скорее, эти видео следует рассматривать как референсы для людей, которые знают что они делают и хотят освежить в памяти некоторые детали. По Micrium (тогда это была uC/OS-II и uC/OS-III во второй раз) есть куча бесплатных электронных книг под примерно 50 разных платформ (и платных если кто хочет бумажную копию), но по ним также научиться с нуля невозможно, на мой взгляд. Силлабы, впрочем, поддерживают и Free RTOS, но Micrium сейчас у них дефолтная. Но с TI RTOS я не сдался и вернусь по мере времени. Разработка современных бсистем с большими стеками типа WiFi или BLE всё более переводится под RTOS, a безпроводка у TI отличная, как, впрочем, и у Силлабов.

Насчёт трек кода, если меняется carrier, то трек код там другой и его обычно не дают. У меня тоже самое с USPS. Следует набраться терпения. С VL ToF чипами работал пару лет назад со студентом. Вод наша макетка с PSoC-4. Питал всё от 2.8V (стаб на зелёной платке), чтобы не было проблем с уровнями. Сейчас уже мало что помню кроме того, что работало как заявлено, т.к. основную часть работы студент выполнил, точнее студентка. Помню лишь что в апноутах на сайте ST всё расписано, даже пример кода приведён. Ей тогда оставалось лишь адаптировать его под PSoC.
Изображение


Вернуться наверх
 
Быстро и просто. Разработка бюджетного неизолированного источника питания на контроллере VIPer122

С помощью VIPer122 можно создавать как изолированные, так и неизолированные сетевые источники питания. Разберем самый простой и бюджетный вариант – разработку неизолированного понижающего источника питания с выходным током в несколько сотен миллиампер без трудоемких расчетов трансформаторов и компонентов обвязки.

Читать статью>>
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Пн окт 07, 2019 21:03:43 
Друг Кота
Аватар пользователя

Карма: 69
Рейтинг сообщений: 541
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3307
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Однако: книги Вальвано по Роботике у меня нет - она не принадлежт к курсу по встроенным системам и стоит несколько в стороне он них. Хочу надеяться, что Вы почерпнёте из неё полезную для себя инфу. Заодно интересно будет Ваше мнение заказывать-ли её для нашей библиотеки.


Вернуться наверх
 
Микроконтроллеры STM32G4 полностью заменят STM32F3?

С начала выпуска микроконтроллеров STM32F3 прошло 8 лет. Изменились как технологии, так и потребности рынка. Понимая это, компания STMicroelectronics разработала новое семейство микроконтроллеров STM32G4 для систем со смешанными сигналами. Эти микроконтроллеры превосходят своих предшественников из семейства STM32F3 по уровню быстродействия, богатству периферии и при этом обеспечивают более низкий уровень потребления.

Читать статью>>
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Вт окт 08, 2019 16:06:08 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 1169
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 6665
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Я её тоже жду с нетерпением. Амазон обещает, что получу в течении ближайшей недели (11окт-15окт).

А я тут как-то размышлял на тему "А что дальше?" Ну проходит робот этот простой лабиринт. И тут я вспомнил, что когда я впервые приехал посмотреть как проходят соревнования, лабиринт не был односвязным. Тогда я как раз подумал, что это была бы интересная задачка. Но впоследствии увидел, что лабиринт начали упрощать, так как совершенно не было участников. Поэтому подумалось, что для свободных конструкций могли бы немного начать усложнять лабиринт. Надо будет организаторам намекнуть.

Так вот, как сделать робота, способного передвигаться по многосвязному лабиринту. Тут снова встаёт задача определения местоположения робота. Тут у нас есть два поля: красное - выход и зеленое - вход. Т.е. две позиции в лабиринте мы можем определить однозначно. Так вот если мы нашли зеленое поле ненайдя красное, значит мы сделали петлю и лабиринт значит многосвязный.
Далее из простых идей - бинарный поиск. Я определил две переменных loop и fork. Первая считает сколько раз мы вернулись к началу, а вторая считает номер развилки от начала лабиринта. Таким образом, я могу в бинарном порядке попробовать "закрыть" проходы в развилках. Например в первой петле (в отличии от нулевой) я на первой развилке пропускаю поворот, на второй петле - у второй развилки, на третьей петле у первой и второй развилки. Итд, пока это меня не приведёт к необходимой внутренней стене, которая меня приведёт к выходу. Разумеется на начале каждой петли я сбрасываю выученный путь и сохраняю его по-новой, пока не получу маршрут к выходу. Это, конечно, долго, но рано или поздно меня приведёт к выходу. Причем, я могу этот процесс ускорить, в конфигурации робота указав начинать сразу с 4 петли, тогда робот на третьей развилке пойдёт туда куда мне нужно сразу, пропустив предыдущие итерации.

Не спортивное поведение? Хм, трудно сказать, что подразумевать под полной автономностью робота. Ведь стратегию я имею право задать роботу? В самом начале (для меня, когда я впервые посетил это мероприятие) был такой порядок в соревнованиях, что после технической инспекции робот помещался в "карантин" и брался оттуда только на время заезда. После заезда надо было его возвращать в карантин обратно. Это было для того, чтобы после прохождения инспекции нельзя было внести изменения в робот, которые дадут неоправданное преимущество. Например, взять и утяжелить сумо-робота сверх допустимого. Но впоследствии от этой практики отказались. Возможно после того случая, когда пытаясь передвинуть стол с "окарантиненными" роботами, чтобы высвободить в зале место, они все посыпались на пол. А все эти роботы были Лего...

Этот способ характерен тем, что не требует создания и хранения в памяти лабиринта или его исследованной части. Если же запоминать в каком узле куда сворачивали, тогда можно просто изменить "стратегию поворотов". Т.е. не держаться за стенку и делать только левые или только правые повороты, а скажем, сначала пробовать идти прямо и только потом пробовать другие варианты. Например в лабиринте с последних соревнований очень подошел бы вариант прямо, влево, направо. Это даже при пробном проходе привело бы к выходу всего на 4 клеточки дольше, чем самый короткий маршрут. Но этот метод уже не гарантирует то, что выход всегда будет найден.

Из гарантированных методов - алгоритм Люка-Тремо. Но он требует "оставлять пометки" в лабиринте. Конечно, не обязательно рисовать крестики на стенах - можно это делать в памяти. Главное, определить, что найденный перекрёсток, тот, где мы уже были. Что при ортогональном лабиринте и наличии таходатчика на роботе становится довольно простой задачей. Но алгоритм Люка-Тремо гарантирует нахождение выхода, но не обеспечивает поиск наикратчайшего пути. Поэтому, пока размышляю, что нужно роботу к команде Solve Maze добавить команду Explore Maze. Т.е. пусть робот исследует лабиринт - создаст в памяти его карту, а затем в памяти найдёт кратчайший путь и пусть по нему бежит.

Так что я потихоньку начал реализовывать необходимые функции. Правда, вчера заметил, что я что-то поломал. Ну буду разбираться. Потому как на участке где просто правый поворот - поворачивает налево, т.е. реально разворачивается и идёт назад. Самое обидное что я покопался грязными ручками и в функции выполняющей повороты, и в функции выбирающей какой поворот выполнить. Ошибка где-то там.

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Ср окт 09, 2019 18:57:46 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 1169
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 6665
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Книжка пришла. Уже вчера, но в почтовый ящик не влезала, поэтому почтальон оставила извещение и я сегодня сломя голову с электрички скакал на почту, чтобы успеть до закрытия. Книжка свежачок - июль 2019г. первое издание. Полистал... Кой что через чур по основам. Глянул главу по коммуникациям. Ну да, расписаны принципы асинхронного, синхронного, i2c и чуть-чуть реализации. Внимательно посмотрел i2c - два примера без прерываний. И для облегчения жизни используется "автостоп" (счетчик байтов). Надо будет сравнить, почему у меня по опросу были глюки, с этими примерами - что я делал не так.

Поискал волшебное слово DMA - ничего, кроме упоминания, что такое существует.

По оглавлению близко к темам Curriculum modules, что на сайте TI. Вроде раздел про системы управления интереснее - явно больше чем в киррикулуме. Но по другим разделам только кажется, что сейчас-сейчас, а тут уже следующая глава и про другое.

Но это пока первое впечатление.

p.s. Выяснил причину неадекватного поведения робота - некорректное значение loop в eeprom, поэтому отрабатывали skip-ы. Но ошибка в том, что эти skip не должны быть у узлов без разветвления.

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Чт окт 10, 2019 14:51:54 
Друг Кота
Аватар пользователя

Карма: 69
Рейтинг сообщений: 541
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3307
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Пока Ваше первое впечатление совпадает с моим вторым: неглубоко копает автор.


Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Ср окт 16, 2019 15:50:30 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 1169
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 6665
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Ну, может, так и задумывалось. В предисловии он же написал, что человек учится не глазами и ушами, а руками и локтями(?). Т.е.нефик читать книжки и слушать лекции, берись и сделай что-нибудь. Пока похоже, вся книжка повторяет киррикулум, но чуток подробнее. Хотя, да - первую главу прочитал, вторую - пролистал. Там ничего интересного для меня не было. Чуток посмотрел в конце, где написано про операционые усилители, но опять же не углубляясь в нюансы, а больше про идеальный ОУ. Третью главу читал с интересом - так как ассемблер кортекса я не изучал, но снова не очень глубого, а так, чтобы ввести в курс дела. Наверное, чтобы было понятнее читать уже настоящий референс мануал. И, когда я уже размечтался, что будет написано, как делаются и обрабатываются прерывания - глава закончилась. Ну может это будет позднее... в главе про прерывания. А так, третья глава хоть и повторяет видеолекции, но гораздо подробнее. Третью лабу с книжкой сделать будет легче, чем когда я пытался делать только просмотрев лекции.

Но тут ко мне в понедельник наконец приползла платка для RSLK-MAX. В первый же вечер прикрутил её к шасси, надел на неё LaunchPad и вспомнилось мне, что в пятом разделе была лаба про сборку и тестирование робота. Решил в CCS сделать еще один воркспейс для MAX. Сделал, попытался проимпортировать эти проекты - отказ. Причина - проекты сделаны в версии, которая новее, чем у меня установлена. Пошел делать апгрейд компиляторам - снова неудача. Ну, я не долго думая снёс CCS и скачал свеженький... оказывется уже есть девятый CCS, а у меня стоял восьмой. Проинсталировалось и проимпортировалось теперь уже без проблем, но навело на мысль, что на нетбуке я уже эти лабы не смогу поставить. Если только вручную.

После чего, я скомпилировал тестовую программу, залил в ланчпад - робот начал радостно мигать светодиодами - синим на ланчпаде и передними двумя на плате. Сенсор линии вне зависимости от положения робота выдавал, что линия находится по центру. Ну с этим оказалось просто - надо было вставить батарейки и подать питание от них. Так как у старого RSLK 3.3v брались с платы ланчпада, а тут есть свой стабилизатор. Поэтому сенсор просто не получал питание. Вот тут и есть очередное неудобство. Если в старом у меня почти всё работало от USB питания, кроме двигателей и тахометра, то тут уже и сенсор линии, и дисплей (если подключить по инструкции) тоже не будут работать без батарей.

С дисплеем засада. Не могу придумать куда и как его приспособить. Кнопки я придумал, что могу посадить на порты 10.0, 10.2, 10.3, но вот куда физически его установить вместе с кнопками - пока нет хорошей мысли. И то что Валвано нравится плату ланчпада ставить разъмом назад проблему скорее усугубляет.

Тут думал, а как будут двигатели с энкодерами, так же криво или нет? Ну так как я покупал не комплект, а плату отдельно, шасси отдельно и энкодеры тоже отдельно, то сборку снова делал сам. И как и ожидалось (собственно разглядывая картинки на сайтах Pololu и TI было видно), что ничего не изменилось - чтобы разъём вошел в гнездо на плате, надо или плату энкодера криво припаивать, или разъём впаивать без обоймы. Интересно как изготовители комплекта его припаивают? В смысле с нужной кривизной.

Тестовая программа линию видит, даже несмотря на то, что расстояние от сенсора до поверхности довольно большое. Но я уже размышлял об этом и мой вывод, что применены сенсоры с линзами. Какой именно сенсор стоит там я не нашел, но нашел похожий (а может это он и есть) шарповский. Так про него написано, что у этих линз фокусное расстояние 3мм. Подробности будут когда подключу дисплей и увижу гистограммы. Но то, что сенсор держится только за счет разъёма не очень здорово. Выпадать из разъёма - не выпадает, но вперед-назад свободно в разъёме качается. Ну и, конечно, смущает меньшее растояние сенсора от оси двигателей. Хотя, я тут добавил в меню еще тест тормоза - робот идёт по линии до тупика или развилки и начинает тормозить, одновременно отображая пройденный путь с начала торможения в миллиметрах. Оказалось, при максимальной скорости, тормозной путь был 45-47мм.

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Ср окт 16, 2019 17:21:02 
Друг Кота
Аватар пользователя

Карма: 69
Рейтинг сообщений: 541
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3307
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
С интересом читаю Ваши сообщения о приключениях в мире роботики. Может сенсор на клей посадить, чтобы в разъёме не болтался - или хотите иметь возможность менять сенсор? Интересно как реализовано экстренное торможение - закорачиваете полюса мотора драйвером или кратковременно колёса назад крутите?

Я также "читал" книгу Вальвано по ОС, фактически пролистывая её, т.к. ничего нового для себя в ней не нашёл. Думаю, это не потому, что я чего-то слишком много знаю, а скорее, что он мало о чём "по делу" пишет. Ассемблер АРМ я сам преподаю, могу порекомендовать хорошую книгу, если интересно. Курс по ОС тоже сам преподаю, однако там упор скорее на "большие" ОС нежели чем на RTOS. В этом году, однако, планирую расширить тему по RTOS в курсе с упражнениями на силлабовских демо-платах - они даже нам платы для этого подогнали, спасибо им. Думаю, что в видео и должно быть менее подробно, т.к. они отчасти реклама продукции и если их отяготить деталями, то есть опасность потерять часть аудитории. Хотя многие представители молодого поколения предпочитают учится сегодня по видео. Но я пока не встречал достаточного подробного видео, покрывающеги все нюансы продукции. В других дисциплинах дело обстоит несколько иначе. Например, в курсах по математике видео очень подробные, даже черезчур - там нет опасности потерять клиентов. Даже наоборот - для науки интерес представляют те, кто "выживет". Так что пока книги по микроэлектронике на сегодня более подробный источник зчаний. Покупая их, я надеюсь найти в них что-то более, чем можно прочитать в ДШ, например опыт разработчика. В этом плане идеальной считаю книгу Davies по MSP430. Хотя она уже устарела и не покрывает современных моделей с FRAM, на её фоне многие другие книги не котируются.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Ср окт 16, 2019 19:23:29 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 1169
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 6665
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Мда, именно "опыт разработчика". Если сформулировать, что я ждал от этой книги - то именно это. Ответ на вопрос, для чего сделаны те или иные разъёмы, Куда предполагается что подключать. Вот тут попутно размышлял про подключение дальномерных сенсоров. Вроде как впереди есть места для их подключения, но если хочется задействовать ФНЧ, который есть на плате, то пока не вижу как это можно перекоммутировать, кроме как протянуть провода до разъёма ФНЧ (который находится сзади!) и с выхода этого ФНЧ снова вперед? Как, впрочем, в 15-й лабе (Data acquisition systems) и нарисовано. Еще отличие старого RSLK от MAX - старому в комплекте шли танталовые конденсаторы которые нужно было насадить на выводы питания этих proximity сенсоров, а для MAX уже нет (во всяком случае нигде не вижу про это упоминание и на картинках тоже не видать). Видимо, ФНЧ лучше подавляет шумы этих сенсоров.

Торможение делал, разумеется, закорачиванием. Для инверсии полярности надо бы уже чтобы ПИД работал. А его еще не сделал, да и лаба осталась на пол-пути. Вроде как код управления написал, но заткнулся на величине задаваемых параметров. Что задавать скорость, RPM и в каких пределах эти величины должны находиться. С другой стороны, в лабораторной, Валвано рекомендует ограничить управляющее воздействие 2 < UL <15000. 15000 - это максимальное значение для 100% PWM. Т.е. подача обратной полярности не предполагается. Но, возможно, это из-за того, что для двигателей у него отдельные функции - ехать вперед, ехать назад итд. Т.е. если UL будет меньше 0, нужно вызывать другую функцию (а не как у меня - одна на все случаи жизни). Кстати, в самом первом видео "TI-RSLK MAX Module 1 - Lecture video - Running code on the LaunchPad using CCS" в самом начале на экране виден именно кусок кода из 17-й лабы.

Вытекая из этого, еще размышляю и надеюсь где-нибудь узнать "опыт разработчика" нужно ли делать 3 отдельных контура обратной связи или достаточно одного общего. Т.е. например, в роботе бегущем по линии один общий контур: в качестве "задатчика" определено нулевое значение показаний сенсора линии. И если есть отклонение - соответственно, ускорить или замедлить с некоторым коэффициентом двигатели. Т.е. мне без разницы какие обороты двигателя в данный момент, так как я по сенсору вижу отклик - возвращается линия на место или нет. Конечно, управляющее воздействие пропорционально-дифференциальное. Интересно было подбирать эти коэффициенты, когда скорость робота была установлена нулевой и как он стоя на месте и только вращаясь вокруг центра осей устанавливал сенсор по середине линии, с осциллированием или нет. А затем пытаясь пальцем сдвинуть, наблюдать как робот своими колёсами противодействует этому. Или всё же надо по отклонению задавать, чтобы это колесо крутилось так, другое - иначе и уже на каждом колесе еще и там свой ПИД регулятор пытался выполнить заданные "сверху" обороты. Почему-то мне казалось, что в 17-й лабе задуман именно второй подход, но никаких руководящих указаний в старой лабе нет. Только "напишите и всё". Надеюсь, что в книжке найду ответы на эти вопросы. Во всяком, случае там видел рисунок "геометрии поворота робота с дифференциальным приводом"

Вот с этими поворотами и сенсором линии нарисовалась следующая проблема. Для алгоритма Люка-Тремо мне нужно, чтобы робот разворачивался не только в тупиках, но и на "посещенных" перекрёстках в некоторых случаях. Разворот в тупике робот на самом деле выполняет как поворот. Т.е. вращается до тех пор, пока сенсор не увидит линию. В тупике понятно - единственная линия которую можно увидеть - это линия назад и будет означать, что разворот завершен. Но на перекрёстке - это может быть линия в сторону или всё же линия назад, если перекрёсток T-образный и крутимся в нужную сторону. Так вот что делать - выполнять для разворота один или два поворота (но тогда надо в функцию выполнения поворота еще и передать конфигурацию перекрёстка) или воспользоваться таходатчиком - ведь расстояние между колёс известно. Пока стою перед выбором, что лучше. Тут есть еще момент. Если робот шел вперед и тут ему даётся команда повернуть - центр осей не останавливается на месте - он смещается на небольшую величину. Я это наблюдаю по процедуре теста моторов. В роботах я вставляю этот тест чтобы проверить правильность полярности двигателей. Запуская тест робот должен выполнить "танец": вправо, влево, вперед, назад и пауза. Если последовательность иная - где-то напутана полярность, у одного или обоих двигателей. И несмотря на то что все движения выполняются одинаковое время - робот смещается влево. Это из-за того, что при переходе от вправо->вперед правому колесу не надо менять направление вращения и, соответственно, останавливаться. Вот из-за этого смещения, может быть отклонение между ожидаемым значением с таходатчика и тем что реально будет. Вот только насколько это отклонение будет большим, может оно будет гораздо меньше величины четверти окружности и не будет сильно влиять на различие между четвертью и половиной дуги окружности - это надо еще экспериментировать.

Ser60 писал(а):
Может сенсор на клей посадить, чтобы в разъёме не болтался
Ой, не люблю я неразъёмные соединения. Я скорее, тогда на 3D принтере какую защелку ему напечатаю. И кстати, у этого сенсора совсем нет никаких крепёжных отверстий. Я всё еще думаю как его подвинуть вперед, чтобы сенсор видел на перекрёстках линию при небольших выбегах. Потому как надо, чтобы даже если ось вращения не находится точно над перекрёстком сенсор всё же мог "зацепить" все нужные ветви, чтобы правильно с позиционироваться. С другой стороны, для этого шасси я прикупил еще и передний опорный шарик, чтобы робот носом не клевал.
Изображение
Вот так выглядит пока робот снизу (на фоне моего тестового многосвязного лабиринта). И этот самый шарик мне и не позволяет передвинуть сенсор немного вперед.

Эту книжку Дэвиса я тоже недавно листал. искал ответ на вопрос когда происходит прерывание от таймера работающего в режиме up-down. Просто предположил, что таймер у 432 не отличается от 430. Валвано предлагает "поэкспериментировать" с периодичностью выполнения процедуры считающей управляющее воздействие. А я думаю, что там экспериментировать, надо делать с частотой PWM сигнала двигателей, чтобы вычисленное значение загрузить в таймер и оно сразу начало выполняться - чаще нет смысла, а реже - ухудшится время реакции.

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Вс окт 20, 2019 16:51:57 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 1169
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 6665
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Почитал еще книжку. Хоть глава про микроконтроллер почти ничего нового не открыла, но ответила на вопрос про PortMapper. Когда я читал Reference Manual не нашел ответа на вопрос, что будет, если один ресурс назначить на несколько выводов. Оказалось, будет то что и должно - выход будет повторяться, а вот входы будут объединены по ИЛИ. Чуть-чуть хихикнул в разделе про питание, где никель-кадмиевые аккумуляторы назвали NiCad. А мне учительница по химии говорила, что таблица Менделеева везде одинакова.

На выходных решил, что надо бы заняться переносом кода на RSLK-MAX. Сделал в Кейле второй таргет, определил дефайн и пошел по тексту править. Потом навесил на проводках дисплей, включил и даже на дисплее картинка появилась. Но реакции на кнопки не было. Кнопки я не приделал еще, но в коде у меня кнопки на ланчпаде тоже считывались и кое где они повторяли основные кнопки. Начал изучать, оказывается, что новые порты для кнопок конфликтуют с сигналами выбора цвета для цветового сенсора. Ну, что ж. Значит пришло время прикручивать другой датчик цвета. Еще весной я заказал на ebay модуль на TCS34725 - датчик цвета с i2c интерфейсом. Это я для него тогда строил драйвер. Поддержку этого сенсора был уже давно написавши, но до сих пор не запускал его и не отлаживал. Ну это чуть позже - самое интересное как работает сенсор линии. Кнопки ожили, стоило отключить старый драйвер датчика цвета, выбрал тест сенсора линии и... всё черное. Ага, полез камерой снова смотреть на светодиоды - не светят. Ах... этому роботу для питания этого сенсора надо включить батарейки. Включил - засветилось. Но линию как не видит - так не видит. Правда, на дисплее значение порога отображается как-то странно. Ну да - у этого контроллера ведь конфигурация не прописана. Вот только ввести я её не могу - кнопок то нет.

И тут мне придумалось, а не скопировать ли конфигурацию с RSLK на RSLK-MAX. Вот только как это сделать? В Кейле попробовал зайти в debug, открыл содержимое памяти по адресу 0x3f000 - о, вижу знакомые цифирьки. Но, ни скопировать, ни сохранить нигде не могу. В конце-концов я не гордый, сделал скриншот - введу ручками. Подключаюсь к RSLK-MAX захожу в дебаг, открываю память, пробую ввести эти цифры - ничего не получается. Однако, флэш это не ОЗУ. Хммм, что же делать? Пошел гуглить. Нагуглил, что есть такая утилита от TI - UniFlash. Скачал, инсталлировал... инсталлировалась довольно долго. Ок, подключаю к старому роботу, коннект есть, захожу в раздел памяти давлю кнопку "Read Target" и начинает крутиться колёсико. И крутится и крутится, и, разумеется, ничего не происходит. Даже не вижу, чтобы на Ланчпаде светодиоды помыргивали. Ну думаю, надо подождать. Пошел сготовил ужин, поел, вернулся - nothing happen. Ну тут я начал перебирать всякие разные варианты, подключаться к одному роботу, к другому, обратно к первому. Довел до такого состояния, что перестало подключаться, а Windows говорить, что обнаружен unrecognised device. Ладно, пришлось перезагружаться, что я делаю крайне редко. Платы стал находить, но память как не показывает, так не показывает. Уже не мог придумать, что делать, пока случайно в конфигурации не придумалось нажать кнопку "Perform Blank Check". Вот тогда выскочило сообщение - что вашему программатору надо проапгрейдить прошивку, сказал - меняй и всё заработало. Данные благополучно перекопировал с одной платы на другую.

Вообще, это немного достаёт. Стоит поработать с CCS - меняй прошивку, Перешел в CCS на нетбуке - меняй, в Кейл - снова меняй. Теперь еще и UniFlash.

Ну, теперь я могу посмотреть, как робот видит линию - плохо видит. Поднёс линию чуть ближе - о уже лучше. Может проблема в том, что порог надо поставить повыше, а это я в конфигурации без кнопок снова не могу сделать. С другой стороны сенсор рассчитан на дистанцию 3мм, а реально он висит где-то на высоте 8мм. Ну с этим буду разбираться позже. Сейчас надо бы посмотреть, что показывает сенсор цвета.

А ничего не показывает. Глухо как в танке. Отложил это дело до утра. Утром попробовал в процедуру инициализации вставить запрос на ID устройства. Ничего не возвращает. Оказалось, проблема в адресе. Некоторые адреса указывают семи битные, некоторые восьми битные. Мне нужно - восьми битный. Сдвинул на бит влево - завелось. Всё равно показывает черноту. Уже думал найти какой скетч в сети и подцепить к ардуине, чтобы посмотреть какие параметры народ устанавливает. Но на GitHub нашел одну библиотечку, где был пример и в инициализации явно было видно время 33мс, усиление 1. Выставил я эти параметры - что-то показало, но повисло. Пытаю под отладчиком - идёт. Отпускаю - зависает в драйвере i2c. Оказывается, я в драйвере сделал плюху. Вот когда я боролся с генерацией сигнала СТОП при чтении. Написал такой кусок:
Код:
    while (i2c_state != i2c_idle) {
        if (i2c_state == rcv_stop) {
            while (I2C_DEV->CTLW0 & UCTXSTT) continue;
            I2C_DEV->CTLW0 |= UCTXSTP;
            i2c_state = i2c_stop;
        }
    }
Т.е. когда приходит состояние остановить приём я выставляю бит передачи стоп и перехожу в состояние i2c_stop и жду когда придёт прерывание от этого стопа и переведёт статус в i2c_idle. Оказалось, что выставив бит UCTXSTP прерывание происходит так быстро, что следующая строчка не успевает выполниться, как статус меняется на i2c_idle, а потом я уже его меняю на i2c_stop и... оказываюсь в вечном цикле. Оказывается, надо было эти две строчки поменять местами: сначала i2c_state = i2c_stop; а затем только передавать I2C_DEV->CTLW0 |= UCTXSTP; - Классическая плюха. Хотя, снова подумал, ведь дисплей по i2c я тут подключать не собираюсь - можно было бы сделать драйвер и с "автостопом" - было бы проще и стабильнее. Сенсор цвета максимум считывает 8 байт по два байта на канал: Clear, Red, Green, Blue.

Теперь сенсор цвета работает и даже различает цвета. И скажу, даже лучше чем TCS3200. Правда, надо бы еще пороги настроить, but I can't do it alone но я не могу это сделать без кнопок. Да и тест с настройкой надо бы оформить получше, а то пока я использую старый тест сенсора линии, просто подставляю другие данные. Ну теперь еще стоит задача разместить этот датчик на днище робота и протянуть провода к плате. И опять, как я убедился, шаг отверстий в шасси Romi никак не совпадает с расстоянием отверстий на платке этого сенсора. С другой стороны, я тут подумал, что этот сенсор совсем не обязательно размещать по центру робота. Главное, чтобы был впереди сенсора линии, чтобы когда робот зафиксирует отсутствие линии, чтобы сенсор цвета уже стоял или над белым полем тупика, или цветным полем финиша.

Пока изучал изменения между RSLK и RSLK-MAX нашел, что я не правильно догадался. Оказывается дальномерные сенсоры ToF будут не vl6180, а нечто под называнием OPT3101. Глянул на Маузере - какая-то микросхема за 8 евро или evaluation kit за 153!

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Пн окт 21, 2019 21:04:03 
Друг Кота
Аватар пользователя

Карма: 69
Рейтинг сообщений: 541
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3307
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Мммдаа, с тремя контурами обратной связи Вы медленно приближаетесь к задействованию RTOS в проекте робота (если ещё не задействовали).

На снимке не видно что за опорный шарик используется. Этот шарик вращается или скользит? Если второе, у той-же Pololuo имеются вращающиеся шарики (roll caster). В любом случае мне неясно почему нельзя подвинуть сенсор ещё более вперёд шарика, чтобы он выступал из-под шасси?

Меня тоже сильно доставал факт необходимости перепрограммирования J-Link под каждое IDE. Иногда они становятся синхронизированными, но до поры до времени. Решил это покупкой ещё одного J-Link адаптера.

Насчёт ToF сенсора, хотя я и фанат ТИ, но для робота проще будет использовать чип от ST (VL61xx), т.к. в нём уже интегрированы светодиод и светоприёмник и с ними он работает отлично. Может стоит внешние сенсоры на плату прикрутить и забыть об установленных на ней(?) Кстати, установлены-ли дефолтно на шасси робота внешние светодиод и светоприёмник с тубусами как на демо-пате OPT3101?

Не могу дождаться Дня Технологии ST на этой неделе. Прямо не знаю на какие презентации и hands-on сессии идти, сколько всего интересного, хоть разрывайся...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Вт окт 22, 2019 05:59:40 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 1169
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 6665
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Не думаю, что для трёх контуров уже нужно RTOS городить. Просто еще один конкуррентный поток по прерываю от PWM таймера. Реализовывать в этом ПИД еще и медианный фильтр или что-либо такое сложное вряд ли стоит. А так - пара сложений, умножение и деление. Да и не вырос я (и мои запросы) на то чтобы строить операционную систему.

Шарик, тот что полагается для шасси и я думаю, оно должно вращаться. Рукой когда провожу - оно катится. Но не факт, что оно в рабочем положениее катится. Но я пока решил отложить вопрос с перемещением сенсора - хочу посмотреть как будет работать в этом случае. Тем более, что в таком положении оказывается тоже есть плюсы. Расстояние до поверхности изменяется гораздо меньше когда робот "клюёт". Вчерась, прикрутил 6 концевиков, как Bump sensor. Напаял провода и накремпировал разъёмы. Так как не додумался сразу заказать платы для бумперов (пара всего 10 долларов). Теперь у меня там жгут проводов и будет уже проблематично, когда я захочу поставить там еще и дальномерные сенсоры. Так же уменьшилось количество отверстий куда я мог бы прикрутить сенсор цвета. Но об этом я буду сегодня вечером ломать голову. Вроде есть куда удобно прикрутить, но кабель тогда идёт не удобно. А за габариты я вылезать не хочу. Так как лабиринть состоит не только из линий, но и из реальных стен, за которые выступающие чести могут цепляться. У меня пока еще есть запас, конечно, так что я слегка могу вылезти, но это рставлю на самый безвыходный случай.

То что фотка невнятная - проблема в том, что для второго робота пришлось вынуть из всех нормальных фотоаппаратов "батарейки" и единственным оставшимся под рукой девайсом осталась камера по типу GoPro. Собственно, еще одна фишка, которую я собираюсь приделать роботу - контроль напряжения батареи. А то со старым было пару раз, когда что-то вдруг перестаёт работать и начинаеь искать ошибку. А в конце, оказывается, что поосто сели батарейки.

По поводу OPT3101 это просто догадки. На самом шасси и на "базовой" плате ничего нет. Тем более кольцевых экранов "покрытых иммерсионным золотом" (как на этом evaluation kit). Посмотрел на сайте pololu на их модули ToF vl61xx, vl53xxx - там, конечно, на шину есть преобразователи уровней а вот на вход сброса нет. Хотя, там можно вставить всего диод с подтяжкой. Да вот только еще попутно проблема всплыла - у того модуля, что я смотрел (вроде, vl53xxx) i2c адрес 0x29 - такой же как и у сенсора цвета - как их разрулить? делать отдельную шину? Ну, пока это дело далёкого будущего. Я хочу сделать робота который ориентируется только по стенам но сначала надо придумать как дома сделать полигон для теста.

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Вт окт 22, 2019 21:13:39 
Друг Кота
Аватар пользователя

Карма: 69
Рейтинг сообщений: 541
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3307
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
ToF сенсоры VL53xxx - это модели первого поколения, а VL68xxx - второго. Если ставить, то лучше последние. Дефолтный адрес у обоих одинаковый 0х29, но есть возможность переконфигурирования их в программе на любой другой. Конечно, на это время датчик цвета должен быть выключен. Вход сброса (GPIO0) можно просто подтянуть на 2.8в резистором и потом не трогать. Сенсор потребляет ничтожный ток в режимах hard и soft ресета. Соответственно, и пин от МК к нему можно не тануть. А если хочется заресетить датчик пином от МК, последний следует просто сконфигурировать как open drain. Преобразователь уровня на этот пин в любом случае не нужен.

Правильно-ли я понимаю, что робот клюёт носом только во время торможения и может быть поворота, а в остальное время при движении опирается на задний шарик? Если так, то может снять передний шарик и заменить его двумя болтами по краям платы, на которые робот будет иногда опираться при клёве носом. Тогда сенсор линии можно будет вперёд на освободившееся место подвинуть.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Ср окт 23, 2019 05:49:44 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 1169
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 6665
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Да, робот клюёт при отрицательных ускорениях. И проблема собственно в том, что сенсор линии перестаёт видеть. Поэтому я был уже попробовавши сделать "лыжи" по бокам этого сенсора, чтобы он не мог приблизиться к поверхности меньше чем на 0.5мм, но теперь, эти лыжи стали цепляться за стыки между клеточками лабиринта. Поэтому, я и возлагаю надежды на новый сенсор - он работает с большего расстояния до поверхности.

С этими ToF сенсорами такая история, что я уже когда-то купил на попробовать на ebay 6180, но они не имеют на борту преобразователей уровня. Поэтому мне так и так придётся делать еще одну платку с согласователем. И может, я там же поставлю i2c расширитель портов, для удерживания датчиков в сбросе, пока я им поочередно буду менять адреса. Вот только надо глянуть, не делают ли команды смены адреса что-нибудь деструктивного для датчика цвета - тогда они могут быть просто параллельными. Или придётся искать TCS34721- те выпускаются с адресом 0х39.

Тут пришли платы, что я придумал для установки дисплея с кнопками. Конечно, то что я задумал круто обломилось - дисплей на 1.3" не будет (возможно пока), кнопки надо подключать в другое место. Но приделал дисплей 0.96" - смотрится не плохо. Надеюсь, сегодня сделать кнопки - появится кучка проводов. Собственно кучка уже есть, до дисплея идёт коротенький кабель с двумя JST разъёмами. На выходных, когда будет естесственное освещение устою фотосессию. Хотя сейчас думаю, а не сделать ли кнопки через i2c как на роботах следующих по линии.

Для того, чтобы на базовую плату припаять разъём пришлось делать полную разборку. И была идея куда подсоединить i2c от сенсора цвета, но обломился. Там в одном месте есть контактики scl/sda, но рядом с ними не Vcc/Gnd, а 3.3в и 5в (Gnd идёт следом, но туда уже впаян разъём для bump сенсоров. Да и надежда впаять там разъем, чтобы снизу можно было воткнуться - развеялась, так как окно в шасси не достаточно для этого широкое - scl/sda там не пролезут. Сам сенсор цвета пока прикрутил на одном винте, который держит один из концевиков. Но я думаю, там поблизости есть еще одно место где доступен i2c и там планирую так же впаять JST коннектор для этого сенсора.

Попутно, пытаюсь на нетбук поставить компилято, чтобы лабы проимпортировать. Что-то не получается. В сообщении об ошибке предлагается поставить его тремя разными способами, последний из которых скачать отсюда, но пока мне там выдаёт, что недоступно - идут плановые работы. Ок, подождём.

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Чт окт 24, 2019 21:44:02 
Друг Кота
Аватар пользователя

Карма: 69
Рейтинг сообщений: 541
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3307
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Пишу с ST семинара, поэтому коротко. Только что поговорил с представителем фирмы по ToF сенсорам. Оказалось, я Вас дезинформировал. Именно VL66xx - сенсоры первого поколения, а VL53xx - второго. Последние имеют больший range, но не очень аккуратны на малых расстояниях. Для роботов он советовал использовать VL68xx.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Пт окт 25, 2019 05:47:14 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 1169
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 6665
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Мой знакомый, который и завлёк в эти мероприятия, для робота учествующего в соревновании FolkRace пытался применить vl53xx - именно из-за дальнего радиуса действия. Но там ширина трассы под метр, так что 60см для vl6180 там маловато. Мне же, надо бы перечитать условия соревнований - какие там параметры стен заявлены и какие расстояния будут актуальны. Мне кажется, что ширина была 30см, так что в 60см укладываюсь, если ставить сенсоры под углом 45 град.

А пока я запустил нового робота на трассу. Сделал кнопочки, скорректировал порог срабатывания сенсора линии (с 400 на 800мкс переставил) - линию стал видеть. Вот только из-за близкого расстояния сенсора к оси колёс надо бы подкорректировать коэффициенты удерживающие робота на линии. Заметил, что после разворота в тупике, робот начав двигаться, цепляет крайними сенсорами линию, получая лишний ложный поворот. Ну или, может, поворот делать "глубже". Но это надо бы еще проанализировать.

Перечитал внимательнее главу про i2c - всё же не понимаю, почему у меня без прерываний терялся первый байт. В книжке пример построен по такому же принципу. Единственное отличие - там еще проверяется флаг потери арбитража, но это не критерий в данной ситуации. Зато в свой "драйвер" добавил обработку потери арбитража - возвращает ошибку и отваливается.

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Вс окт 27, 2019 09:51:11 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 1169
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 6665
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Вот, вчера отфотографировал:
Изображение Изображение Изображение Изображение Изображение Изображение
Плату с дисплеем и кнопками сделал "кошерного" цвета, чтобы было в одном стиле. Единственное, что выдаёт, что робот сделан не на базе комплекта рассылаемого TI - колёса белого цвета. В правильном комплекте они должны быть красного. Вот как пока прикрутил цветовой сенсор:
Изображение
Да, знаю, что гаечек не хватает. И пока ломаю голову куда провода подключить. Если взять и провода просто впаять в плату питания - проблем нет, но если я хочу там поставить разъём - для разъёма места уже особо нет. А вот как выглядит днище и сам ветеран:
Изображение Изображение

Для этой фото сессии, поставил батарейки на зарядку и после сессии, попробовал погонять робота по лабиринту. Робот стал совсем не управляем. И особенно в тупиках, выскакивал так, что начинал крутиться на месте, так как не мог найти линию. Поэтому, я решил сделать роботу поворот по таходатчику. прикинул, что на четверть окружности одно колесо проходит 200 импульсов. Поэтому, перед поворотом, фиксирую разницу показаний таходатчиков и кручу робота, пока разница не станет 400 для поворота или 800 для разворота. Ну, опять же из-за выбега пришлось уменьшить осетра на, соответственно, 350 и 700. Но это тоже положение не спасло. После поворота, робот опять обнаруживал условие для маневра и начинал крутиться снова. Тогда, я решил, что пусть робот какое-то расстояние проходит без проверки. Сделал такой защитный интервал - стало лучше. Были правда, пара сбоев, когда робот обнаруживал поворот на прямом участке, но это из-за того, что после поворота робот не успевал за счет ПИД выровняться на линии и цеплял линию одним из боковых сенсоров.

Неприятный момент в том, что я начал роботу писать создание карты лабиринта. Что он там в память пишет еще не проверял, но в коде есть "пометка" - если робот окажется в том же месте где уже был - он должен остановиться и сохранить карту. Так вот, робот еще ни разу не остановился. И сейчас думаю, как отлаживать этот момент - как узнать где робот считает, что находится.

_________________
А люди посмотрят и скажут: "Собаки летят. Вот и осень."


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: RSLK от TI (Robotic System Learning Kit)
СообщениеДобавлено: Вс окт 27, 2019 19:31:30 
Друг Кота
Аватар пользователя

Карма: 69
Рейтинг сообщений: 541
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3307
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Робот получился вылитый красавец! А куда лошадь батарейки вставлять? Я не совсем представляю зачем Вам понадобился цветовой сенсор - ведь линии на полу только чёрного цвета (?) И ничего, если сенсор цвета смещён относительно центра робота? Правильно-ли я понимаю, что стрелочки на дисплее соответствуют видению сенсоров: стрелка вперёд - лог. 1, и лог. 0 если назад?

Понимаю, что для отладки алгоритма распознавания карты лабиринта нужно знать что в мозгах робота творится. При движущемся роботе нужен безпроводный канал передачи данных. Хотите использовать только решения по безпроводке от ТИ или допустимо изделия других фирм применить?

Насчёт I2C из предыдущего сообщения, почему не использовать готовый драйвер от CMSIS? Он напрямую подцепляется из Keil. Да и у ТИ наверняка свои драйвера имеются. Например, в SLAA382 описан один из таких для MSP430, наверняка имеется подобный документ и для MSP432 (?)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 144 ]    , , 3, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y