Aller au contenu


Newbies

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

Messages que j'ai postés

Dans le sujet : Capteur HC-SR04 et raspberry

27 février 2017 - 09:04

Bon, j'ai essayé un autre capteur et j'ai refait le code en c++ par la même occasion et ca marche ! (le problème devais donc être hardware) ;)

 

Par contre j'ai remarqué que de temps en temps, le capteur sors une donnée totalement fausse ce qui peut être (très) gênant pour un drone qui repose sur ces données. Une idée d'algo pour lisser tout ca ? (pour l'instant f'ai fais le basique "prend 5 mesure, enlève le min et le max et fais la moyenne du reste" mais ca n'a pas l'air de suffire :/)


Dans le sujet : Capteur HC-SR04 et raspberry

27 février 2017 - 03:17

Salut Olivier17,

 

J'ai essayé avec le code que tu a posté, le resultat est le même, les valeurs sont aléatoires :/

Et oui le capteur est bien face à un mur rigide ;)


Dans le sujet : Capteur HC-SR04 et raspberry

27 février 2017 - 02:01

Salut les gars,

 

J'ai finalement décidé d'acheter des nouveaux capteurs pour voir si le problème venait pas de la et il y a effectivement eu du changement. En effet, j'ai branché un des nouveau capteurs avec la même configuration que l'ancien et cette fois des mesures arrivent à l'écran.

 

Le seul problème c'est que ces mesures n'ont aucun sens et apparaissent comme totalement aléatoire. J'ai donc regardé un peut plus en détail en affichant les variables dans le code et il semble que le problème viennent directement de la source, c'est à dire la durée de la pulsation qui est pas bonne, je ne comprend vraiment pas ce qu'il ce passe :/

 

Pourtant, encore une fois tout est bien branché et j'ai tout triple check :/

 

Des idées ?

 

mon code :

File Edit Options Buffers Tools Python Help                                              
import RPi.GPIO as GPIO                    #Import GPIO library                          
import time                                #Import time library                          
GPIO.setmode(GPIO.BCM)                     #Set GPIO pin numbering                       
                                                                                         
TRIG = 23                                  #Associate pin 23 to TRIG                     
ECHO = 24                                  #Associate pin 24 to ECHO                     
                                                                                         
print "Distance measurement in progress"                                                 
                                                                                         
GPIO.setup(TRIG,GPIO.OUT)                  #Set pin as GPIO out                          
GPIO.setup(ECHO,GPIO.IN)                   #Set pin as GPIO in                           
                                                                                         
while True:                                                                              
                                                                                         
    GPIO.output(TRIG, False)                 #Set TRIG as LOW                            
    print "Waitng For Sensor To Settle"                                                  
    time.sleep(2)                            #Delay of 2 seconds                         
                                                                                         
    GPIO.output(TRIG, True)                  #Set TRIG as HIGH                           
    time.sleep(0.00001)                      #Delay of 0.00001 seconds                   
    GPIO.output(TRIG, False)                 #Set TRIG as LOW                            
                                                                                         
    while GPIO.input(ECHO)==0:               #Check whether the ECHO is LOW              
        pulse_start = time.time()              #Saves the last known time of LOW pulse   
                                                                                         
    while GPIO.input(ECHO)==1:               #Check whether the ECHO is HIGH             
        pulse_end = time.time()                #Saves the last known time of HIGH pulse  
                                                                                         
    pulse_duration = pulse_end - pulse_start #Get pulse duration to a variable           
    print "pulse duration: ", pulse_duration                                             
                                                                                         
    distance = pulse_duration * 17150        #Multiply pulse duration by 17150 to get di\
stance                                                                                   
    distance = round(distance, 2)            #Round to two decimal points                
                                                                                         
    if distance > 2 and distance < 400:      #Check whether the distance is within range
        print "Distance:",distance - 0.5,"cm"  #Print distance with 0.5 cm calibration   
    else:                                                                                
        print "Out Of Range"                   #display out of range  

L'output de ce dernier avec le capteur immobile à 30 cm d'un mur:

pi@raspberrypi:~ $ python sensor.py 
Distance measurement in progress
Waitng For Sensor To Settle
pulse duration:  0.0130839347839
Distance: 223.89 cm
Waitng For Sensor To Settle
pulse duration:  0.0101339817047
Distance: 173.3 cm
Waitng For Sensor To Settle
pulse duration:  0.0245370864868
Out Of Range
Waitng For Sensor To Settle
pulse duration:  0.00531911849976
Distance: 90.72 cm
Waitng For Sensor To Settle
pulse duration:  0.0117380619049
Distance: 200.81 cm
Waitng For Sensor To Settle
pulse duration:  0.00693798065186
Distance: 118.49 cm
Waitng For Sensor To Settle
pulse duration:  0.0242590904236
Out Of Range
Waitng For Sensor To Settle
pulse duration:  0.0104739665985
Distance: 179.13 cm
Waitng For Sensor To Settle
pulse duration:  0.0102732181549
Distance: 175.69 cm


Dans le sujet : Un Noël Robotique.

10 février 2017 - 10:30

Bonsoir Newbies,
Si vous voulez Le Bras et pouvez venir le chercher, il est à vous.
Philippe.

Je t'ai envoyé un message privé :)


Dans le sujet : Capteur HC-SR04 et raspberry

10 février 2017 - 09:42

Je viens de jeter un oeil au schéma du circuit du HC-SR04, les pins TRIG et ECHO sont effectivement connectées au VCC via une résistance. Les tensions que je mesurait sur ces pins semblent donc normale.

Sinon, je viens de refaire quelques tests et les GPIOS de ma raspberry fonctionnent parfaitement, je ne comprend vraiment pas ce qui merde :/

 

Le schéma en question :

https://www.google.f...T7s9APwqwUBO0M: