Kazalo:
- Zaloge
- 1. korak: Napajanje vezja in Pi
- 2. korak: MPU6050
- 3. korak: Adafruit Ultimate Breakout GPS
- 4. korak: LCD zaslon 16x2
- 5. korak: Servo, LED, gumb in stikalo
- Korak 6: Celotno vezje
- 7. korak: Koda
- 8. korak: Baza podatkov
- 9. korak: Primer
Video: Sledenje in sledenje majhnim trgovinam: 9 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
To je sistem, ki je namenjen majhnim trgovinam, ki naj bi se montirale na e-kolesa ali e-skuterje za dostavo na kratke razdalje, na primer pekarna, ki želi dostaviti pecivo.
Kaj pomeni sledenje in sledenje?
Sledenje je sistem, ki ga uporabljajo prevozniki ali kurirska podjetja za beleženje gibanja paketov ali predmetov med prevozom. Na vsakem mestu obdelave je blago identificirano in podatki poslani v centralni sistem obdelave. Ti podatki se nato uporabijo za pošiljanje statusa/posodobitve lokacije blaga pošiljateljem.
Sistem, ki ga bomo izdelali, bo prikazal tudi prehojeno pot in količino prejetih udarcev in udarcev. Ta navodila zahtevajo tudi osnovno znanje o malini pi, python in mysql.
opomba: to je bilo narejeno za šolski projekt, zato je zaradi časovne stiske veliko prostora za izboljšave
Zaloge
-Maslina Pi 4 model B
-Maslina PI T-čevljar
-4x 3, 7V Li-ion baterije
-2x dvojno držalo za baterijo
-DC Buck koračni pretvornik 5v
-2x velike oranžne LED diode
-stikalo za vklop/izklop/vklop
-gumb
-adafruit ultimate gps v3
-mpu6050
-16x2 LCD zaslon
-servo motor
1. korak: Napajanje vezja in Pi
Ko gre za napajanje vezja pi z baterijo, imate na voljo nekaj možnosti, kako to storiti.
Lahko uporabite powerbank in napajate pi preko USB-ja, morda napravo montirate na e-kolo ali e-skuter, ki ima vrata USB, morda imate 5V baterijo telefona, ki čaka na uporabo ali pa uporabite 2 kompleti 3,7 V baterij so vzporedno s pretvornikom za zniževanje, kot je prikazano na slikah
Vse je v redu, če lahko zagotavlja neprekinjenih 5 V in ima življenjsko dobo, s katero ste zadovoljni.
2. korak: MPU6050
Uvod Senzorski modul MPU6050 je integrirana 6-osna naprava za sledenje gibanju.
- Ima 3-osni žiroskop, 3-osni merilnik pospeška, digitalni procesor gibanja in temperaturni senzor, vse v enem IC.
- Različne parametre je mogoče najti z branjem vrednosti iz naslovov določenih registrov s komunikacijo I2C. Branje žiroskopa in merilnika pospeška vzdolž osi X, Y in Z sta na voljo v obliki komplementa 2.
- Odčitki žiroskopa so v enotah v stopinjah na sekundo (dps); Odčitki merilnika pospeška so v g enoti.
Omogočanje I2C
Če uporabljate MPU6050 z Raspberry Pi, moramo zagotoviti, da je vklopljen protokol I2C na Raspberry Pi. Če želite to narediti, odprite terminal pi skozi kit ali drugo programsko opremo in naredite naslednje:
- vnesite "sudo raspi-config"
- Izberite Konfiguracije vmesnika
- V možnosti Interfacing izberite "I2C"
- Omogoči konfiguracijo I2C
- Izberite Da, ko zahteva ponovni zagon.
Zdaj lahko z namestitvijo orodij i2c preizkusimo/skeniramo katero koli napravo I2C, priključeno na našo ploščo Raspberry Pi. Orodja i2c lahko dobimo z uporabo apt managerja. V terminalu Raspberry Pi uporabite naslednji ukaz.
"sudo apt-get install -y i2c-tools"
Zdaj priključite katero koli napravo, ki temelji na I2C, na vrata uporabniškega načina in skenirajte ta vrata z naslednjim ukazom, "sudo i2cdetect -y 1"
Nato se bo odzval z naslovom naprave.
Če naslov ni vrnjen, se prepričajte, da je MPU6050 pravilno priključen, in poskusite znova
Naj deluje
zdaj, ko smo prepričani, da je i2c omogočen in pi lahko doseže MPU6050, bomo namestili knjižnico z ukazom "sudo pip3 install adafruit-circuitpython-mpu6050".
če naredimo preskusno datoteko python in uporabimo naslednjo kodo, lahko vidimo, ali deluje:
čas uvoza
uvozna plošča
uvozno podjetje
oimport adafruit_mpu6050
i2c = busio. I2C (board. SCL, board. SDA)
mpu = adafruit_mpu6050. MPU6050 (i2c)
medtem ko je res:
print ("Pospešek: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu. pospešek))
tiskanje ("Žiroskop X: %. 2f, Y: %.2f, Z: %.2f stopinj/s" %(mpu.giro))
tiskanje ("Temperatura: %.2f C" % mpu.temperatura)
print ("")
time.sleep (1)
ko želimo pospešek na osi X/Y/Z, lahko uporabimo naslednje:
accelX = mpu.acceleration [0] accelelY = mpu.acceleration [1] accelelZ = mpu.acceleration [2]
če to združimo s preprosto izjavo if v konstantni zanki, lahko preštejemo količino šokov na potovanju
3. korak: Adafruit Ultimate Breakout GPS
Uvod
Preboj je zgrajen okoli nabora čipov MTK3339, brezhibnega, visokokakovostnega modula GPS, ki lahko spremlja do 22 satelitov na 66 kanalih, ima odličen visoko občutljiv sprejemnik (-165 dB sledenje!) In vgrajeno anteno. Lahko naredi do 10 posodobitev lokacije na sekundo za visoko hitrost, visoko občutljivost beleženja ali sledenja. Poraba energije je neverjetno nizka, med navigacijo le 20 mA.
Plošča ima: izredno nizek regulator napetosti 3,3 V, tako da ga lahko napajate z vhodi 3,3-5 V DC, 5 V na ravni varnih vhodov, LED utripa pri približno 1 Hz, medtem ko išče satelite, in utripa vsakih 15 sekund, ko je popravljen je bilo ugotovljeno, da varčuje z energijo.
Testiranje GPS -ja z arduinom
Če imate dostop do arduina, je dobro, da modul preizkusite z njim.
Priključite VIN na +5V Priključite GND na GroundConnect GPS RX (podatki v GPS) na Digital 0 Povežite GPS TX (podatki iz GPS) na Digital 1
Preprosto zaženite prazno kodo arduino in odprite serijski monitor na 9600 baud. Če dobite podatke GPS, vaš modul gps deluje. Opomba: če vaš modul ne dobi popravka, ga postavite skozi okno ali zunaj na terasi.
Naj deluje
Začnite nameščanje knjižnice adafruit gps z ukazom "sudo pip3 install adafruit-circuitpython-gps".
Sedaj lahko uporabimo naslednjo kodo python, da vidimo, ali nam lahko uspe:
import timeimport board import busioimport adafruit_gpsimport serijski uart = serial. Serial ("/dev/ttyS0", baudrate = 9600, timeout = 10)
gps = adafruit_gps. GPS (uart, debug = False) gps.send_command (b'PMTK314, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ') gps.send_command (b'PMTK220, 1000')
medtem ko je res:
gps.update (), medtem ko ni gps.has_fix:
print (gps.nmea_sentence) print ('Čakanje na popravek …') gps.update () time.sleep (1) nadaljevanje
print ('=' * 40) # Natisnite ločilno vrstico.print ('Zemljepisna širina: {0:.6f} stopinj'. format (gps.latitude)) print ('Dolžina: {0:.6f} stopinj'.format (gps.longitude)) print ("Kakovost popravka: {}". format (gps.fix_quality))
# Nekateri atributi, ki presegajo zemljepisno širino, dolžino in časovni žig, so neobvezni# in morda niso prisotni. Preden poskusite uporabiti, preverite, ali so nič! Če gps.satellites ni nič:
print ("# sateliti: {}". format (gps.satellites))
če gps.altitude_m ni nič:
print ("Nadmorska višina: {} metrov".format (gps.altitude_m))
če gps.speed_knots ni None:
print ("Hitrost: {} vozlov".format (gps.speed_knots))
če gps.track_angle_deg ni nič:
print ("Kot proge: {} stopinj".format (gps.track_angle_deg))
če gps.horizontal_dilution ni nič:
print ("Horizontalna razredčitev: {}". format (gps.horizontal_dilution))
če gps.height_geoid ni nič:
print ("ID višine zemljevida: {} metrov".format (gps.height_geoid))
time.sleep (1)
4. korak: LCD zaslon 16x2
Uvod
Moduli LCD se zelo pogosto uporabljajo v večini vgrajenih projektov, razlog pa je njihova poceni cena, razpoložljivost in prijaznost programerjem. Večina od nas bi v vsakdanjem življenju naletela na te zaslone, bodisi pri PCO ali kalkulatorjih. 16 × 2 LCD je tako imenovan, ker; ima 16 stolpcev in 2 vrstici. Na voljo je veliko kombinacij, na primer 8 × 1, 8 × 2, 10 × 2, 16 × 1 itd., Vendar je najbolj uporabljena 16 × 2 LCD. Torej bo skupaj (16 × 2 = 32) 32 znakov in vsak znak bo sestavljen iz 5 × 8 pikslov.
Namestitev smbusa
Sistemsko vodilo (SMBus) je bolj ali manj izpeljanka vodila I2C. Standard je razvil Intel in ga zdaj vzdržuje forum SBS. Glavna aplikacija SMBus je spremljanje kritičnih parametrov na matičnih ploščah osebnih računalnikov in v vgrajenih sistemih. Na voljo je na primer veliko monitorjev napajalne napetosti, merilnika temperature in nadzornih/nadzornih IC ventilatorjev z vmesnikom SMBus.
Knjižnica, ki jo bomo uporabljali, zahteva tudi namestitev smbusa. Če želite namestiti smbus na rpi, uporabite ukaz "sudo apt install python3-smbus".
Naj deluje
najprej namestite knjižnico RPLCD z ukazom "sudo pip3 install RPLCD".
zdaj testiramo lcd s prikazom ip z naslednjo kodo:
iz RPLCD.i2c uvozite vtičnico CharLCDimport
def get_ip_address ():
ip_address = '' s = socket.socket (socket. AF_INET, socket. SOCK_DGRAM) s.connect (("8.8.8.8", 80)) ip_address = s.getsockname () [0] s.close () return ip_address
lcd = CharLCD ('PCF8574', 0x27)
lcd.write_string ('IP naslov: / r / n'+str (get_ip_address ()))
5. korak: Servo, LED, gumb in stikalo
Uvod
Servo motor je rotacijski pogon ali motor, ki omogoča natančen nadzor glede na kotni položaj, pospešek in hitrost, zmogljivosti, ki jih običajni motor nima. Uporablja navaden motor in ga poveže s senzorjem za povratne informacije o položaju. Krmilnik je najbolj izpopolnjen del servo motorja, saj je posebej zasnovan za ta namen.
LED kratka za svetlečo diodo. Elektronska polprevodniška naprava, ki oddaja svetlobo, ko skozi njo prehaja električni tok. So bistveno učinkovitejše od žarnic z žarilno nitko in le redko izgorijo. LED se uporabljajo v številnih aplikacijah, kot so video zasloni z ravnim zaslonom in vse pogosteje kot splošni viri svetlobe.
Gumb ali preprosto gumb je preprost preklopni mehanizem za nadzor nekaterih vidikov stroja ali procesa. Gumbi so običajno izdelani iz trdega materiala, običajno iz plastike ali kovine.
Stikalo za vklop/izklop/vklop ima 3 položaje, kjer je srednji izklop, te vrste se večinoma uporabljajo za preprosto krmiljenje motorja, kjer imate stanje naprej, izklop in vzvratno.
Naj deluje: servo
Servo uporablja signal PWM, da ugotovi, pod kakšnim kotom mora biti na srečo. GPIO ima to funkcijo vgrajeno. Zato lahko preprosto uporabimo naslednjo kodo za nadzor servo: uvoz RPi. GPIO kot čas GPIOimporta.
servo_pin = 18duty_cycle = 7,5
Način GPIO.set (GPIO. BCM)
GPIO.setup (servo_pin, GPIO. OUT)
pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (delovni_cikel)
medtem ko je res:
duty_cycle = float (input ("Vnesite delovni cikel (levo = 5 proti desni = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)
Omogočanje delovanja: LED in stikalo
Zaradi načina, kako smo ožičili LED in stikalo, nam ni treba nadzorovati ali brati LED in se sam preklopiti. Enostavno pošljemo impulze gumbu, ki bo signal usmeril na želeno LED.
Omogočanje delovanja: gumb
Za gumb bomo naredili svoj preprost razred na ta način, da bomo zlahka videli, ko pritisnemo, ne da bi mu morali vsakič, ko ga uporabimo, dodati zaznavanje dogodkov. Datoteko classbutton.py bomo naredili z naslednjo kodo:
iz RPi uvoz GPIOclass Gumb:
def _init _ (self, pin, bouncetime = 200): self.pin = pin self.bouncetime = bouncetime GPIO.setmode (GPIO. BCM) GPIO.setup (pin, GPIO. IN, GPIO. PUD_UP) @property defressed (self):
ingedrukt = GPIO.input (self.pin) vrnitev ni ingedrukt
def on_press (self, call_method):
GPIO.add_event_detect (self.pin, GPIO. FALLING, call_method, bouncetime = self.bouncetime)
def on_release (self, call_method):
GPIO.add_event_detect (self.pin, GPIO. RISING, call_method, bouncetime = self.bouncetime)
Korak 6: Celotno vezje
Zdaj, ko smo preučili vse komponente, je čas, da jih združimo.
Medtem ko slike prikazujejo, da komponente prikazujejo vse na sami plošči, je bolje, da LCD, adafruit GPS in gumb povežete z ženskimi in moškimi žicami. Samo t-cobbler in mpu6050 naj bosta na plošči. Ko gre za LED in stikalo. uporabite daljše žice, da zagotovite, da boste dosegli utripajoče palice in krmilno palico.
7. korak: Koda
Da bi ta navodila ostala čista, sem zagotovil skladišče github tako z zalednimi kot s prednjimi datotekami. Preprosto jih shranite v mapo v prednjem delu v mapi/var/www/html in datoteke v zaledni mapi v mapi v/home/ mapa [uporabniško ime]/[ime mape]
8. korak: Baza podatkov
Zaradi načina nastavitve tega sistema obstaja preprosta spletna trgovina, nastavljena s seznamom izdelkov v zbirki podatkov, poleg tega imamo tukaj shranjene vse točke in naročila. Ustvarjalni skript najdete v skladišču github, povezanem v naslednji korak
9. korak: Primer
Ko vemo, da elektronika deluje, jih lahko zložimo v škatlo. S tem si lahko vzamete nekaj ustvarjalne svobode. Preden jo sestavite, preprosto vzemite kartonsko škatlo, ki je ne potrebujete več, na primer prazno škatlo za žita, in jo razrežite, nalepite na trak. in ga zložite, dokler ne boste imeli nekaj, kar vam je všeč. Izmerite in narišite kovček na kos papirja in ga naredite iz trdnejšega materiala, kot je les, ali če to ni vaša stvar, ga natisnite 3D. Samo poskrbite, da bo vsa elektronika v notranjosti in imate luknje za gumb, žico do stikala, LED in lcd. Ko ste vzeli kovček, morate samo najti način, kako ga namestiti na kolo ali skuter
Priporočena:
Kako sestaviti PHIL - robota za sledenje svetlobi: 6 korakov (s slikami)
Kako sestaviti PHIL - robota za sledenje svetlobi: V tem navodilu vam bom pokazal, kako sem naredil tega dvoosnega svetlobnega robota za sledenje z uporabo Arduino Uno. Vključeni bodo vsi CAD in koda, tako da jih lahko sestavite sami, ne da bi za to potrebovali veščine programiranja ali oblikovanja. Vse kar boste potrebovali
Prenosni solarni sistem za samodejno sledenje: 9 korakov (s slikami)
Prenosni solarni sistem za samodejno sledenje: Medomyself je udeleženec programa Associates LLC Associates, programa oglaševalskega partnerja, namenjenega spletnim mestom, da z oglaševanjem in povezovanjem na amazon.comby pridobijo oglaševalske pristojbine: Dave Weaver Ta zgradba je narejena z
Ustvarite svoj sistem za varnostno sledenje GPS SMS: 5 korakov (s slikami)
Naredite svoj lasten sistem za varnostno sledenje GPS SMS: V tem projektu vam bom pokazal, kako združiti 3G modul SIM5320 z Arduinom in piezoelektričnim pretvornikom kot senzorjem udarcev, da ustvarite varnostni sistem za sledenje, ki vam bo poslal lokacijo vašega dragoceno vozilo prek SMS -a, ko
Robot za sledenje liniji s PICO: 5 korakov (s slikami)
Robot za sledenje liniji s PICO: Preden boste sposobni ustvariti robota, ki bo lahko končal civilizacijo, kakršno poznamo, in bo sposoben končati človeško raso. Najprej morate biti sposobni ustvariti preproste robote, tiste, ki lahko sledijo liniji, potegnjeni na tleh, in tukaj boste lahko
Popravilo kondenzatorja - kondenzator z majhnim spremenljivim zrakom v oddajniku: 11 korakov
Popravilo kondenzatorja - majhnega zračnega spremenljivega kondenzatorja v oddajniku: Kako popraviti majhen keramični in kovinski zračni spremenljivi kondenzator, kot so tisti v stari radijski opremi. To velja, ko se je gred sprostila s stisnjene šestkotne matice ali "gumba". V tem primeru matica, ki je nastavljiva z izvijačem