Оглавление:

Как сделать глупого робота-газонокосилки умнее: 4 шага
Как сделать глупого робота-газонокосилки умнее: 4 шага

Видео: Как сделать глупого робота-газонокосилки умнее: 4 шага

Видео: Как сделать глупого робота-газонокосилки умнее: 4 шага
Видео: Такого Робота, я еще не видел! Распаковка конструктора робототехника MAKERZOID ROBOT MASTER 2024, Ноябрь
Anonim
Делаем глупого робота-газонокосилки умнее
Делаем глупого робота-газонокосилки умнее

Итак, у меня есть прекрасный, но глупый робот-газонокосилка (изображение с сайта www.harald-nyborg.dk).

Этот робот должен стричь мою лужайку, но мой газон слишком большой и сложный, чтобы он действительно попадал в углы.

На моих рисунках не показано множество деревьев, качели и так далее. В результате робот тратит слишком много времени, переезжая уже скошенные открытые участки, и слишком мало времени на стрижку твердых частей.

Поэтому я решил добавить немного внешнего интеллекта.

23-04-2020 РЕДАКТИРОВАТЬ: датчик не совсем работал, поэтому я изменил пару вещей

Запасы

2 наружных двухпозиционных переключателя

ИЛИ

1 старый USB-роутер

1 релейная карта usb

1 цифровой парк

1 usb-концентратор

1 водонепроницаемая коробка для электроники

23-04-2020 РЕДАКТИРОВАТЬ:

OR1 старый USB-роутер

1 релейная карта usb

1 usb2serial tll вещь

1 usb-концентратор

1 водонепроницаемая коробка для электроники

1 ультразвуковой датчик Dfrobot URM 37 v3.2 (возможно, можно использовать любой датчик =)

kmod-usb-serial-cp210x

Шаг 1: Шаг 1: резка по нескольким участкам вручную

Шаг 1: резка по нескольким участкам по Мануэлю
Шаг 1: резка по нескольким участкам по Мануэлю
Шаг 1: резка по нескольким участкам по Мануэлю
Шаг 1: резка по нескольким участкам по Мануэлю

На картинке показано, как я перешел от одного участка резки к двум участкам.

Мой робот будет автоматически запускаться каждые 2 дня, поэтому пока я не забывал менять его с одной области на другую, это работало нормально.

Я использовал 2 ручных переключателя, вроде тех, что вы используете в коридоре или на лестнице.

Это сработало, за исключением тех, которые я использовал, были слишком плохого качества, и поэтому я получал ошибки, заползающие в них, испортил их.

Шаг 2: Шаг 2: автоматическое решение

Шаг 2: автоматическое решение
Шаг 2: автоматическое решение
Шаг 2: автоматическое решение
Шаг 2: автоматическое решение
Шаг 2: автоматическое решение
Шаг 2: автоматическое решение
Шаг 2: автоматическое решение
Шаг 2: автоматическое решение

Поэтому я решил сделать что-нибудь автоматическое.

У меня есть подержанный маршрутизатор Netgear R6100, я получил этот, потому что у него есть Wi-Fi, USB и достаточно памяти, чтобы экспериментировать, вместо того, чтобы пытаться втиснуть в него OpenWrt и друзей.

У меня есть лучший концентратор usb 2.0 от ebays и карта реле на 12 В.

Потом у меня был digispark из более раннего проекта. 23-04-2020 РЕДАКТИРОВАТЬ: вместо этого использовал usb2seriel thinghy

я подключил реле вместо переключателей. я использовал реле 3 и 4

Затем я установил OpenWrt и добавил к нему Crelay, picocom и coreutils-stty.

23-04-2020 РЕДАКТИРОВАТЬ: также добавлены xxk, kmod-usb-serial-cp210x

Подключил 12В к роутеру и плате реле.

23-04-2020 РЕДАКТИРОВАТЬ: использовал Urm 37 v3.2 вместо остальной части этой страницы

Потом я узнал кое-что "забавное". релейная колодка будет пытаться включить USB-концентратор, тем самым препятствуя правильной перезагрузке digispark. Поэтому я перерезал провод питания в кабеле USB от релейной карты и концентратора USB.

Затем я подключил digispark и карту реле USB к концентратору USB 2.0, а концентратор к маршрутизатору.

Честно говоря, я запрограммировал digispark перед тем, как добавить его в роутер.

В digispark я добавил кнопку, которую я подключил между P1 и Gnd.

Эту кнопку я разместил, чтобы робот активировал ее, как только зарядится в гараже.

Мне пришлось добавить пружину к активации, чтобы получить хорошее надежное сцепление.

Шаг 3: Шаг 3: Программное обеспечение

Файл содержит программу arduino ide для digispark.

Его помещают в корневой каталог / LawnSelector.

Для этого файла требуется несколько библиотек digispark, таких как digiCDC и платы digispark, добавленные к arduino ide.

Затем есть файлы / root / GrassCtr / *.

Это файлы, которые действительно работают.

Kreds1 меняет реле на area1

Kreds2 меняет реле на area2

KredsStatus спрашивает USB-реле, какая область активна

23-04-2020 РЕДАКТИРОВАТЬ: используйте UltraSoundSeriel вместо чтения digispark.

ReadDigiSpark, каждый вторник новости читает.. Погоди. Считывает состояние ввода digispark

GrassCtl думает.

Вот что он делает.

Если робот находится в режиме IN более 10 часов, он решает, что робот находится внутри на ночь, и это активирует триггер, который заставляет его запускаться в каждой области каждый второй раз. Причина этого в том, что мой робот начинает срезать всю кромку, и таким образом он обрезает кромки через день.

Затем, когда робот косит, датчик сообщит, что робот отсутствует.

Каждый раз, когда робот возвращается для зарядки аккумулятора (определяется как нахождение в течение более 20 минут), область будет изменена на другую область.

пожалуйста, обрати внимание. Программное обеспечение - ужасный беспорядок, но оно работает, так что вперед и вверх

Шаг 4: Шаг 4: Активация программного обеспечения

Чтобы запустить программу, нам нужно что-то сделать.

Я добавил его в cronJob

* / 5 * * * * / корень / GrassCtrl / GrassCtl

в файл

/ и т. д. / crontabs / корень

Затем, чтобы включить cronjobs, я сделал

/etc/init.d/cron включить

Насколько я могу судить, робот теперь будет переключаться между началом скашивания 1 или 2 зоны и будет менять то, что скашивается, каждый раз при подзарядке аккумуляторов.

И да, теперь он получает все

Рекомендуемые: