Aller au contenu


Newbies

Inscrit(e) (le) 15 avril 2012
Déconnecté Dernière activité févr. 27 2017 09:03
-----

Sujets que j'ai initiés

Capteur HC-SR04 et raspberry

09 février 2017 - 11:21

Salut les makers,

 

Je bosse encore sur mon projet de drone autonome et j'ai (encore) un problème. Cette fois ci c'est les capteurs. En effet, j'essai depuis hier de faire fonctionner des capteurs à ultrasons HC-SR04 avec ma raspberry mais pas moyen.

 

Ce qu'il se passe est assez étrange. Quand le capteur n'est pas branché à la raspberry, les GPIOs changent bien d'état quand le programme leur demande, mais quand le capteur est branché, les GPIOs restent à 1 et ne changent pas.

 

Autre chose bizzare (quoi que peut être normal), quand le capteur est alimenté en 5v, je mesure une tension de 5v continue sur les pins ECHO et TRIG (peut être lié au fait que je ne puisse pas changer l'état des pins quand il est branché à la raspi).

 

 

Le tuto préconisais d'utiliser un diviseur de tension pour protéger les GPIO de la raspi (5v -> 3.3v) avec une résistance de 1K et une de 2K. Je n'avais pas ces résistances sous la mains et ai donc du utiliser à la place une résistance de 22K et une de 44K, ça devrais fonctionner pareil non ?

 

Le code (python) utilisé pour mes tests: 

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)

TRIG = 23 
ECHO = 24

print "Distance Measurement In Progress"

GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)

GPIO.output(TRIG, False)
print "Waiting For Sensor To Settle"
time.sleep(2)

GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)

while GPIO.input(ECHO)==0:
  pulse_start = time.time()

while GPIO.input(ECHO)==1:
  pulse_end = time.time()

pulse_duration = pulse_end - pulse_start

distance = pulse_duration * 17150

distance = round(distance, 2)

print "Distance:",distance,"cm"

GPIO.cleanup()

Des idées ?


Quadcopter RaspberryPi et Naze32

02 février 2017 - 08:50

Salut les gars,

 

Je suis en train de bosser sur un projet de quadcopter intelligent mais je bute déjà sur un problème.

En effet mon drone est pour l'instant piloté uniquement par une carte contrôleur de vol naze32. Cette carte marche vraiment nickel et stabilise le drone à la perfection, en revanche, elle ne sait faire que ça.

 

L'idée est donc de laisser le rôle de la stabilisation à la naze32 mais d'y connecter une raspberryPi zero afin de pouvoir rendre le drone "intelligent" ( un algo de reconnaissance faciale tournera sur la pi).

 

La question est donc, quels solutions s'offrent à moi pour connecter une raspberrypi à une naze32 ?

 

J'ai d'abords pensé simplement faire passé la raspberry pour un récepteur RC en envoyant des signaux PWM à la naze32 mais cela ne permet pas un réel dialogue entre les deux cartes.

 

J'ai crus voir quelque part sur ce forum quelqu'un disant qu'il avait connecté sa raspberry au port série de la naze32 mais je n'ai rien trouvé sur internet par la suite sur comment faire ça.

 

L'idée de connecter ma raspberry au port série de la naze32 me plait car cela voudrait aussi surement dire que je pourrait récupérer les données des capteurs de la naze32 pour mon algo sur la raspberry.

 

Quelqu'un à déjà fait ça ? Et si oui comment ? :)

 

merciii


algo pour lidar 32 points de mesures

01 mai 2016 - 11:03

Salut les gars,

 

Je bosse actuellement sur un projet (pour mon école) qui consiste à créer un algorithme (en C) permettant de faire naviguer un robot doté d'un lidar à l'avant dans un circuit le plus vite possible sans toucher de murs.

 

Quelques infos à propos du robot:

 

Le lidar à un angle d'ouverture de 60 dégrée vers l'avant du robot (voir photo) et il retourne 32 mesures de distance (environ une tout les 2 degrées donc).

