Modification d'un robot de piscine?

Bonjour a tous,
J’ai une petite question légèrement en dehors du spectre home assistant.
On trouve en cherchant un peu des modifications de tondeuses autonomes et d’aspirateurs Roomba qui rendent pilotables ou intelligents ces appareils pas prévus pour a la base.
Je me posais la question de savoir si ça avait également été réalisé pour les robots aspirateurs de piscine (type dolphin) ?

Pour alimenter le sujet, sur le forum Arduino quelqu’un s’est déjà penché sur la question, et a implémenté un esp sur la carte électronique pour piloter les roues selon une tempo prédéterminée, mais sans aucune intelligence.
La manip a l’air de fonctionner pour tous les robots a 3 moteurs :

Le top serait de raccorder ça a HA pour faire varier les tempo de trajectoire selon des cycles particuliers avec pourquoi pas une cartographie sommaire du bassin a entrer au préalable, faire du on/off selon un planning… Il faudrait pour cela soit sortir le robot du bassin pour qu’il prenne sa consigne, soit qu’il dispose d’un module flottant communicant avec HA ou sur le bord du bassin.

Pour la part électronique hors HA, les autres idées qui me semblent accessibles seraient d’ajouter un petit module de pilotage sans fil pour télécommander au fond du bassin (RF avec antenne flottante ou non ?), et summum de l’upgrade : une petite batterie flottante pour se séparer du chariot et du long fil.

Il y a des motivés pour se lancer ?

J’aurais bien franchi le pas mais j’ai pas encore basculer sur l’achat d’un robot :frowning:

Mon sujet n’a pas l’air de motiver les foules :laughing:
Le pilotage des moteurs via Arduino, couplé a un gyro et un accelero doit permettre de faire une carto élémentaire.
Les robots modernes sont pilotables via le chariot avec le smartphone en filaire quand ils sont sous l’eau (compliqué pour nous), ou sinon chargent le programme de nettoyage de l’utilisateur quand ils sont en dehors de l’eau.
Cette deuxième solution est accessible pour nous, quand l’arduino communique par wifi avant d’entrer dans le bassin, via un booléen sous HA qui charge un programme déjà présent sur l’arduino, entré précédemment (une tempo d’instruction sur les moteurs des roues).

Moi, je trouve que ton sujet est intéressant :+1:, même si, comme tu le dis, ça s’éloigne un peu (un peu, seulement !) du H-A.
Etant l’heureux proprio (:roll_eyes::cry:) d’une piscine de 9x4, non couverte, avec liner, et de 2 robots successifs qui n’ont pas beaucoup accepté de survivre à mon eau salée (oui, j’ai un chlorinateur et, de ce fait, je nage en « eau de mer »), ça fait un moment que j’ai jeté quelques idées sur des modifs à créer pour passer par une « intelligence type Arduino ou ESP32 »:
- fonctionnement avec apprentissage de la géométrie du bassin
- intégration d’accéléromètre XYZ pour évaluer la position du mobile
- transmission avec la base (si base il y a, ou avec H-A) quand le robot est hors de l’eau , quand il grimpe aux murs.
- récupération par H-A de la carto (comme pour les aspirobots « de salon »)
----> avec, éventuellement, optimisation du circuit pour optimiser le travail du robot (?).

Voilà, en vrac et sans ordre, le « jus de méninges » que je te livre.
Il faudrait que je retrouve le lien d’un site d’amateurs de piscine où un gars avait essayé de remplacer le bloc « standard » (et américain…) qui équipe la majorité des robots « type Dolfin »; il avait commencé à partager son schéma et ses dev’(s) Arduino mais n’a jamais répondu à mes demandes de partages d’infos :cry:

PS: l’idée d’une batterie flottante me plait bien, car ça permet d’aller « repêcher » la bête au crochet quand elle à fini le nettoyage…ou qu’elle n’a plus de jus

PS2: Je pratique, depuis un bon moment l’impression 3D (10 ans) et la CAO (30 ans…!), et la réalisation de pièces spéciales ou modifiées ne m’effraie pas.

A suivre

@Aldous_Hx
Je relance le débat en ajoutant quelques liens (non sponsorisés !) vers des vidéos d’un bricoleur ayant re-vampé son robot à base de microproc’ Arduino à 15€ (ou ESP à 5€) pour pas cher:

