https://habr.com/ru/post/548866/- Python
- Разработка робототехники
- Разработка на Raspberry Pi
- Робототехника
Предлагается сделать домашнего робота, отличительными чертами которого будут:
— относительная простота создания (как по времени, так и трудозатратам),
— недорогие комплектующие,
— доступный софт,
— возможность удаленного управления, в том числе через интернет,
— возможность бесшумно передвигаться,
— наличие веб-камеры, которая (которой):
> вещает в сеть
> можно удаленно управлять(поворотная камера по осям x и y, pan-tilt)
> имеет возможность фото-, видео- съемки с сохранением на диск и скачивания данных медиа
> можно управлять настройками (экспозиция, баланс и т.п.)
> поддерживает день|ночь
> может сохранять снимки при наличии движения (motion detection).
— возможность управлять режимом работы для экономии батареи, в том числе пробуждаться и засыпать, контролировать заряд батареи.
Небольшая вводная
.
Данный проект был создан более 3 лет назад и в течение этих 3-ти лет с ним многое происходило. Рождались и умирали ардуины, добавлялся и также отходил к праотцам речевой интерфейс, менялись драйверы двигателей, блоки питания, части советского железного конструктора, камеры для raspberry pi.
Не хватало только способа сэкономить энергию, так как работы батареи (powerbankа) робота хватало на 8-10 часов без слишком активной езды, но с постоянно работающей камерой и двигателями в режиме ready-to-go.
И вот, относительно недавно появилось решение для поставленной задачи. Данное решение потребовало в очередной раз перепахать весь проект, чтобы вспомнить что и как там реализовано.
Поэтому, пойдем по свежим следам.
Некоторые решения могут показаться странными, но к ним привела практика, поэтому будут соответствующие пояснения.
Перечень комплектующих
.

—
траки (chassis) — как вариант —
ссылка
Лучше брать именно траки, так как колеса, а также омни-колеса в домашних условиях плохо себя проявили, проскальзывая либо застревая. Кроме того, чем шире и выше база танка, тем лучше проходимость через пороги. Плюс — возможность поместить батарею под базу, сделав танк еще более устойчивым.
Траки можно брать «голые» без всяких там ардуин, пультов и т.п.

—
raspberry pi 3b+
Основной одноплатник, на котором будет все работать. Желательно взять для него корпус с возможностью доступа к gpio. Без корпуса все будет значительно быстрее пылиться и ржаветь.
Сразу ответим на попутные вопросы:
Почему не raspberry pi 4? — более энергозатратная, нужен кулер, нестандартный powerbank и т.д. Почему не pi zero — видео немного подтормаживает, но, в принципе, на ней тоже должно все завестись.
Почему не другие одноплатники (бананы, оранжи, одроиды и т.п.) — так исторически сложилось.

-
гребенки для gpio raspberry pi (8PCS,2X20(40 Pin) Extra Tall Female 0.1 Inch Pitch Stacking Header for Raspberry Pi A+/B+/Pi 2/Pi 3 Extra Tall Header) — как вариант —
ссылка

-
Witty Pi 3 Mini — как вариант —
ссылка
Это единственная «шапка» для raspberry pi. Она как раз и будет отвечать за питание, а также режим работы робота.
*для шапки можно также взять
LM29150 и впаять на плату. Это позволить питать raspberry не только от 5V, но и выше (до 8V). Об этом есть в инструкции в шапке.

—
csi-камера для raspberry pi. Работает быстрее, чем usb камера, занимает меньше места. Лучше брать «рыбий глаз» с автоматическим переключением день/ночь (характерный проводок от камеры на фото) — как вариант —
ссылка.

—
sg-90 сервы — 2 шт. Хлипкие, но ими можно напрямую управлять с gpio raspberry pi без страха спалить пины.

—
пластиковый подвес для серв (Servo bracket PT Pan/Tilt Camera Platform Anti-Vibration Camera Mount for Aircraft FPV dedicated nylon PTZ for 9G SG90) — как вариант —
ссылка.
Для raspberry pi есть особые pan-tilt шапки, но они на порядок дороже.

—
l298n — 1 шт. — драйвер двигателей.

—
usb повышающий преобразователь с 5V до 12V — 1шт. (DC-DC 5V to 12V 5W USB Step Up Power Supply Module Boost Converter Voltage Board 4.2V-5.2V) — как вариант —
ссылка
—
powerbank c 2-мя выходами usb (для питания двигателей и raspberry pi).

—
провода, делали советского конструктора как средства крепежа,
стойки.
Все. Нет никаких аккумуляторов 18650 и ардуин.
Бюджет: до 15т.р., самое дорогое — траки.
Как все собрать.
Останавливаться на том как собрать траки (chassis) мы не будем, так как, в зависимости от выбранного варианта, сборка может отличаться. Кроме того, как правило, продавец траков дает инструкцию или ссылку на нее. Например такую —
посмотреть.
Единственная ремарка: от двигателей идут сразу несколько проводов. Нам понадобятся только пары красный-черный, питание и земля.
Как собирать подвес вместе с sg-90, мы также не будем останавливаться. Необходимо только иметь в виду, что перед закреплением в подвес сервы должны находиться в среднем положении (угол — 90 градусов). Это нужно для того, чтобы подвес имел ход движения во все стороны, а не имел перекос в одну из них. Так что лучше сначала выставить сервы, а потом их закреплять.
Также по поводу серв. В проекте есть возможность управлять сразу двумя сервами (влево-вправо, вверх-вниз).
Но практика показала, что лучше влево-вправо не использовать по двум причинам:
— можно потерять направление робота,
— крепежные элементы sg-90 хлипкие и быстро изнашиваются.
Взглянем на схему подключения:
В принципе, ничего сложного нет. На драйвере двигателей l298n выводы ENA и ENB не задействованы и на них должны стоять перемычки.
Шим сигнал не используется и робот не сможет плавно разгоняться и тормозить. Это сделано намеренно, так как при плохом wi-fi или иных задержках робот по разному реагировал на управляющие сигналы. Вместо этого используются паузы в скриптах. Как это реализовано будет показано позднее.
Вместо блока батарей подразумевается powerbank. Здесь же пригодится usb повышающий преобразователь с 5V до 12V.
Питание на raspberry pi подается через wittypi 3 mini. Дополнительно питать одноплатник и сервы не нужно.
В завершение немного
Продолжение следует.