Je peux contrôler la puissance du moteur (de 0 à 100%), ainsi que l'angle des roues avant pour contrôler le robot.

Je peux aussi connaitre la vitesse absolut du robot (en Km/h).

La fréquence de rafraîchissement du lidar est assez longue (3 mesures par secondes je dirais) donc ça complique pas mal la tache sachant que le robot peut aller (très) vite.

Les essais sont pour l'instant fait sur un logiciel de simulation robotique (V-REP pour les connaisseurs).

 

Voici une image de la simulation (les lignes bleu partant du robot représentent les extrémités du capteur):

 

Fichier joint  track.png   717,57 Ko   50 téléchargement(s)

 

J'ai déjà fais un algo très simple qui consiste à juste tourner les roues dans un le sens opposé quand on se rapproche d'un mur. Ca marche à peut près, mais quand il y à des virages trop serrés il se plante et il ne va du coup pas tout droit même en ligne droite.

 

Je suis sur qu'avec autant de données venant du lidar, on peut faire un algo bien plus intelligent pour par exemple appréhender les virages et choisir exactement la bonne vitesse/orientation pour le prendre etc...

 

Le truc c'est que je ne vois pas du tout comment faire ça et je ne trouve rien sur le net :/ 

 

Voilà voilà, donc si quelqu'un à une idée de comment faire ou un lien vers des éventuels informations, je suis preneurs ;)


Détection précise d'une hauteur relative

12 avril 2016 - 10:38

Salut les gars,

 

De retour sur le forum après quelques mois (années ?) avec un projet que j'ai en tête depuis longtemps. J'aimerais faire un petit robot qui ajuste la hauteur de ses roues en fonction des obstacles qu'il passe (qui en principe devrait rendre le déplacement du robot fluide sur tout type de surface).

 

A peine le projet commencé, je bloque déjà... En effet, afin d'ajuster la hauteur de mes roues il me faut connaitre la hauteur relative au sol de l'objet et je ne sais pas comment arrivé à ca.

 

Un petit schéma pour rendre le problème plus clair :

 

 

Fichier joint  Présentation sans titre.png   20,44 Ko   185 téléchargement(s)

 

J'ai d'abords pensé mettre un capteur en direction du sol qui détecterais la hauteur d'un objet arrivant dans son champ mais les distances mesuré son trop petites et avec des capteurs "accesibles" la mesure serait trop vague.

J'ai ensuite pensé à mettre le capteur face à l'objet et à le faire remonter doucement mécaniquement jusqu'à ce que son champ passe au dessus de l'objet pour en déduire sa hauteur mais ca me parait compliqué à mettre en oeuvre et pas forcement plus précis :/

 

Avez vous une idée ?


Mes LEDs ne s'éteignent pas !

03 juin 2015 - 05:34

Salut les gars,

 

J'écris ici car je suis désespéré... Je suis en train de faire une carte de contrôle pour une bande de LEDs basée sur une arduino Nano et des transistor TIP120 pour contrôler les LEDs 12V. 

 

Pour tester ma carte, j'ai donc écrit un petit code permettant de les faire clignoter. Mais alors que les LEDs devraient clignoter toute les secondes comme le code l'indique, elles s'allument et reste allumées indéfiniment...

 

Quelqu'un à une idée ? J'en reviens pas de bloquer sur un truc comme ca...

 

Mon code :


 
int BLUEPIN = 3;
int GREENPIN = 5;
int REDPIN = 6;

 
void setup() {
  pinMode(REDPIN, OUTPUT);
  pinMode(GREENPIN, OUTPUT);
  pinMode(BLUEPIN, OUTPUT);
}
 
 
void loop() {
 analogWrite(BLUEPIN, 255);
 analogWrite(GREENPIN, 255);
 analogWrite(REDPIN, 255);
 delay(1000);
 analogWrite(BLUEPIN, 0);
 analogWrite(GREENPIN, 0);
 analogWrite(GREENPIN, 0);
}