Table des matières:

Rendre un robot tondeuse stupide plus intelligent : 4 étapes
Rendre un robot tondeuse stupide plus intelligent : 4 étapes

Vidéo: Rendre un robot tondeuse stupide plus intelligent : 4 étapes

Vidéo: Rendre un robot tondeuse stupide plus intelligent : 4 étapes
Vidéo: 🏡 Automower® HUSQVARNA : Que doit-on faire une fois le robot tondeuse installé ? 2024, Juillet
Anonim
Rendre un robot tondeuse stupide plus intelligent
Rendre un robot tondeuse stupide plus intelligent

J'ai donc un robot tondeuse à gazon adorable mais stupide (la photo provient de www.harald-nyborg.dk).

Ce robot est censé tondre ma pelouse, mais ma pelouse est trop grande et complexe pour qu'il puisse vraiment entrer dans les coins.

Non représentés sur mes dessins sont une multitude d'arbres et une balançoire et ainsi de suite. Le résultat est que le robot passe BEAUCOUP trop de temps à parcourir des sections ouvertes déjà tondues et trop peu de temps à tondre les parties dures.

J'ai donc décidé d'ajouter une intelligence externe.

23-04-2020 EDIT: le capteur ne fonctionnait pas tout à fait, alors j'ai changé quelques choses

Fournitures

2 interrupteurs extérieurs à 2 voies

OU

1 ancien routeur usb

1 carte relais usb

1 digipark

1 concentrateur USB

1 boîtier électronique étanche

23-04-2020 EDIT:

OR1 ancien routeur usb

1 carte relais usb

1 truc usb2serial tll

1 concentrateur USB

1 boîtier électronique étanche

1 capteur à ultrasons Dfrobot URM 37 v3.2 (vous pouvez probablement utiliser n'importe quel capteur =)

kmod-usb-serial-cp210x

Étape 1: Étape 1: Découpe manuelle multizone

Étape 1: Découpe manuelle multi-zones
Étape 1: Découpe manuelle multi-zones
Étape 1: Découpe manuelle multizone
Étape 1: Découpe manuelle multizone

La photo montre comment je suis passé d'une zone de coupe à 2 zones.

Mon robot démarrera automatiquement tous les 2. jours, donc tant que je me souvenais de le changer d'une zone à l'autre, cela fonctionnait bien.

J'ai utilisé 2 interrupteurs manuels, comme ceux que vous utiliseriez dans un couloir ou un escalier.

Cela a fonctionné, sauf que ceux que j'ai utilisés étaient de trop mauvaise qualité, et donc j'ai eu des bugs qui s'y sont introduits, les ont gâchés

Étape 2: Étape 2: la solution automatique

Étape 2: la solution automatique
Étape 2: la solution automatique
Étape 2: la solution automatique
Étape 2: la solution automatique
Étape 2: la solution automatique
Étape 2: la solution automatique
Étape 2: la solution automatique
Étape 2: la solution automatique

J'ai donc décidé de faire quelque chose d'automatique.

J'ai un routeur Netgear R6100 d'occasion, j'ai celui-ci parce qu'il a le wifi, l'usb et suffisamment de mémoire pour faire des expériences sur l'expérimentation, au lieu de le faire pour y entasser OpenWrt et ses amis.

J'ai un meilleur hub USB 2.0 d'ebay et une carte relais 12v.

Ensuite, j'ai eu un digispark d'un projet précédent. 23-04-2020 EDIT: utilisé un truc usb2seriel à la place

J'ai câblé les relais au lieu des interrupteurs. j'ai utilisé les relais 3 et 4

Ensuite, j'ai installé OpenWrt et j'y ai ajouté Crelay, picocom et coreutils-stty.

23-04-2020 EDIT: ajout de xxk, kmod-usb-serial-cp210x également

Branché 12V sur le routeur et la carte relais.

23-04-2020 EDIT: utilisé un Urm 37 v3.2 au lieu du reste de cette page

Ensuite, j'ai appris quelque chose de "amusant". la carte relais essaiera d'allumer le concentrateur USB, empêchant ainsi le digispark de redémarrer correctement. J'ai donc coupé le fil d'alimentation dans le câble usb de la carte relais et du hub usb.

Ensuite, j'ai branché le digispark et la carte relais USB dans le concentrateur USB 2.0 et le concentrateur dans le routeur.

Et bien pour être juste, j'ai programmé le digispark avant de l'ajouter au routeur

Dans le digispark, j'ai ajouté un bouton, que j'ai câblé entre P1 et Gnd.

Ce bouton est placé pour que le robot l'active une fois dans son garage en charge.

J'ai dû ajouter un ressort à l'activation, pour obtenir un bon engagement solide.

Étape 3: Étape 3: Logiciel

Le fichier contient un programme arduino ide pour le digispark.

Il est placé dans root/LawnSelector.

Ce fichier a besoin de quelques bibliothèques digispark, comme digiCDC et les cartes digispark ajoutées à l'ide arduino.

Ensuite, il y a les fichiers /root/GrassCtr/*.

Ce sont les fichiers qui font réellement le travail.

Kreds1 change les relais en zone1

Kreds2 change les relais en area2

KredsStatus demande au relais USB, quelle zone est active

23-04-2020 EDIT: utilisez UltraSoundSeriel au lieu de lire digispark.

ReadDigiSpark, lit les nouvelles tous les mardis. Attendez. Lit l'état d'entrée du digispark

GrassCtl réfléchit.

Voici ce qu'il fait.

Si le robot est IN pendant plus de 10 heures, il décide que le robot est là pour la nuit, et cela active une bascule, qui le fait démarrer dans chaque zone une fois sur deux. La raison en est que mon robot commence par couper tout le bord, et de cette façon, il coupe les bords tous les deux jours.

Ensuite, une fois que le robot tond, le capteur indiquera que le robot est sorti.

Chaque fois que le robot revient pour charger la batterie (défini comme étant en place depuis plus de 20 minutes), la zone sera changée pour l'autre zone.

veuillez noter. Le logiciel est un gâchis terrible, mais il fonctionne, ainsi de suite et vers le haut

Étape 4: Étape 4: Activation du logiciel

Pour exécuter le logiciel, nous devons faire quelque chose.

Je l'ai ajouté à un cronJob

*/5 * * * * /root/GrassCtrl/GrassCtl

au fichier

/etc/crontabs/root

Ensuite, pour activer les tâches cron, j'ai fait

/etc/init.d/cron activer

Pour autant que je sache, le robot va maintenant changer entre le démarrage de la zone de tonte 1 ou 2, et changera ce qui est tondu à chaque fois qu'il rechargera les batteries.

Et oui, maintenant il obtient tout

Conseillé: