Aller au contenu


gerardosamara

Inscrit(e) (le) 21 mars 2016
Déconnecté Dernière activité janv. 31 2020 04:26
-----

#91342 [Projet Rover 2WD] Mon robot de surveillance mobile et télécommandé

Posté par gerardosamara - 06 janvier 2018 - 05:39

1) En attendant les matériels commandés , j'ai regardé le protocole de communication entre le robot et le logiciel domotique Domoticz sur Rpi  à choisir pour rester compatible avec l'API python existante du robot utilisée avec l'app de pilotage sur smartphone Android.

- Utilisation de messages "http request de type post"  et messages "http response post " (200 OK par exemple)
- Besoin de la librairie python "requests"   

     payload = {'<test_api_python>'}
     r = requests.post("http://192.168.0.x/post",data=payload)
    
Les messages suivant disponibles dans l'Api python du robot vont pouvoir etre utilisés par le logiciel domotique , sans impact sur l'API python du robot donc , dans le module d'initialisation du dialogue avec le robot (module "init_robot.py ) :

  <test_api_python>   
  <test_arduino>
  <start>
  <stop>    
 
2) Ensuite restera à définir :

- comment le logiciel domotique va indiquer au robot d'aller dans la zone du capteur qui a détecté un mouvement
- Comment le robot va aller dans cette zone du capteur .

 

==> J'ai pas vraiment refléchi  à la problématique de la navigation dans ce contexte pour l'instant ( le robot connait sa position et doit rejoindre un autre endroit que le logiciel domotique lui donne....)  :

 

==> Stratégie de navigation par carte ( ?)




#91252 [Projet Rover 2WD] Mon robot de surveillance mobile et télécommandé

Posté par gerardosamara - 02 janvier 2018 - 09:18

La version 2 du robot mobile sera à fonctionnalités égales , avec en plus :

 

- de nouveaux moto-réducteurs équipés d'encodeur achetés sur la boutique.

- la caméra monté sur un servomoteur

- un 2ème détecteur de distance à ultrason à l'arrière du robot
 
Le nouveau chassis  sera basé sur du Makeblock  , commandé ce jour .
Une batterie Lipo 3S + 1 chargeur Lipo 2S/3S ont été également commandés ce jour sur la boutique.




#90631 [Projet Rover 2WD] Mon robot de surveillance mobile et télécommandé

Posté par gerardosamara - 04 décembre 2017 - 12:56

Merci pour vos suggestions.
 
La version finale du robot intégrera bien une caméra PI V2 NoIR pour la vision nocturne , avec "motion" pour la détection de mouvement ( ou autre logiciel si meilleur ).
Avant de démonter cette version de test du robot, je vais mettre en place la détection de mouvement  , qui est une des fonctions majeures de ce robot :
 
