Turinys:
- Prekės
- 1 žingsnis: įjunkite grandinę ir „Pi“
- 2 žingsnis: MPU6050
- 3 žingsnis: „Adafruit Ultimate Breakout GPS“
- 4 žingsnis: 16x2 LCD
- 5 žingsnis: Servo, šviesos diodai, mygtukas ir jungiklis
- 6 žingsnis: visa grandinė
- 7 žingsnis: Kodas
- 8 žingsnis: duomenų bazė
- 9 žingsnis: atvejis
Video: Mažų parduotuvių sekimas ir sekimas: 9 žingsniai (su paveikslėliais)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Tai yra sistema, skirta mažoms parduotuvėms, kurios turėtų būti montuojamos ant elektroninių dviračių ar motorolerių, kad būtų galima pristatyti trumpą atstumą, pavyzdžiui, kepykla, norinti pristatyti kepinius.
Ką reiškia „Track and Trace“?
Sekimas ir sekimas - tai sistema, kurią vežėjai ar kurjerių įmonės naudoja siuntų ar daiktų judėjimui gabenti registruoti. Kiekvienoje apdorojimo vietoje prekės identifikuojamos ir duomenys perduodami į centrinę apdorojimo sistemą. Tada šie duomenys naudojami siuntėjams suteikti prekių buvimo vietą/atnaujinimą.
Mūsų sukurta sistema taip pat parodys pasirinktą maršrutą ir gautų smūgių bei smūgių kiekį. Šiose instrukcijose taip pat daroma prielaida, kad turite pagrindinių žinių apie aviečių pi, python ir mysql.
pastaba: tai buvo sukurta mokyklos projektui, todėl dėl laiko apribojimų yra daug galimybių tobulėti
Prekės
-„Aviečių Pi 4“modelis B.
-Aviečių PI T-cobbler
-4x 3, 7V ličio jonų baterijos
-2x dvigubas akumuliatoriaus laikiklis
-Dc Buck sumažinimo keitiklis 5v
-2x dideli oranžiniai šviesos diodai
-įjungimo/išjungimo/įjungimo jungiklis
-mygtukas
-adafruit ultimate gps v3
-6050 eurų
-16x2 LCD ekranas
-servo variklis
1 žingsnis: įjunkite grandinę ir „Pi“
Kalbant apie maitinimą grandine pi su baterija, turite keletą galimybių, kaip tai padaryti.
Galite naudoti „Powerbank“ir maitinti „pi“per USB, galbūt įrenginį montuojate ant el. Dviračio ar motorolerio, turinčio USB prievadą, galbūt turite 5 V telefono bateriją, kuri laukia, kol bus naudojama, arba galite naudoti 2 3,7 V baterijų rinkiniai lygiagrečiai su žemesnio lygio keitikliu, kaip parodyta paveikslėliuose
Viskas yra gerai, jei gali užtikrinti nuolatinį 5 V įtampą ir visą gyvenimą esate patenkintas.
2 žingsnis: MPU6050
Įvadas MPU6050 jutiklio modulis yra integruotas 6 ašių judesio sekimo įrenginys.
- Jame yra 3 ašių giroskopas, 3 ašių pagreičio matuoklis, skaitmeninis judesio procesorius ir temperatūros jutiklis.
- Įvairius parametrus galima rasti skaitant reikšmes iš tam tikrų registrų adresų naudojant I2C ryšį. Giroskopo ir akselerometro rodmenys X, Y ir Z ašyse yra 2 papildymo forma.
- Giroskopo rodmenys rodomi laipsniais per sekundę (dps); Akselerometro rodmenys pateikiami g vienetais.
Įgalinama I2C
Kai naudojate MPU6050 su „Raspberry Pi“, turėtume užtikrinti, kad „Raspberry Pi“I2C protokolas būtų įjungtas. Norėdami tai padaryti, atidarykite pi terminalą per glaistą ar kitą programinę įrangą ir atlikite šiuos veiksmus:
- įveskite „sudo raspi-config“
- Pasirinkite sąsajos konfigūracijas
- Sąsajos parinktyje pasirinkite „I2C“
- Įgalinti I2C konfigūraciją
- Pasirinkite Taip, kai prašoma paleisti iš naujo.
Dabar mes galime išbandyti/nuskaityti bet kurį I2C įrenginį, prijungtą prie mūsų „Raspberry Pi“plokštės, įdiegdami „i2c“įrankius. „I2c“įrankius galime gauti naudodami apt paketų tvarkyklę. Raspberry Pi terminale naudokite šią komandą.
"sudo apt-get install -y i2c-tools"
Dabar prijunkite bet kurį I2C pagrįstą įrenginį prie vartotojo režimo prievado ir nuskaitykite tą prievadą naudodami šią komandą, "sudo i2cdetect -y 1"
Tada jis atsakys nurodydamas įrenginio adresą.
Jei adresas negrąžinamas, įsitikinkite, kad MPU6050 tinkamai prijungtas, ir bandykite dar kartą
Kad tai veiktų
Dabar, kai esame tikri, kad „i2c“yra įjungtas ir pi gali pasiekti MPU6050, ketiname įdiegti biblioteką naudodami komandą „sudo pip3 install adafruit-circuitpython-mpu6050“.
jei sudarysime „python“bandomąjį failą ir naudosime šį kodą, pamatysime, ar jis veikia:
importo laikas
importo lenta
importo verslas
oimportas adafruit_mpu6050
i2c = busio. I2C (board. SCL, board. SDA)
mpu = adafruit_mpu6050. MPU6050 (i2c)
nors tiesa:
spausdinti ("Pagreitis: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu.pagreitis))
spausdinti („Giroskopas X: %. 2f, Y: %.2f, Z: %.2f laipsniai/s“%(mpu.gyro))
spausdinti ("Temperatūra: %.2f C" % mpu.temperatūra)
spausdinti ("")
laikas. miegas (1)
kai dabar norime pagreičio X/Y/Z ašyje, galime naudoti:
accelX = mpu.acceleration [0] accelY = mpu.acceleration [1] accelZ = mpu.acceleration [2]
derindami tai su paprastu, jei teiginiu nuolatinėje grandinėje, galime suskaičiuoti sukrėtimų kiekį kelionėje
3 žingsnis: „Adafruit Ultimate Breakout GPS“
Įvadas
Pertrauka yra sukurta aplink MTK3339 mikroschemų rinkinį, nesąmoningą, aukštos kokybės GPS modulį, galintį sekti iki 22 palydovų 66 kanaluose, turi puikų didelio jautrumo imtuvą (-165 dB sekimas!) Ir įmontuotą anteną. Jis gali atlikti iki 10 vietos atnaujinimų per sekundę, kad būtų galima greitai registruotis, stebėti didelį jautrumą. Energijos suvartojimas yra neįtikėtinai mažas, tik 20 mA navigacijos metu.
Plokštėje yra: itin žemas 3,3 V reguliatorius, kad galėtumėte jį maitinti naudodami 3,3–5 V nuolatinės srovės įvestį, 5 V lygio saugūs įėjimai, Šviesos diodas mirksi maždaug 1 Hz dažniu, kol jis ieško palydovų, ir mirksi kartą per 15 sekundžių, kai pataisoma nustatyta, kad taupo valdžią.
GPS testavimas naudojant arduino
Jei turite prieigą prie arduino, verta išbandyti modulį.
Prijunkite VIN prie +5 V Prijunkite GND prie „Ground“Prijunkite GPS RX (duomenys į GPS) prie skaitmeninio 0 Prijunkite GPS TX (duomenys iš GPS) prie „Digital 1“
Tiesiog paleiskite tuščią arduino kodą ir atidarykite nuoseklųjį monitorių 9600 baudų. Jei gausite GPS duomenis, jūsų GPS modulis veikia. Pastaba: jei jūsų modulis nepadeda pataisyti, pabandykite jį išleisti pro langą arba lauke terasoje
Kad tai veiktų
Pradėkite diegti „adafruit gps“biblioteką naudodami komandą „sudo pip3 install adafruit-circuitpython-gps“.
Dabar galime naudoti šį „python“kodą, kad sužinotume, ar galime tai padaryti:
importuoti laiko importavimo lentą importuoti versiją importuoti adafruit_gpsimport serijinis 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')
nors tiesa:
gps.update (), o ne gps.has_fix:
print (gps.nmea_sentence) print („Laukiama, kol bus ištaisyta …“) gps.update () time.sleep (1) tęsti
print ('=' * 40) # Atspausdinkite skiriamąją liniją.print ('Platuma: {0:.6f} laipsnių'.formatas (gps.latitude)) print (' Ilguma: {0:.6f} laipsnių'.format (gps.longitude)) print ("Fiksuota kokybė: {}". formatas (gps.fix_quality))
# Kai kurie atributai už platumos, ilgumos ir laiko žymos yra neprivalomi# ir gali nebūti. Prieš bandydami naudoti patikrinkite, ar jų nėra! Jei gps.satellites nėra Nėra:
spausdinti ("# palydovai: {}". formatas (gps.satellites))
jei gps.altitude_m nėra Nėra:
print ("Aukštis: {} metrai".formatas (gps.altitude_m))
jei gps.speed_knots nėra Nėra:
spausdinti („Greitis: {} mazgų“.formatas (gps.speed_knots))
jei gps.track_angle_deg nėra Nėra:
spausdinti („Kelio kampas: {} laipsniai“.formatas (gps.track_angle_deg))
jei gps.horizontal_dilution nėra Nėra:
spausdinti („Horizontalus skiedimas: {}“. formatas (gps.horizontal_dilution))
jei gps.height_geoid nėra Nėra:
spausdinti („Aukščio geo ID: {} metrai“.formatas (gps.height_geoid))
laikas. miegas (1)
4 žingsnis: 16x2 LCD
Įvadas
LCD moduliai yra labai dažnai naudojami daugelyje įterptųjų projektų, priežastis yra pigi kaina, prieinamumas ir patogus programuotojas. Daugelis iš mūsų kasdieniame gyvenime būtų susidūrę su šiais ekranais, naudodamiesi PCO arba skaičiuotuvu. 16 × 2 LCD yra pavadintas taip, nes; Jame yra 16 stulpelių ir 2 eilutės. Yra daug derinių, tokių kaip 8 × 1, 8 × 2, 10 × 2, 16 × 1 ir tt, tačiau dažniausiai naudojamas 16 × 2 skystųjų kristalų ekranas. Taigi, iš viso bus (16 × 2 = 32) 32 simboliai ir kiekvienas simbolis bus sudarytas iš 5 × 8 pikselių taškų.
„Smbus“diegimas
Sistemos valdymo magistralė (SMBus) yra daugiau ar mažiau išvestinė I2C magistralė. Standartą sukūrė „Intel“, o dabar jį prižiūri „SBS Forum“. Pagrindinė „SMBus“programa yra stebėti kritinius kompiuterio pagrindinių plokščių ir įterptųjų sistemų parametrus. Pavyzdžiui, yra daug maitinimo įtampos monitoriaus, temperatūros monitoriaus ir ventiliatoriaus monitoriaus/valdymo IC su SMBus sąsaja.
Bibliotekai, kurią naudosime, taip pat reikia įdiegti „smbus“. Norėdami įdiegti „smbus“į „rpi“, naudokite komandą „sudo apt install python3-smbus“.
Kad tai veiktų
pirmiausia įdiekite RPLCD biblioteką naudodami komandą „sudo pip3 install RPLCD“.
dabar mes išbandome LCD, rodydami IP naudodami šį kodą:
iš RPLCD.i2c importuokite „CharLCDimport“lizdą
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 adresas: / r / n'+str (get_ip_address ()))
5 žingsnis: Servo, šviesos diodai, mygtukas ir jungiklis
Įvadas
Servo variklis yra rotacinė pavara arba variklis, leidžiantis tiksliai valdyti kampinę padėtį, pagreitį ir greitį, galimybes, kurių neturi įprastas variklis. Jis naudoja įprastą variklį ir suporuoja jį su jutikliu, kad galėtų grįžti į padėtį. Valdiklis yra sudėtingiausia servo variklio dalis, nes jis yra specialiai sukurtas šiam tikslui.
LED trumpinys-šviesos diodas. Elektroninis puslaidininkinis įtaisas, skleidžiantis šviesą, kai pro jį praeina elektros srovė. Jie yra daug efektyvesni už kaitrines lemputes ir retai perdega. Šviesos diodai naudojami daugelyje programų, tokių kaip plokščiaekraniai vaizdo ekranai, ir vis dažniau naudojami kaip bendri šviesos šaltiniai.
Mygtukas arba tiesiog mygtukas yra paprastas jungiklio mechanizmas, valdantis tam tikrą mašinos ar proceso aspektą. Mygtukai paprastai gaminami iš kietos medžiagos, dažniausiai plastiko ar metalo.
Įjungimo/išjungimo/įjungimo jungiklis turi 3 padėtis, kai vidurinė yra išjungta būsena. Šie tipai dažniausiai naudojami paprastam variklio valdymui, kai turite būseną į priekį, išjungimą ir atgal.
Kad jis veiktų: servo
Servo naudoja PWM signalą, kad nustatytų, koks kampas turi būti mūsų laimei, GPIO turi šią funkciją. Todėl mes galime tiesiog naudoti šį kodą valdydami servo: importuoti RPi. GPI kaip GPIOimporto laikas
servo_pin = 18 pareigų ciklas = 7.5
GPIO.setmode (GPIO. BCM)
GPIO.setup (servo_pin, GPIO. OUT)
pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (duty_cycle)
nors tiesa:
duty_cycle = float (įvestis ("Įveskite darbo ciklą (iš kairės = 5 į dešinę = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)
Kad jis veiktų: šviesos diodas ir jungiklis
Dėl to, kaip prijungėme šviesos diodus ir jungiklį, mums nereikia valdyti ar skaityti šviesos diodų ir patys perjungti. Mes tiesiog siunčiame impulsus mygtuko raganai, savo ruožtu nukreipdami signalą į norimą lemputę.
Kad jis veiktų: mygtukas
Dėl mygtuko mes padarysime savo paprastą klasę tokiu būdu, kad mes lengvai matytume, kada jis paspaudžiamas, nepridedant prie jo įvykio aptikimo kiekvieną kartą, kai jį naudojame. Mes padarysime failą classbutton.py naudodami šį kodą:
iš RPi importo GPIOclass mygtuko:
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 nuspaustas (self):
ingedrukt = GPIO.input (self.pin) grąža ne ingedrukt
def on_press (savarankiškai, call_method):
GPIO.add_event_detect (self.pin, GPIO. FALLING, call_method, bouncetime = self.bouncetime)
def on_release (savarankiškai, call_method):
GPIO.add_event_detect (self.pin, GPIO. RISING, call_method, bouncetime = self.bouncetime)
6 žingsnis: visa grandinė
Dabar, kai peržiūrėjome visus komponentus, laikas juos visus sujungti.
Nors nuotraukos rodo, kad komponentai rodo viską, kas yra pačioje duonos lentelėje, geriau, kad LCD, „adafruit“GPS ir mygtukas būtų prijungti naudojant laidus iš moterų ir vyrų. Tik „t-cobbler“ir „mpu6050“pritvirtinkite prie lentos. Kai kalbama apie LED ir jungiklį naudokite ilgesnius laidus, kad įsitikintumėte, jog galite pasiekti mirksėjimo strypus ir vairo juostą.
7 žingsnis: Kodas
Kad ši instrukcija būtų švari, aš pateikiau „github“saugyklą ir su galiniais, ir su priekiniais sąsajos failais. Tiesiog įdėkite failus į priekinės sistemos aplanką aplanke/var/www/html aplankas [vartotojo vardas]/[aplanko vardas]
8 žingsnis: duomenų bazė
Dėl šios sistemos nustatymo yra paprasta internetinė parduotuvė, sukurta naudojant duomenų bazės produktų sąrašą, be to, čia yra išsaugoti visi kelio taškai ir užsakymai. Sukūrimo scenarijų galima rasti „github“saugykloje, esančioje nuorodoje Kitas žingsnis
9 žingsnis: atvejis
Kai žinome elektronikos darbą, galime juos sudėti į dėžutę. Tai galite padaryti kūrybiškai. Prieš statydami, tiesiog paimkite kartoninę dėžę, kurios jums nebereikia, pavyzdžiui, tuščią javų dėžutę, ir supjaustykite, užklijuokite ir sulenkite, kol turėsite tai, kas jums patinka. Išmatuokite ir nupieškite dėklą ant popieriaus lapo ir padarykite jį iš tvirtesnės medžiagos, pvz., medžio, arba, jei tai ne jūsų dalykas, atspausdinkite 3D. Tiesiog įsitikinkite, kad visa elektronika telpa viduje ir jūs turite skyles mygtukui, vielai, einančiai prie jungiklio, šviesos diodams ir LCD. Kai padarysite savo dėklą, jums tereikia rasti būdą, kaip jį pritvirtinti prie dviračio ar paspirtuko
Rekomenduojamas:
7 segmentų laikrodis - mažų spausdintuvų leidimas: 9 žingsniai (su paveikslėliais)
7 segmentų laikrodis - mažų spausdintuvų leidimas: dar vienas 7 segmentų laikrodis. xDA Nors turiu pasakyti, kad žiūrint į mano „Instructables“profilį tai neatrodo taip beprotiška. Tai tikriausiai dar labiau erzina tą akimirką, kai pažvelgsite į mano dalykinį profilį. Taigi kodėl aš net nerimauju padaryti kitą
VEIDO SEKIMAS NAUDOJANT ARDUINO !!!: 7 žingsniai
VEIDO STEBĖJIMAS NAUDOJANT ARDUINO !!!: Ankstesnėje instrukcijoje aš pasidalinau, kaip galite bendrauti tarp „Arduino“ir „Python“naudodami „pyserial“modulį ir valdyti šviesos diodą. Jei nematėte, patikrinkite čia: KOMUNIKACIJA TARP ARDUINO & PYTHON! Ir kaip atpažinti spalvą
35 USD belaidis sekimas iš krano 2: 5 žingsniai
35 USD belaidis sekimo fokusavimas iš „Crane 2“: padarykime 35 USD vertės belaidį fotoaparato fokusavimą. Tai puikiai tinka naudoti filmų rinkiniuose su specialiu fokusavimo traukikliu ir belaidžiu būdu sureguliuoti bet kurios kameros priartinimą ar fokusavimą
Milžiniškas šviesos diodas - Adam Savage sekimas: 13 žingsnių (su paveikslėliais)
Milžiniškas šviesos diodas - Adomo Savage'o sekimas: čia rasite milžinišką šviesos diodą, iš naujo sukurtą veikti kaip „Twitter“, „YouTube“ir „Twitch“įspėjimo lemputė. Mano pagrindinis tikslas yra įspėti, kai yra Adomo Savage'o ir išbandytos komandos „tweets“, vaizdo įrašai ar „twitch“srautai ir
Mažų robotų kūrimas: vieno kubinio colio „Micro-Sumo“robotų ir mažesnių kūrimas: 5 žingsniai (su nuotraukomis)
Mažų robotų kūrimas: vieno kubinio colio „Micro-Sumo“robotų ir mažesnių kūrimas: Štai keletas smulkių robotų ir grandinių kūrimo detalių. Ši pamoka taip pat apims keletą pagrindinių patarimų ir metodų, kurie yra naudingi kuriant bet kokio dydžio robotus. Man vienas iš didžiausių elektronikos iššūkių yra pamatyti, koks mažas