→ un certain Allpassion (en 4 episodes)
https://www.youtube.com/watch?v=3k-sj8bUuJc
https://www.youtube.com/watch?v=l4xH4gVKW_s
https://www.youtube.com/watch?v=LxC9Q8qsbZs
https://www.youtube.com/watch?v=Pf8lTnT95iU

1ere étape : faire aussi bien que lui… pour 60€ !
2e étape : voir à envoyer des logs à H-A par wifi (avec un ESP si y’a pas trop d’E/S)… pour quoi faire ? sauf à te sortir de ta sieste quand il a fini :joy:
Je te laisse en apprendre autant que moi sur l’Arduino et ses mystères.
En attendant, je continue mon apprentissage (laborieux) de H-A.

…et on pourra rediscuter de l’intérêt d’une cartographie de piscine…:thinking:

La cartographie permettrait plusieurs choses :

  • Ralentir avant de taper les murs, pour préserver un peu le liner

  • Cibler une zone précise a nettoyer et y aller directement

  • Optimiser le trajet du robot avec un schéma de parcours pour raccourcir le cycle

  • Localiser les parois si par exemple on veut réaliser un nettoyage des lignes d’eau ou a l’inverse ne pas le faire du tout

Au global, ça permet au robot de ne pas rouler comme un poulet sans tête au gré des collisions en fond de bassin…

Pour le wifi sous l’eau ça n’est pas possible, ça ne passe pas, mais par contre, avec une carto élémentaire tu peux lui demander de se positionner a l’endroit qui t’arrange pour le sortir, et tu peux lui dire de monter au niveau de la ligne d’eau quand il a fini son cycle pour capter le wifi et te prévenir avant de redescendre au fond pour t’attendre !

@Aldous_Hx, j’aime bien tes ambitions sur le sujet, mais tous ces sujets super-intéressants, il va falloir les traduire en fonctionnalités « physiques » pour réaliser ça pour l’intégrer dans le prog’ de pilotage Arduino.

1: ralentir avant le mur (?) → comment ? détecteur ? sinon en ayant, au préalable, défini la « carto »… donc c’est pas le robot qui découvre son environnement mais c’est toi qui lui injecte un « plan » du bassin (avec quoi et comment ?) et lui créer un « point 0 » d’où il démarre car il ne reconnait pas lui-même ou il est, si tu le jettes n’importe où dans le bassin.

2: cibler une zone: quel est l’intérêt ? faire des économies sur le temps de cycle… il me semble que la nettoyage ne doit pas dépenser plus d’un KW à 20 cts, mais je me trompe peut-être: je n’ai jamais mis de prise connectée sur mon robot (qui ne marche plus depuis 2 ans…)

3: même remarque que ci dessus: quel est l’intérêt, autre que ta satisfaction intellectuelle ?

4: les robots « classiques » montent tous au mur et nettoient la ligne selon une tempo déclenchée par un contact à bille qui switche dès que le robot est vertical; lui faire faire un cycle « sans mur » pourra se décider à partir du panneau de commande (ou de H-A si on arrive à communiquer avec la carte de pilotage); dès qu’il est vertical, avec la tempo mise à 0, il repart dans l’autre sens et c’est réglé.

Je ne sais pas d’où te vient ton inquiétude au sujet de la fragilité du liner, mais, pour ma part, je ne m’obligerais pas à gérer 2 vitesses de déplacement pour ça… sur un robot, ce sont les roues caoutchouc qui touchent le mur en premier et ce n’est, normalement, pas un danger pour le liner.

En ce qui concerne ta remarque sur le « wifi sous-marin » :wink:, je sais bien, après quelques essais, que ça ne marche pas; c’est pour cette raison que tous les échanges avec H-A ou avec la centrale de commande (flottante ou pas) se ferait quand le robot est sur la ligne d’eau, avant de redescendre, pour envoyer les éléments du trajet enregistrés pendant la « plongée ».

Pour ma part, je me lance dans la restauration (entre beaucoup d’autres projets en cours…) de mon robot en suivant le vidéos que je t’ai partagées. j’y ajoute toutefois une puce « accéléromètre » pour détecter la position verticale et le Wifi (intégré déjà sur certains ESP) qui serviront lors des futures évolutions.