- Envoi de mail d'alerte en cas d'évènement de détection de mouvement par le robot  ( script python lancé par motion )
- Envoi par mail de x photos ( une vidéo serait mieux mais trop long à transférer vers une adresse mail ou Dropbox. )  par évènement de détection de mouvement... qui peuvent etre rapprochés dans la vrai vie. ( ( script python lancé par motion )
 
Note : Le but de l'envoi par mail est de ne pas stocker en local les photos prises lors de l'évènement mais cela pourrait etre aussi par FTP ..
 
La première partie  "envoi de mail d'alerte" fonctionne ... cf screenshot ci-dessus
 
motion alert.PNG


#90264 [Projet Rover 2WD] Mon robot de surveillance mobile et télécommandé

Posté par gerardosamara - 22 novembre 2017 - 12:25

les seconds tours de roues de Rover1 , piloté à partir de l'application Android  dédiée  ,  avec tous les boutons  START , STOP , AV, AR , D , G  et le retour video.

 

Bon .. la vidéo n'es pas terrible !  et l'absence de batterie fait que les fils d'alimenentation freinent le déplacement du robot.

 

App Android  v027.png

 




#90054 [Projet Rover 2WD] Mon robot de surveillance mobile et télécommandé

Posté par gerardosamara - 15 novembre 2017 - 08:53

Ca  y est enfin ...  les premiers tours de roues de Rover1 , piloté à partir de l'application Android  dédiée  ( Boutons  START , STOP , AV )
 
=> La vidéo ne peut pas etre ajoutée à ce post ( fichier mp4 )  , avec une erreur du type "  pas la permission de télécharger le fichier  " !
     Comment faire sans passer par youtube ?
 
Ensuite restera  à tester  les autres boutons AR , Tourner à Gauche ,Tourner à  Droite et à refaire une meilleure vidéo

 




#89815 [Projet Rover 2WD] Mon robot de surveillance mobile et télécommandé

Posté par gerardosamara - 10 novembre 2017 - 03:15

Un nouveau chassis de test ( 2 roues avec motoréducteurs + 1 rue folle) a été réalisé pour y installer une alim 5V A , une carte Arduino MEGA avec au-dessus son shield moteur Arduino, une carte RPI3 et une webcam USB . .....  pas facile d'etre maquettiste !

 

Pour l'instant pas de batterie mais un chargeur 5V 2A pour le RPI et un chargeur 12V 1A pour la carte alim en attendant un modèle plus puissant car il alimente les  2 cartes Arduino.

 

Cette phase de test va ( enfin ) consister à piloter le robot à partir de l'app Android ( AV , AR , D , G , STOP ) et avec le retour video sur l'app Android.

 

 

robot de test.jpg

 




#89143 [Projet Rover 2WD] Mon robot de surveillance mobile et télécommandé

Posté par gerardosamara - 20 octobre 2017 - 11:24

Mon environnement de développement est installé entièrement sur le Rpi3 + VNC Server et est utilisé à partir d'un PC connecté en Wifi en tant que client VNC :

 

- Python

- IDE Arduino

- Console RPI en SSH ( Putty)

 

Cela permets , sur le meme écran du PC d'avoir accès dans la fenètre VNC Client aux :

 

- Code source Python interprété

- Code source Arduino dans son IDE pour compilation et téléversement

- A la console Rpi pour  éxécution du code Python et Debug

 

+ MIT Inventor 2 dans Firefox pour l'App Android

 

NB : J'ai pour objectif final de pouvoir travailler sur mon robot  de surveillance à distance ( comme le Rover Curiosity de la Nasa ....  humblement )

 

Cf screenshot

 

Envirnnement developpement sur RPI.PNG




#87601 [Projet Rover 2WD] Mon robot de surveillance mobile et télécommandé

Posté par gerardosamara - 12 septembre 2017 - 07:29

Muchas gracias @Oracid

 

Voici la page de controle  du robot à partir de l'app Android sur smartphone avec le retour vidéo.

 

En ce qui concerne l'ergonomie des boutons de controle du robor , je ne sais pas si on peut faire mieux .

 

 

 

Screenshot_retour video.png




#87516 [Projet Rover 2WD] Mon robot de surveillance mobile et télécommandé

Posté par gerardosamara - 10 septembre 2017 - 12:32

Il restait à tester la connexion app android <-> Arduino connecté en USB derrière le RPI3 , avant de poursuivre sur les commandes du robot .

 

La séquence du dialogue entre l'app android , le script python du RPI et le sketch de l'Arduino est plus ou moins bien décrite dans les traces du screenshot pris sur le PI .

 

- Envoi "Arduino Ready"  en boucle au Rpi par le sketch Arduino dans le bloc setup

- Configuration port USB par le Rpi  ( ser = serial.Serial("/dev/ttyACM0", 9600)

- Réception "Arduino Ready" par le RPi

- Envoi "RPI ready" par le Rpi à l'Arduino

- Réponse "Rpi Ready" de l'Arduino au Rpi

- Connexion du serveur socket dans le Rpi

- Connection du client socket Android dans le Rpi

- Envoi message"<Test Android Arduino<" par l'app Android ( bouton "Connexion Arduino")

- Réponde du Rpi " http 200 OK" à l'app Android

- Affichage "Connexion Arduino OK" sur l'app android

 

 

Screenshot test andriod arduino.PNG

 

Screenshot_ app.png

 

 

La prochaine étape sera de creer un nouvel écran sur l'app android  pour les commandes du robot et le retour video




#85822 [Projet Rover 2WD] Mon robot de surveillance mobile et télécommandé

Posté par gerardosamara - 14 juillet 2017 - 09:08

Ca marche si le serveur réponds un HTTP/1.1 200 OK à l'app Android

 

La prochaine étape sera de tester la connexion app android <-> Arduino connecté en USB derrière le RPI3

 

 

python server test api.PNG

 

app android test api rpi3.jpg

 

Script de test python installlé sur le RPI3

#!/usr/bin/python3.4
# coding: utf-8 # -*-coding:Utf-8 -*

import socket

host = ''
port = 8481

connexion_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connexion_server.bind((host, port))
connexion_server.listen(5)
print("Le serveur écoute à présent sur le port {}".format(port))

connexion_client, infos_connexion = connexion_server.accept()
print(infos_connexion)

msg_recu = b""
# header response code 200
h = 'HTTP/1.1 200 OK\n'
h += 'Server: Simple-Python-HTTP-Server\n'
h += 'Content-Length: 0\n'
h += 'Connection: keep-alive\n\n'
# Boucle  
while msg_recu != b"Stop":
    msg_recu = connexion_client.recv(1024)
    if msg_recu:
         print(msg_recu.decode())
         connexion_client.send(h.encode())
         print(h) # response code 200
         print(infos_connexion)
 
print("Fermeture de la connexion")
connexion_client.close()
connexion_server.close()





#84543 Robot de controle en ehpad

Posté par gerardosamara - 08 juin 2017 - 04:29

Bonjour et bienvenue.

 

Ce sera un système de domotique qui sera à mettre en place et non robotique.

 

Pour le background  par exemple .... http://www.touteladomotique.com/forum/index.php

 

Il faudra commencer par définir la liste des capteurs et le protocole utilisé ( filaire , radio) pour la connexion au controleur domotique  à choisir en fonction des besoins de  raccordement capteurs et autres fonctions à fournir  ..




#84235 Intégration de mon UGV dans ma domotique basée sur RPI3+Domoticz

Posté par gerardosamara - 01 juin 2017 - 09:36

Ajout d'un widget "Text Sensor" sur le dashboard Domoticz pour y afficher le dernier message échangé entre Domoticz et le robot  ( Requete et réponse )   et consulter le log de ces messages échangés

 

Dashboard robot.PNG

 

Text sensor log.PNG




#84231 Intégration de mon UGV dans ma domotique basée sur RPI3+Domoticz

Posté par gerardosamara - 01 juin 2017 - 09:36

DESCRIPTION DU PROJET
 
Mon installation actuelle de domotique est plus pour de la vidéosurveillance que de la domotique ( Controlleur Zwave VERA , Caméra IP , détecteurs de mouvement , détecteurs d'ouverture de porte/fenetre  , détecteur d'ouverture de porte de garage , détecteurs de mouvements multi-fonctions avec relevé de température et humidité , modules interrupteurs et prises de courant connectées).
 
Mon but est de migrer mon installation domotique sur une plateforme RPI3 + Logiciel Domoticz et d'y intégrer mon robot mobile télécommandé .... http://www.robot-maker.com/forum/topic/10346-projet-mon-ugv1-mon-robot-de-surveillance-mobile-et-telecommande/ 
 
1) L'interface du robot au niveau de la domotique se fait à l'aide de switch selector :
 
- Un switch selector "House Mode"  avec des actions définies en fonction de l'état  de ma présence dans la maison DISARM , HOME , AWAY , NIGHT , VACATION
- un switch selector "Rover1 mode" pour indiquer au logiciel Domiicz de controler ou pas  le robot.
 
En conclusion  , le robot sera controlé  par l'app Android si  House Mode =! Disarm et Rover1 = App Control  et sur évènement de détection de mouvement le logiciel domotique  va donner les instructions au robot  pour aller dans la zone du détecteur de mouvement qui a été actionné
 
2) Le robot pourra également fonctionner en autonome avec une fonction détection de mouvement :
 
