Lägg till 6 ultraljud avstånd sensorer till befintliga Raspberry Pi Robot (4 / 4 steg)
Steg 4: Äntligen fungerar alla 6 sensorer
Detta är Python koden jag använder för att köra alla 6 USS
Som du ser kan du också använda Memcached att extrahera värden från det här skriptet.
Denna väska fungerar på stiften som nämns i det exempel dokument som avses i föregående steg, pin-koder måste redigeras specifikt.
#! / usr/bin/env python
#
# HC-SR04 gränssnitt kod för Pi-hallon
#
# William Henning @ http://Mikronauts.com
#
# använder joan's utmärkta pigpio bibliotek
#
# Inte riktigt fungerar i en stifts-läge, kommer att uppdateras i framtiden
#
Importera tid
importera pigpio
#import memcache
#mc = memcache. Klienten (['127.0.0.1:11211'], felsöka = 0)
def _echo1 (gpio, nivå, kryssa):
globala _high
_high = tick
def _echo0 (gpio, nivå, kryssa):
Global _done, _high, _time
_time = tick - _high
_done = sant
def readDistance2 (_trig, _echo):
globala pi, _done, _time
_done = false
PI.set_mode (_trig, pigpio. OUTPUT)
PI.gpio_trigger(_trig,50,1)
PI.set_mode (_echo, pigpio. INGÅNG)
Time.Sleep(0.0001)
Tim = 0
samtidigt inte _done:
Time.Sleep(0.001)
Tim = tim + 1
om tim > 50:
returnera 2900
återgå _time
PI = pigpio.pi('localhost',1234)
om __name__ == "__main__":
my_echo1 = pi.callback (10, pigpio. RISING_EDGE, _echo1)
my_echo0 = pi.callback (10, pigpio. FALLING_EDGE, _echo0)
my_echo1 = pi.callback (25, pigpio. RISING_EDGE, _echo1)
my_echo0 = pi.callback (25, pigpio. FALLING_EDGE, _echo0)
my_echo1 = pi.callback (8, pigpio. RISING_EDGE, _echo1)
my_echo0 = pi.callback (8, pigpio. FALLING_EDGE, _echo0)
my_echo1 = pi.callback (5, pigpio. RISING_EDGE, _echo1)
my_echo0 = pi.callback (5, pigpio. FALLING_EDGE, _echo0)
my_echo1 = pi.callback (12, pigpio. RISING_EDGE, _echo1)
my_echo0 = pi.callback (12, pigpio. FALLING_EDGE, _echo0)
my_echo1 = pi.callback (16, pigpio. RISING_EDGE, _echo1)
my_echo0 = pi.callback (16, pigpio. FALLING_EDGE, _echo0)
medan 1:
skriva ut "avstånd 1:", (readDistance2(24,10)/58)
skriva ut "avståndet 2:", (readDistance2(9,25)/58)
skriva ut "avstånd 3:", (readDistance2(11,8)/58)
skriva ut "avstånd 4:", (readDistance2(7,5)/58)
skriva ut "avståndet 5:", (readDistance2(6,12)/58)
skriva ut "avståndet 6:", (readDistance2(19,16)/58)
#mc.set("d1",(readDistance2(24,10)/58))
#mc.set("d2",(readDistance2(9,25)/58))
#mc.set("d3",(readDistance2(11,8)/58))
#mc.set("d4",(readDistance2(7,5)/58))
#mc.set("d5",(readDistance2(6,12)/58))
#mc.set("d6",(readDistance2(19,16)/58))
Time.Sleep(0.05)
# my_echo1.cancel()
# my_echo0.cancel()