A) fonctionnement minimum avec cycle global de 3h et tempo marche AV/AR (réglable avec potar).
- avec essai pour fonctionnement sur batterie(s) flottante(s) si la puissance demandée le permet.
B) évolution avec accéléromètre.
a) - détection de position verticale pour inversion sens de marche et/ou nettoyage ligne d’eau.
b) - qui peut déboucher vers une cartographie avec enregistrement/transmission/mémorisation des déplacements
C) échange avec « base » ou H-A pour pilotage « fin »

Je ne connais pas ton niveau en développements Arduino, pour moi, ça se limite à quelques modification de programme avec mes amis des Fablabs dans lesquels je bricole (en vrac). Dis moi où tu en es et quelles priorités, dans l’ordre, tu comptes suivre.

Désolé pour le délai de réponse, j’étais pas mal occupé ces derniers temps !

1 ) je pensais à une carto rentrée au préalable, avec un point d’introduction prédeterminé du robot dans le bassin qui ne varie pas. Le robot pourrait faire un premier trajet selon x puis y pour se recaler (pour la majorité des piscines qui sont rectangulaires), avec un ralentissement bien avant la position theorique des murs (approximative car imprecision du point d’introduction) et détection de l’impact avec 2 accéléro horizontaux pour recaler sa position dans le bassin avant d’enclencher sa consigne de nettoyage.

2 et 3) Pour le ciblage et le cycle optimisé, ce n’est pas vraiment pour une question d’économie. Mon robot consomme 150 à 200W, ce n’est pas énorme, mais on ne se baigne pas quand le robot est branché dans le bassin, le nettoyage complet peut être plutôt long, et quand il y a par exemple une zone de bassin sous un arbre ça permet de déterminer la zone unique a nettoyer pour permettre de retourner rapidement à la baignade après. Ça permet également de nettoyer uniquement des zones sans circulation, proche des volets ou sous les buses par exemple, où il y a des dépôts ou facilement de la prolifération d’algues : le reste du bassin ne nécessite pas de nettoyage et laisser le robot errer jusqu’à nettoyer la petite zone peut prendre du temps.
Ça permettrait également de faire un mur virtuel par exemple pour les bassins avec plage, pour éviter que le robot ne soit plus immergé.

4 ) Je ne savais pas, c’est intéressant !

Pour l’impact sur le liner je n’ai pas d’avis pour sa solidité, mais le robot ne doit pas être trop friand des chocs à pleine vitesse, même si elle n’est pas folle.

Pour la communication de robot, la carto a également un intérêt pour cette raison, il peut trouver le morceau de mur en haut duquel il sait que le récepteur le verra quand il enverra son message. Il pourra également si son filtre est trop rempli pour monter a la paroi se positionner à un endroit du bassin prédeterminé pour être facilement remontable.

Pour mon experience en arduino c’est proche du néant, je ne fais que singer des montages déjà existants par manque de temps pour m’y investir plus…

@Rupek
As tu pu progresser avec l’utilisation de l’accelero notamment ?

Sur l’acceléro, je n’ai encore rien fait: Même si je suis retraité, HA n’est pas ma seule activité, loin de là !
Mes robots sont en panne et je tente de refaire une carte de contrôle interne qui remplacera la carte d’origine (américaine) qui coûte presque aussi cher que le robot neuf… En lui collant un arduino (ou un ESP) ça devrait me revenir à 30 ou 40€ tout compris…

(le 12/04/24) Pour compléter un peu ma démarche et aller dans ton sens au niveau développement futur, je compte passer sur un ESP pour piloter les 2 moteurs du robot, mais, dans un premier temps, il faut que je fasse des essais de communication entre l’ESP et H-A lorsque le robot est sur la ligne d’eau.

Pour ça,
→ je refais toute mon alim’ pour du 3.3V et mes relais (qui ne passent plus avec les sorties de l’ESP en 3V)…
→ je perce le boitier et je crée une antenne externe pour l’ESP (avec étanchéité à l’eau salée !)
→ je fais un premier test de communication et si c’est bon, on pourra envisager une suite.

a) faire déplacer le robot et le faire grimper la paroi jusqu’à la ligne d’eau et, en fin de tempo, faire une communication avec HA (un test simple, dans un premier temps) avant d’inverser le sens de roulage et recommencer X fois le cycle.