- Envoi de mail d'alerte en cas d'évènement de détection de mouvement par le robot  ( script python lancé par motion )
- Envoi par mail de x photos ( une vidéo serait mieux mais trop long à transférer vers une adresse mail ou Dropbox. )  par évènement de détection de mouvement... qui peuvent etre rapprochés dans la vrai vie. ( ( script python lancé par motion )
 
Note : Le but de l'envoi par mail est de ne pas stocker en local les photos prises lors de l'évènement mais cela pourrait etre aussi par FTP ..
 
Le dashboard de l'app Android "Domoticz" montrant l'interface de décision de pilotage du robot (app android ou domoticz)
 
screenshot interface robot Dz.png
 
Fonctions réalisées
 
- Switch selector House Mode et Rover1 Mode et gestion du controle du robot par Domoticz
- HTTP Interface de Domoticz avec le robot
 
 
ToDoList
 
-  
-


#83749 Au sujet des encodeurs du Kit moteur GM25-370CA

Posté par gerardosamara - 19 mai 2017 - 04:46

@mike118 ,

 

Merci pour la mise à jour.

 

J'ai relevé une erreur de lien dans ce tuto .. http://www.robot-maker.com/shop/blog/33_Asservir-moteurs-courant-continu-PID.html

 

Comme actionneur j'ai choisis un moteur à courant continu qui sera piloté par un driver prévu à cet effet. Le moteur est équipé d'un encodeur dont vous avez appris à vous servir dans le tutoriel sur les encodeurs, le code présenté reprend en partie celui présent dans ce tutoriel.

 

Le lien vers l'article "tutoriel sur les encodeurs " est cassé :

 

Page introuvable

La page que vous avez demandée n'existe plus.




#83737 Au sujet des encodeurs du Kit moteur GM25-370CA

Posté par gerardosamara - 18 mai 2017 - 10:11

Ce type de moteur exite en 3 versions , cf datasheet fabricant

 

http://www.ttmotor.com/productshow.php?sid=208&id=137

 

La fiche produit de la boutique est à mettre à jour pour indique lequel est vendu .

 

Corriger aussi  "Vitesse du moteur à vide "