Përmbajtje:
- Furnizimet
- Hapi 1: Fuqizimi i qarkut dhe Pi
- Hapi 2: MPU6050
- Hapi 3: GPS i Adafruit Ultimate Breakout
- Hapi 4: LCD 16x2
- Hapi 5: Servo, Leds, Button dhe Switch
- Hapi 6: Qarku i plotë
- Hapi 7: Kodi
- Hapi 8: Baza e të dhënave
- Hapi 9: Rasti
Video: Gjurmimi dhe gjurmimi për dyqanet e vogla: 9 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:14
Ky është një sistem i krijuar për dyqane të vogla që supozohet të hipin në biçikleta elektronike ose e-skutera për dërgesa me rreze të shkurtër, për shembull një furrë buke që dëshiron të ofrojë pasta.
Çfarë do të thotë Gjurmë dhe Gjurmë?
Gjurmimi dhe gjurmimi është një sistem i përdorur nga transportuesit ose kompanitë korrier për të regjistruar lëvizjen e parcelave ose sendeve gjatë transportit. Në çdo vend përpunimi, mallrat identifikohen dhe të dhënat transmetohen në sistemin qendror të përpunimit. Këto të dhëna përdoren më pas për të dhënë statusin/përditësimin e vendndodhjes së mallrave për transportuesit.
Sistemi që do të bëjmë do të tregojë gjithashtu rrugën e marrë dhe sasinë e goditjeve dhe goditjeve të marra. Ky udhëzues supozon gjithashtu që ju keni një njohuri themelore për një pi mjedër, python dhe mysql.
shënim: kjo është bërë për një projekt shkollor, kështu që për shkak të kufizimit kohor ka shumë hapësirë për përmirësim
Furnizimet
-Mjedër Pi 4 modeli B
-Kalliçeri i mjedrës PI T
-Bateri Li-jon 4x 3, 7V
-2x mbajtës i dyfishtë i baterisë
-DC Buck Step-down Converter 5v
-2x portokalli të mëdhenj
-ne çelës/fikur/aktivizuar
-buton
-adafruit ultimate gps v3
-mpu6050
-Ekran LCD 16x2
-motor servo
Hapi 1: Fuqizimi i qarkut dhe Pi
Kur vjen puna për të fuqizuar qarkun pi me një bateri, ju keni disa opsione se si ta bëni atë.
Ju mund të përdorni një bankë energjie dhe të fuqizoni pi përmes USB, ndoshta jeni duke e montuar pajisjen në një biçikletë elektronike ose e-skuter që ka një port USB, ndoshta keni një bateri telefoni 5V të shtrirë përreth duke pritur për t'u përdorur ose mund të përdorni 2 grupe të baterisë 3.7V janë paralelisht me një konvertor hap poshtë siç tregohet në fotografi
Çdo gjë është mirë për sa kohë që mund të sigurojë një 5V të vazhdueshëm dhe ka një jetë me të cilën jeni të kënaqur.
Hapi 2: MPU6050
Hyrje Moduli i sensorit MPU6050 është një pajisje e integruar për përcjelljen e lëvizjes me 6 boshte.
- Ka një Xhiroskop me 3 boshte, Përshpejtues me 3 boshte, Procesor dixhital të lëvizjes dhe një sensor Temperature, të gjitha në një IC të vetme.
- Parametra të ndryshëm mund të gjenden duke lexuar vlerat nga adresat e regjistrave të caktuar duke përdorur komunikimin I2C. Leximi i xhiroskopit dhe akselerometrit përgjatë akseve X, Y dhe Z janë të disponueshme në formën e komplementit të 2 -të.
- Leximet e xhiroskopit janë në gradë për njësi të sekondës (dps); Leximet e përshpejtuesit janë në njësi g.
Aktivizimi i I2C
Kur përdorni një MPU6050 me një Raspberry Pi, ne duhet të sigurohemi që protokolli I2C në Raspberry Pi të jetë i ndezur. Për ta bërë këtë, hapni terminalin e pi përmes stuko ose softuare të tjerë dhe bëni sa më poshtë:
- shkruani "sudo raspi-config"
- Zgjidhni Konfigurimet e Ndërfaqes
- Në opsionin Ndërfaqja, zgjidhni "I2C"
- Aktivizo konfigurimin e I2C
- Zgjidhni Po kur kërkon të rindizet.
Tani, ne mund të testojmë/skanojmë për çdo pajisje I2C të lidhur me tabelën tonë Raspberry Pi duke instaluar mjete i2c. Ne mund të marrim mjete i2c duke përdorur menaxherin e paketave të përshtatshme. Përdorni komandën e mëposhtme në terminalin Raspberry Pi.
"sudo apt-get install -y i2c-tools"
Tani lidhni çdo pajisje të bazuar në I2C në portën e modalitetit të përdoruesit dhe skanoni atë port duke përdorur komandën e mëposhtme, "sudo i2cdetect -y 1"
Pastaj do të përgjigjet me adresën e pajisjes.
Nëse asnjë adresë nuk kthehet, sigurohuni që MPU6050 të jetë lidhur siç duhet dhe provoni përsëri
Duke e bërë atë të funksionojë
tani që jemi të sigurt se i2c është aktivizuar dhe pi mund të arrijë në MPU6050 ne do të instalojmë një bibliotekë duke përdorur komandën "sudo pip3 install adafruit-circuitpython-mpu6050".
nëse bëjmë një skedar testi python dhe përdorim kodin e mëposhtëm, mund të shohim nëse funksionon:
koha e importit
bordi i importit
import busi
oimport adafruit_mpu6050
i2c = busio. I2C (bordi. SCL, bordi. SDA)
mpu = adafruit_mpu6050. MPU6050 (i2c)
ndërsa e vërtetë:
print ("Përshpejtimi: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu. përshpejtim))
print ("Gyro X: %. 2f, Y: %.2f, Z: %.2f gradë/s" %(mpu.gyro))
print ("Temperatura: %.2f C" % mpu.temperatura)
print ("")
koha. gjumi (1)
kur duam përshpejtimin në boshtin X/Y/Z mund të përdorim sa vijon:
accelX = mpu.shpejtimi [0] accelY = mpu.shpejtimi [1] accelZ = mpu.shpejtimi [2]
duke e kombinuar këtë me një deklaratë të thjeshtë nëse në një lak konstant ne mund të llogarisim sasinë e goditjeve në një udhëtim
Hapi 3: GPS i Adafruit Ultimate Breakout
Prezantimi
Zbërthimi është ndërtuar rreth chipsetit MTK3339, një modul jo-pakuptimtë, me cilësi të lartë GPS që mund të gjurmojë deri në 22 satelitë në 66 kanale, ka një marrës të shkëlqyer me ndjeshmëri të lartë (-165 dB ndjekje!), Dhe një antenë të integruar Me Mund të bëjë deri në 10 azhurnime të vendndodhjes në sekondë për regjistrim me shpejtësi të lartë, ndjeshmëri të lartë ose ndjekje. Përdorimi i energjisë është tepër i ulët, vetëm 20 mA gjatë lundrimit.
Pllaka vjen me: një rregullator ultra të ulët të braktisjes 3.3V, në mënyrë që ta fuqizoni atë me hyrje të sigurta të nivelit 5V me 3.3-5VDC, LED ndizet në rreth 1Hz ndërsa është në kërkim të satelitëve dhe pulson një herë në 15 sekonda kur është rregulluar gjetur se ruan fuqinë.
Testimi i GPS me arduino
Nëse keni qasje në një arduino, është një ide e mirë të provoni modulin me të.
Lidhni VIN me +5V Lidhni GND me Tokën Lidhni GPS RX (të dhëna në GPS) me Digital 0 Lidhni GPS TX (të dhëna nga GPS) në Digital 1
Thjesht drejtoni një kod arduino të zbrazët dhe hapni monitorin serik në 9600 baud. Nëse merrni të dhëna GPS, moduli juaj GPS funksionon. Shënim: nëse moduli juaj nuk merr një rregullim, provoni ta vendosni atë nga një dritare ose jashtë në një tarracë
Duke e bërë atë të funksionojë
Fillimi i instalimit të bibliotekës adafruit gps duke përdorur komandën "sudo pip3 install adafruit-circuitpython-gps".
Tani mund të përdorim kodin e mëposhtëm python për të parë nëse mund ta bëjmë atë të funksionojë:
importi i kohës bordi i importit busioimport adafruit_gpsimport serial 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, 0, 0 ') gps.send_command (b'PMTK220, 1000')
ndërsa e vërtetë:
gps.update () ndërsa jo gps.has_fix:
print (gps.nmea_sentence) print ('Duke pritur për rregullimin …') gps.update () time.sleep (1) vazhdoni
print ('=' * 40) # Shtypni një linjë ndarëse.print ('Gjerësia gjeografike: {0:.6f} gradë'.format (gps.latitude)) print (' Gjatësia gjeografike: {0:.6f} gradë'.format (gps.longitude)) print ("Rregulloni cilësinë: {}". format (gps.fix_quality))
# Disa atribute përtej gjerësisë, gjatësisë dhe kohëzgjatjes janë opsionale# dhe mund të mos jenë të pranishme. Kontrolloni nëse ata janë Asnjë para se të përpiqeni të përdorni! Nëse gps.satellites nuk është Asnjë:
print ("# satelitët: {}". format (gps.satellites))
nëse gps.altitude_m nuk është Asnjë:
print ("Lartësia: {} metra".format (gps.altitude_m))
nëse gps.speed_knots nuk është Asnjë:
print ("Shpejtësia: {} nyje".format (gps.speed_knots))
nëse gps.track_angle_deg nuk është Asnjë:
print ("Këndi i gjurmimit: {} gradë".format (gps.track_angle_deg))
nëse gps.hilution_horizontal_dilution nuk është Asnjë:
print ("Hollimi horizontal: {}". format (gps.horizontal_dilution))
nëse gps.height_geoid nuk është Asnjë:
print ("Lartësia gjeo ID: {} metra".format (gps.height_geoid))
koha. gjumi (1)
Hapi 4: LCD 16x2
Prezantimi
Modulet LCD përdoren shumë shpesh në shumicën e projekteve të ngulitura, arsyeja është çmimi i tij i lirë, disponueshmëria dhe programuesi miqësor. Shumica prej nesh do të kishim hasur në këto shfaqje në jetën tonë të përditshme, qoftë në PCO ose në kalkulatorët. LCD 16 × 2 emërtohet kështu sepse; ka 16 Kolona dhe 2 Rreshta. Ka shumë kombinime në dispozicion si, 8 × 1, 8 × 2, 10 × 2, 16 × 1, etj., Por më i përdoruri është LCD 16 × 2. Pra, do të ketë (16 × 2 = 32) 32 karaktere në total dhe secili karakter do të jetë i përbërë nga 5 × 8 Pika Pixel.
Instalimi i smbus
Autobusi i Menaxhimit të Sistemit (SMBus) është pak a shumë një derivat i autobusit I2C. Standardi është zhvilluar nga Intel dhe tani mbahet nga Forumi SBS. Aplikimi kryesor i SMBus është të monitorojë parametrat kritikë në pllakat amë të PC dhe në sistemet e ngulitura. Për shembull, ka shumë monitorues të tensionit të furnizimit, monitor të temperaturës dhe monitorues/kontrollues të tifozëve me një ndërfaqe SMBus.
Biblioteka që do të përdorim kërkon që smbus të instalohet gjithashtu. Për të instaluar smbus në rpi përdorni komandën "sudo apt install python3-smbus".
Duke e bërë atë të funksionojë
së pari të instaloni bibliotekën RPLCD duke përdorur komandën "sudo pip3 install RPLCD".
tani ne testojmë LCD duke shfaqur ip duke përdorur kodin e mëposhtëm:
nga priza RPLCD.i2c import 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 () kthehu ip_address
lcd = CharLCD ('PCF8574', 0x27)
lcd.write_string ('Adresa IP: / r / n'+str (merrni_ip_adresa ()))
Hapi 5: Servo, Leds, Button dhe Switch
Prezantimi
Një servo motor është një aktivizues ose motor rrotullues që lejon një kontroll të saktë në lidhje me pozicionin këndor, nxitimin dhe shpejtësinë, aftësitë që një motor i rregullt nuk i ka. Ai përdor një motor të rregullt dhe e bashkon atë me një sensor për reagimet e pozicionit. Kontrolluesi është pjesa më e sofistikuar e servo motorit, pasi është krijuar posaçërisht për këtë qëllim.
LED i shkurtër për diodën që lëshon dritë. Një pajisje elektronike gjysmëpërçuese që lëshon dritë kur një rrymë elektrike kalon nëpër të. Ato janë dukshëm më efikase sesa llambat inkandeshente dhe rrallë digjen. LED-të përdoren në shumë aplikacione, të tilla si ekranet video me ekran të sheshtë, dhe gjithnjë e më shumë si burime të përgjithshme të dritës.
Një buton ose thjesht një buton është një mekanizëm i thjeshtë ndërprerës për të kontrolluar disa aspekte të një makine ose një procesi. Butonat zakonisht bëhen nga materiali i fortë, zakonisht plastikë ose metal.
Një çelës ndezës/fikur/ndezur ka 3 pozicione ku ai i mesmi është gjendja e fikur, këto lloje përdoren më së shumti për kontroll të thjeshtë motorik ku keni një gjendje përpara, fikur dhe anasjelltas.
Duke e bërë të funksionojë: servo
Servo përdor një sinjal PWM për të përcaktuar se në cilin kënd duhet të jetë për fatin tonë GPIO ka këtë veçori të integruar. Prandaj, ne thjesht mund të përdorim kodin e mëposhtëm për të kontrolluar servo: importoni RPi. GPIO si kohë GPIOimport
servo_pin = 18dikli_cycle = 7.5
GPIO.setmode (GPIO. BCM)
GPIO.setup (servo_pin, GPIO. OUT)
pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (cikli i detyrës)
ndërsa e vërtetë:
duty_cycle = float (input ("Shkruaj ciklin e punës (nga e majta = 5 në të djathtë = 10):")) pwm_servo. ChangeDutyCycle (cycle_ տուրë)
Duke e bërë atë të funksionojë: led dhe switch
Për shkak të mënyrës së lidhjes së led -ve dhe ndërprerësit nuk kemi nevojë të kontrollojmë ose lexojmë led -et dhe të kalojmë vetë. Ne thjesht i dërgojmë impulse magjistares së butonave, nga ana tjetër, do ta përcjellim sinjalin në led -in që duam.
Duke e bërë atë të funksionojë: butoni
Për butonin do të bëjmë klasën tonë të thjeshtë në këtë mënyrë që e shohim me lehtësi kur shtypet pa pasur nevojë të shtojmë një ngjarje të zbuluar në të sa herë që e përdorim. Ne do ta bëjmë skedarin classbutton.py duke përdorur kodin e mëposhtëm:
nga RPi Import GPIO Butoni i Klasës:
def _init _ (vetë, pin, bouncetime = 200): self.pin = pin self.bouncetime = bouncetime GPIO.setmode (GPIO. BCM) GPIO.setup (pin, GPIO. IN, GPIO. PUD_UP)@pronësia def shtypur (vetë):
ingedrukt = GPIO.input (self.pin) kthimi jo ingedrukt
def on_press (vetja, metoda e thirrjes):
GPIO.add_event_detect (self.pin, GPIO. FALLING, call_method, bouncetime = self.bouncetime)
def on_release (vetë, metoda e thirrjes):
GPIO.add_event_detect (self.pin, GPIO. RISING, call_method, bouncetime = self.bouncetime)
Hapi 6: Qarku i plotë
Tani që kemi kaluar mbi të gjithë përbërësit, është koha për t'i kombinuar të gjithë.
Ndërsa fotografitë tregojnë që komponentët tregojnë gjithçka në tabelën e bukës, është më mirë të keni LCD, adafruit GPS dhe butonin e lidhur duke përdorur telat femra me tela mashkullorë. Vetëm të keni t-cobbler dhe mpu6050 në një dërrasë buke. Kur bëhet fjalë për led dhe switch përdorni tela më të gjatë për t'u siguruar që mund të arrini shufrat e blinkerit dhe shiritin drejtues.
Hapi 7: Kodi
Për ta mbajtur të pastër këtë udhëzues, unë kam siguruar një depo github me skedarët backend dhe frontend. Thjesht vendosni skedarët në dosjen frontend në dosjen/var/www/html dhe skedarët në dosjen e pasme në një dosje në/home/ dosja [emri i përdoruesit]/[emri i dosjes]
Hapi 8: Baza e të dhënave
Për shkak të mënyrës së krijimit të këtij sistemi, ekziston një ueb -dyqan i thjeshtë i krijuar duke përdorur një listë të produkteve në një bazë të dhënash, për më tepër ne kemi të gjitha pikat dhe porositë e ruajtura këtu. Një skenar krijimi mund të gjendet në depon e github të lidhur në hapi tjeter
Hapi 9: Rasti
Pasi ta dimë punën elektronike, mund t'i fusim në një kuti. Ju mund të merrni pak liri krijuese me këtë. Para se ta ndërtoni, thjesht kapni një kuti kartoni që nuk ju nevojitet më si një kuti drithërash bosh për shembull dhe prerë, ngjiteni atë dhe paloseni derisa të keni diçka që ju pëlqen. Matni dhe vizatoni kutinë tuaj në një copë letër dhe bëjeni atë nga një material më i fortë si druri, ose nëse kjo nuk është gjëja juaj printoni atë në 3D. Vetëm sigurohuni që të gjitha pajisjet elektronike të përshtaten brenda dhe ju keni vrima për butonin, tela që shkon në ndërprerës, led dhe lcd. Pasi të keni bërë çështjen tuaj është vetëm një çështje për të gjetur një mënyrë për ta montuar atë në biçikletë ose skuter
Recommended:
Furnizim me energji të ndryshueshme të vogla dhe të thjeshta në shtëpi: 5 hapa
Furnizim me energji të ndryshueshme të vogla dhe të thjeshta në shtëpi: Furnizimet me energji elektrike janë të nevojshme kur doni të bëni një projekt elektronik, por ato mund të jenë vërtet të kushtueshme. Sidoqoftë, mund ta bëni një për veten tuaj mjaft lirë. Pra, le të fillojmë
Gjurmimi i rrugës GPS V2: 4 hapa (me fotografi)
Gjurmimi i Rrugës GPS V2: Projekti: Gjurmimi i Rrugës GPS V2 Data: Maj - Qershor 2020 PPRDITSIM Versioni i parë i këtij projekti, ndërsa funksiononte në parim, kishte një numër defektesh të cilat duheshin rregulluar. Së pari nuk më pëlqeu kutia, kështu që e zëvendësova me një tjetër. Së dyti th
Rrëshqitës i kamerës së motorizuar me sistem gjurmimi (i printuar në 3D): 7 hapa (me fotografi)
Rrëshqitës i kamerës së motorizuar me sistemin e gjurmimit (i printuar në 3D): Në thelb, ky robot do të lëvizë një aparat fotografik/smartphone në një hekurudhë dhe do të "gjurmojë" një objekt. Vendndodhja e objektit të synuar dihet tashmë nga roboti. Matematika pas këtij sistemi përcjellës është mjaft e thjeshtë. Ne kemi krijuar një simulim të procesit të gjurmimit
Dizajni i dhomës së errët në shtëpi për hapësira të vogla: 7 hapa (me fotografi)
Dizajni i dhomës së errët në shtëpi për hapësira të vogla: pamje 360 e dollapit tim të konvertuar - Imazh sferike - RICOH THETAHi, do të doja të filloja duke thënë se ky dizajn i dhomës së errët nuk do të jetë i zbatueshëm për të gjithë. Dollapi juaj mund të jetë më i madh, më i vogël, ose mund të përdorni hapësirën e banjës. Y
Si të bëni një "Duar ndihmuese" të lirë dhe të lehtë për pjesë të vogla .: 6 hapa
Si të bëni një "Duar ndihmëse" të lirë dhe të lehtë për Pjesët e Vogla .: Epo, këtë mëngjes (2.23.08) dhe dje (2.22.08), po përpiqesha të lidhja diçka, por nuk kisha një duart ndihmuese, kështu që e bëra këtë mëngjes. (2.23.08) Punon MADH për mua, zakonisht nuk ka probleme. SHUME e lehte per tu bere, ne thelb falas, te gjitha