b) si la com est bonne dans les 2 sens, voir la possibilité d’intervenir sur les variables du programme de l’ESP.
c) voir comment modifier le prog’ sans démontage (je ne connais rien à l’OTA, mais il semble que ce soit possible sur ESP… comment ? mystère…pour l’instant)

Comme tu le vois, on est encore loin d’un robot « qui fait Papa-Maman » !:wink:

1 « J'aime »

Bonjour à tous,
Pour info j’ai modifié il y a 2 ans mon tiger shark avec un esp8266.
J’ai tout enlevé dans le robot car les cartes étaient HS, j’ai bien sûr laissé les 2 moteurs.
L’intérêt c’est que toute l’électronique a été déportée en dehors.
Un petit programme pour faire des aller retour aléatoire et c’est réparti.
Je me suis inspiré de cette vidéo :

Petite photo

Par contre il faut avoir 4 fils qui vont au robot pour alimenter les 2 moteurs
Certains modèles n’en ont que 2.

1 « J'aime »

Merci d’intervenir stephg38, je me suis aussi fait la même réflexion en regardant ce jeu de tutos de AllPassion (avec qui j’ai échangé récemment ) Mais, malheureusement, mon robot n’est alimenté que par 2 fils en 24V continu :slightly_frowning_face:.
Donc, dans mon cas, l’électronique doit être transférée dans le boitier des 2 moteurs et remplacer la carte électronique d’origine ce que n’a pas été obligé de faire AllPassion dans sa solution.

Ce qui implique la décision que j’ai prise de changer mon fusil d’épaule et de passer d’une solution Arduino à une solution ESP8266 qui me permettra, si les tests de communication sont validés, de passer des ordres « On The Air ».

Nota: avant de me « flooder » avec des remarques du style « le wifi passe pas sous l’eau » et Gna Gna Gna, merci de lire les posts précédents.

Si le « OTA » ne marche pas, un ami m’a même proposé de passer par une solution par courant porteur, or il me semble que cette solution, utilisée sur vos répéteurs Wifi, je crois, ne fonctionne pas en courant continu…( du moins, il me semble)

Après ces propositions pleine d’incertitudes, je vais tenter de faire un montage d’essais avec un ESP, un accéléro, et quelques leds pour simuler les 3 sorties moteurs (Marche AV, AR et moteur d’aspiration) et voir comment, en plus, transmettre « des choses » entre un ESP interne et un autre externe au robot… FACILE !:roll_eyes::wink:

1 « J'aime »

Tu peux essayer de trouver un câble avec 4 fils sur le bon coin.
Il y a souvent des robots HS pas cher !

C’est une solution, mais c’est tellement moins drôle…

(Edit du 13/04/24) De plus, il semble que mon boitier ait déjà été « bricolé », et le câble est absolument indémontable côté boitier… donc il faudrait que je trouve un câble 4 fils et son boitier moteur.:slightly_frowning_face:

1 « J'aime »

Bjr
Même si tu trouves un cable 4 fil tu vas avoir bcp de mal a le.chnager côté robot car la connexion est assez compliqué pour que ça doit étanche car pas de même diamètre ( même si dans les video il explique que c’est pas trop grave )

Tu as raison @cocof , sur mon boitier le passage de cloison est assuré par un presse-étoupe avec un joint, mais derrière, ça semble soudé…
Si le problème me gonfle trop, je ferai sauter la zone complète et referai un passe câble avec un raccord type « plomberie » (ce que semble avoir fait AllPassion, le youtubeur dont je me suis inspiré pour ce projet), ce qui me permettra, sans démontage trop important, de vidanger le boitier en cas d’entrée d’eau…
Sinon, j’ai encore la possibilité d’acheter sur LBC un robot d’occasion à 50 balles, que j’ai repéré depuis un moment.

Mais pour l’instant, on a fini, hier, la mise au point du programme Arduino inspiré de AllPassion (tout ne marchait pas comme prévu à cause de résistance de pull-up présente dans les platines-relais que j’avais…) et on va tester, prochainement, la communication en Wifi ou un autre protocole (pourquoi pas Zigbee !) entre le robot en mode « ligne d’eau » et une « base de commande ».
Le rêve ultime serait, à terme, d’échanger entre Home-assistant et un ESP32 intégré au robot, ce qui ouvrirait un monde de possibilités: cartographie simplifiée, reconnaissance de la position dans le bassin, etc…

On peut rêver, non ?