Satura rādītājs:
- Piegādes
- 1. solis: ķēdes un Pi barošana
- 2. darbība: MPU6050
- 3. solis: Adafruit Ultimate Breakout GPS
- 4. solis: 16x2 LCD
- 5. solis: Servo, gaismas diodes, poga un slēdzis
- 6. solis: pilna ķēde
- 7. darbība: kods
- 8. darbība. Datu bāze
- 9. solis: lieta
Video: Izsekošana un izsekošana maziem veikaliem: 9 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
Šī ir sistēma, kas paredzēta maziem veikaliem, kurus paredzēts uzstādīt uz e-velosipēdiem vai motorolleriem, lai veiktu piegādi nelielā attālumā, piemēram, maiznīca, kas vēlas piegādāt konditorejas izstrādājumus.
Ko nozīmē Track and Trace?
Izsekošana un izsekošana ir sistēma, ko izmanto pārvadātāji vai kurjeru uzņēmumi, lai reģistrētu paku vai sūtījumu pārvietošanu pārvadāšanas laikā. Katrā apstrādes vietā preces tiek identificētas un dati tiek pārsūtīti uz centrālo apstrādes sistēmu. Pēc tam šie dati tiek izmantoti, lai nosūtītājiem sniegtu preču atrašanās vietas statusu/atjauninājumu.
Mūsu izveidotā sistēma parādīs arī izvēlēto maršrutu un saņemto triecienu un triecienu skaitu. Šajā pamācībā arī tiek pieņemts, ka jums ir pamatzināšanas par aveņu pi, python un mysql.
piezīme: tas tika veikts skolas projektam, tāpēc laika ierobežojumu dēļ ir daudz iespēju uzlabot
Piegādes
-Raspberry Pi 4 modelis B
-Aveņu PI T-kurpnieks
-4x 3, 7V litija jonu baterijas
-2x dubults akumulatora turētājs
-Dc Buck pazeminošais pārveidotājs 5v
-2x lielas oranžas gaismas diodes
-ieslēgšanas/izslēgšanas/ieslēgšanas slēdzis
-poga
-adafruit gala GPS v3
-mpu6050
-16x2 LCD displejs
-servomotors
1. solis: ķēdes un Pi barošana
Kad runa ir par ķēdes pi barošanu ar akumulatoru, jums ir dažas iespējas, kā to izdarīt.
Jūs varētu izmantot powerbank un barot pi, izmantojot USB, iespējams, jūs uzstādāt ierīci uz e-velosipēda vai e-skrejriteņa, kuram ir USB ports, iespējams, jums ir 5 V tālruņa akumulators, kas gaida izmantošanu vai jūs varētu izmantot 2. 3.7V akumulatoru komplekti paralēli pazemināšanas pārveidotājam, kā parādīts attēlos
Viss ir kārtībā, ja vien tas var nodrošināt nepārtrauktu 5 V spriegumu un ir apmierināts ar visu mūžu.
2. darbība: MPU6050
Ievads MPU6050 sensora modulis ir integrēta 6 asu kustības izsekošanas ierīce.
- Tam ir 3 asu žiroskops, 3 asu akselerometrs, digitālais kustības procesors un temperatūras sensors-viss vienā IC.
- Dažādus parametrus var atrast, nolasot vērtības no noteiktu reģistru adresēm, izmantojot I2C sakarus. Žiroskopa un akselerometra rādījumi pa X, Y un Z asīm ir pieejami 2 papildinājuma formā.
- Žiroskopa rādījumi ir grādos sekundē (dps); Akselerometra rādījumi ir g vienībās.
I2C iespējošana
Izmantojot MPU6050 ar Raspberry Pi, mums jāpārliecinās, ka Raspberry Pi ir ieslēgts I2C protokols. Lai to izdarītu, atveriet pi termināli caur špakteli vai citu programmatūru un rīkojieties šādi:
- ierakstiet "sudo raspi-config"
- Atlasiet saskarnes konfigurācijas
- Saskarnes opcijā atlasiet “I2C”
- Iespējot I2C konfigurāciju
- Izvēlieties Jā, kad tiek prasīts atsāknēt.
Tagad mēs varam pārbaudīt/skenēt jebkuru I2C ierīci, kas savienota ar mūsu Raspberry Pi plati, instalējot i2c rīkus. Mēs varam iegūt i2c rīkus, izmantojot apt pakotņu pārvaldnieku. Raspberry Pi terminālī izmantojiet šo komandu.
"sudo apt-get install -y i2c-tools"
Tagad pievienojiet jebkuru I2C balstītu ierīci lietotāja režīma portam un skenējiet šo portu, izmantojot šo komandu, "sudo i2cdetect -y 1"
Tad tas atbildēs ar ierīces adresi.
Ja adrese netiek atgriezta, pārliecinieties, vai MPU6050 ir pareizi pievienots, un mēģiniet vēlreiz
Lai tas darbotos
tagad, kad esam pārliecināti, ka i2c ir iespējots un pi var sasniegt MPU6050, mēs instalēsim bibliotēku, izmantojot komandu "sudo pip3 install adafruit-circuitpython-mpu6050".
ja mēs izveidojam python testa failu un izmantojam šādu kodu, mēs varam redzēt, vai tas darbojas:
importa laiks
importa dēlis
importa bizness
oimportēt adafruit_mpu6050
i2c = busio. I2C (board. SCL, board. SDA)
mpu = adafruit_mpu6050. MPU6050 (i2c)
kamēr taisnība:
drukāt ("Paātrinājums: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu.paātrinājums))
drukāt ("Žiroskops X: %. 2f, Y: %.2f, Z: %.2f grādi/s" %(mpu.gyro))
drukāt ("Temperatūra: %.2f C" % mpu.temperatūra)
drukāt ("")
laiks. miegs (1)
kad mēs tagad vēlamies paātrinājumu X/Y/Z asī, mēs varam izmantot sekojošo:
accelX = mpu.acceleration [0] accelY = mpu.acceleration [1] accelZ = mpu.acceleration [2]
apvienojot to ar vienkāršu, ja paziņojumu pastāvīgā cilpā, mēs varam saskaitīt triecienu skaitu ceļojumā
3. solis: Adafruit Ultimate Breakout GPS
Ievads
Izlaušanās pamatā ir MTK3339 mikroshēmojums, bezjēdzīgs, augstas kvalitātes GPS modulis, kas var izsekot līdz 22 satelītiem 66 kanālos, tam ir lielisks augstas jutības uztvērējs (-165 dB izsekošana!) Un iebūvēta antena. Ātrgaitas, augstas jutības reģistrēšanai vai izsekošanai tas var veikt līdz pat 10 atrašanās vietas atjauninājumiem sekundē. Enerģijas patēriņš ir neticami zems, tikai 20 mA navigācijas laikā.
Plātnei ir: īpaši zems 3.3V regulators, lai jūs varētu to darbināt ar 3.3-5VDC ieeju, 5V līmeņa drošas ieejas. konstatēts, ka tas ietaupa varu.
GPS pārbaude ar arduino
Ja jums ir piekļuve arduino, ieteicams pārbaudīt moduli ar to.
Savienojiet VIN ar +5 V Savienojiet GND ar Ground Savienojiet GPS RX (datus GPS) ar digitālo 0 Pievienojiet GPS TX (dati no GPS) ar Digital 1
Vienkārši palaidiet tukšu arduino kodu un atveriet seriālo monitoru ar 9600 baudām. Ja saņemat GPS datus, jūsu GPS modulis darbojas. Piezīme: ja jūsu modulis nesaņem labojumu, mēģiniet to izlikt pa logu vai ārā uz terases
Lai tas darbotos
Sāciet instalēt adafruit gps bibliotēku, izmantojot komandu "sudo pip3 install adafruit-circuitpython-gps".
Tagad mēs varam izmantot šādu python kodu, lai redzētu, vai mēs varam panākt, lai tas darbotos:
importēt laika importa dēli importēt busioimport adafruit_gpsimport sērijas 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 ') gps.send_command (b'PMTK220, 1000')
kamēr taisnība:
gps.update (), bet ne gps.has_fix:
print (gps.nmea_sentence) print ('Gaida labojumu …') gps.update () time.sleep (1) turpināt
print ('=' * 40) # Izdrukājiet atdalītāju. (gps.longitude)) print ("Labot kvalitāti: {}". formāts (gps.fix_quality))
# Daži atribūti, kas pārsniedz platuma, garuma un laika zīmogu, nav obligāti# un var nebūt. Pirms gps.satellites nav, pārbaudiet, vai tiem nav neviena!
print ("# satelīti: {}". formāts (gps.satellites))
ja gps.altitude_m nav Nav:
print ("Augstums: {} metri".format (gps.altitude_m))
ja gps.speed_knots nav Nav:
drukāt ("Ātrums: {} mezgli".formāts (gps.speed_knots))
ja gps.track_angle_deg nav Nav:
drukāt ("Izsekošanas leņķis: {} grādi".formāts (gps.track_angle_deg))
ja gps.horizontal_dilution nav Nav:
drukāt ("Horizontālais atšķaidījums: {}". formāts (gps.horizontal_dilution))
ja gps.height_geoid nav Nav:
print ("Ģeogrāfiskais ģeogrāfiskais ID: {} metri".format (gps.height_geoid))
laiks. miegs (1)
4. solis: 16x2 LCD
Ievads
LCD moduļus ļoti bieži izmanto lielākajā daļā iegulto projektu, iemesls ir lētā cena, pieejamība un draudzīgs programmētājam. Lielākā daļa no mums būtu saskārušies ar šiem displejiem ikdienā, izmantojot PCO vai kalkulatorus. 16 × 2 LCD ir nosaukts tāpēc, ka; tajā ir 16 kolonnas un 2 rindas. Ir pieejamas daudzas kombinācijas, piemēram, 8 × 1, 8 × 2, 10 × 2, 16 × 1 utt., Bet visbiežāk izmantotais ir 16 × 2 LCD. Tātad tajā būs (16 × 2 = 32) 32 rakstzīmes, un katra rakstzīme tiks veidota no 5 × 8 pikseļu punktiem.
Smbus instalēšana
Sistēmas pārvaldības kopne (SMBus) ir vairāk vai mazāk atvasinājums no I2C kopnes. Standartu ir izstrādājis Intel, un tagad to uztur SBS forums. SMBus galvenais pielietojums ir pārraudzīt kritiskos parametrus personālo datoru mātesplatēs un iegultās sistēmās. Piemēram, ir pieejams daudz barošanas sprieguma monitora, temperatūras monitora un ventilatora monitora/vadības IC ar SMBus saskarni.
Bibliotēkai, kuru mēs izmantosim, ir jāinstalē arī smbus. Lai instalētu smbus uz rpi, izmantojiet komandu "sudo apt install python3-smbus".
Lai tas darbotos
vispirms instalējiet RPLCD bibliotēku, izmantojot komandu "sudo pip3 install RPLCD".
tagad mēs pārbaudām LCD, parādot ip, izmantojot šādu kodu:
no RPLCD.i2c importējiet CharLCDimport ligzdu
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 () atgriezt ip_address
lcd = CharLCD ('PCF8574', 0x27)
lcd.write_string ('IP adrese: / r / n'+str (get_ip_address ()))
5. solis: Servo, gaismas diodes, poga un slēdzis
Ievads
Servomotors ir rotējošs izpildmehānisms vai motors, kas ļauj precīzi kontrolēt leņķisko stāvokli, paātrinājumu un ātrumu, iespējas, kādas nav parastajam motoram. Tas izmanto parasto motoru un savieno to ar sensoru, lai atgrieztos pozīcijā. Kontrolieris ir vismodernākā servodzinēja daļa, jo tas ir īpaši izstrādāts šim nolūkam.
LED īss gaismas diodēm. Elektroniska pusvadītāju ierīce, kas izstaro gaismu, kad caur to iet elektriskā strāva. Tās ir ievērojami efektīvākas par kvēlspuldzēm un reti izdeg. Gaismas diodes tiek izmantotas daudzās lietojumprogrammās, piemēram, plakanā ekrāna video displejos, un arvien vairāk kā vispārēji gaismas avoti.
Spiedpoga vai vienkārši poga ir vienkāršs slēdža mehānisms, lai kontrolētu kādu mašīnas vai procesa aspektu. Pogas parasti ir izgatavotas no cieta materiāla, parasti plastmasas vai metāla.
Ieslēgšanas/izslēgšanas/ieslēgšanas slēdzim ir 3 pozīcijas, kur vidējais ir izslēgts stāvoklis. Šos tipus galvenokārt izmanto vienkāršai motora vadībai, ja jums ir uz priekšu, izslēgts un atpakaļgaitas stāvoklis.
Lai tas darbotos: servo
Servo izmanto PWM signālu, lai noteiktu, kādam leņķim mums jābūt laimīgam. GPIO ir iebūvēta šī funkcija. Tāpēc mēs varam vienkārši izmantot šādu kodu, lai kontrolētu servo: importēt RPi. GPI kā GPIOimportēt laiku
servo_pin = 18 darba cikls = 7,5
GPIO.setmode (GPIO. BCM)
GPIO.setup (servo_pin, GPIO. OUT)
pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (duty_cycle)
kamēr taisnība:
duty_cycle = float (ievade ("Ievadiet darba ciklu (pa kreisi = 5 uz labo = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)
Lai tas darbotos: gaismas diode un slēdzis
Sakarā ar to, kā mēs savienojām LED un slēdzi, mums nav nepieciešams kontrolēt vai lasīt gaismas diodes un pārslēgties pats. Mēs vienkārši nosūtām impulsus pogai, kas savukārt novirzīs signālu uz vēlamo LED.
Lai tas darbotos: poga
Pogai mēs izveidosim savu vienkāršo klasi, lai mēs varētu viegli redzēt, kad tā tiek nospiesta, nepievienojot tai notikumu noteikšanu katru reizi, kad to izmantojam. Mēs izveidosim failu classbutton.py, izmantojot šādu kodu:
no RPi importēšanas GPIOclass pogas:
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 def nospiests (self):
ingedrukt = GPIO.input (self.pin) atgriešanās nav 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)
6. solis: pilna ķēde
Tagad, kad esam pārbaudījuši visas sastāvdaļas, ir pienācis laiks tos visus apvienot.
Lai gan attēlos ir redzami komponenti, kas parāda visu, kas atrodas uz maizes dēļa, labāk ir pievienot LCD, adafruit GPS un pogu, izmantojot vadus no mātītes līdz vīriešiem. Uz maizes dēļa ir tikai t-kurpnieks un mpu6050. Runājot par LED un slēdzi izmantojiet garākus vadus, lai pārliecinātos, ka varat sasniegt mirgošanas stieņus un stūres stieni.
7. darbība: kods
Lai saglabātu šo pamācāmo tīrību, esmu nodrošinājis github repozitoriju gan ar aizmugures, gan priekšgala failiem. Vienkārši ievietojiet failus priekšgalā mapē/var/www/html mapē un failus aizmugurējās mapes mapē/home/ mape [lietotājvārds]/[mapes vārds]
8. darbība. Datu bāze
Tā kā šī sistēma ir iestatīta, ir izveidots vienkāršs interneta veikals, izmantojot datu bāzē esošo produktu sarakstu, turklāt mums ir saglabāti visi ceļa punkti un pasūtījumi. Izveidošanas skripts ir atrodams vietnē github. Nākamais solis
9. solis: lieta
Kad mēs zinām elektronikas darbu, mēs varam tos salikt kastē. Ar to jūs varat iegūt radošu brīvību. Pirms tās uzbūvēšanas vienkārši paņemiet kartona kastīti, kas jums vairs nav nepieciešama, piemēram, tukšu graudaugu kasti, un sagrieziet to, pielīmējiet to un salieciet to, līdz iegūstat kaut ko, kas jums patīk. Izmēriet un uzzīmējiet savu lietu uz papīra lapas un izgatavojiet to no izturīgāka materiāla, piemēram, koka, vai, ja tas nav jūsu lieta, izdrukājiet to. Vienkārši pārliecinieties, vai visa elektronika ir ievietota iekšpusē un jums ir caurumi pogai, vadam, kas iet uz slēdzi, gaismas diodēm un lcd. Kad esat izveidojis savu lietu, vienkārši atrodiet veidu, kā to piestiprināt pie velosipēda vai motorollera
Ieteicams:
GPS maršruta izsekošana V2: 4 soļi (ar attēliem)
GPS maršruta izsekošana V2: Projekts: GPS maršruta izsekošana V2Datums: 2020. gada maijs - jūnijs Pirmkārt, man nepatika kaste, tāpēc es to nomainīju ar citu. Otrkārt
QeMotion - kustību izsekošana katrai austiņai!: 5 soļi (ar attēliem)
QeMotion - kustību izsekošana visām austiņām! Tas darbojas, izsekojot jūsu galvas (vai austiņu) kustībai un aktivizējot tastatūras nospiešanu noteiktām kustībām. Tātad jūsu kompānija
POS SISTĒMA VEIKALIEM, PĀRTIKAS UN APKALPOŠANAS CENTRIEM NO EXCEL, izmantojot svītrkodus: 7 soļi
POSISTĒMA VEIKALIEM, PĀRTIKAS PAKALPOJUMU UN APKALPOŠANAS CENTRIEM NO EXCEL Izmantojot svītrkodus: ar šo emuāru es iepazīstinu jūs ar to, kā izveidot vienkāršu POS (tirdzniecības vietu) sistēmu maziem veikaliem, pārtikas preču un pakalpojumu centriem. Izmantojot šo metodi, jūs varat pārvaldīt šādas iespējas bez īpašas programmatūras vai dārgas iekārtas. v Problēma
Lēti reduktori maziem robotiem: 5 soļi (ar attēliem)
Lēti reduktori maziem robotiem: vai jūsu jaunajam mazo robotu projektam nepieciešami mazi, jaudīgi un lēti motori? Es atklāju šos " N20 " Pirms aptuveni gada, strādājot pie sava ProtoBot projekta. Tie ir mazi, spēcīgi un bagātīgi no daudziem tiešsaistes avotiem. Tu
DIY radiators maziem tranzistoriem: 6 soļi (ar attēliem)
DIY radiators maziem tranzistoriem: Šeit ir neliels pamācību veids: vai vēlaties izspiest nedaudz vairāk strāvas, izmantojot šos lētos TO-92 paketes tranzistorus? Pēc tam pievienojiet nelielu metāla radiatoru. Es to izveidoju PWM līdzstrāvas motora vadītājam, jo daži 2N2222 divpolārie tranzistori bija ērti. Tas strādā