Sisukord:
- Tarvikud
- Samm: vooluringi ja Pi toide
- Samm: MPU6050
- 3. samm: Adafruit Ultimate Breakout GPS
- Samm: 16x2 LCD
- Samm: servo, ledid, nupp ja lüliti
- 6. samm: täielik vooluring
- Samm: kood
- 8. samm: andmebaas
- 9. samm: juhtum
Video: Väikeste poodide jälgimine ja jälgimine: 9 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
See on süsteem, mis on mõeldud väikestele kauplustele, mis peaksid olema paigaldatud e-jalgratastele või e-motorolleritele lähitoimetamiseks, näiteks pagaritöökoda, mis soovib saiakesi tarnida.
Mida tähendab jälgimine ja jälgimine?
Jälgimine ja jälgimine on süsteem, mida vedajad või kullerfirmad kasutavad pakkide või saadetiste liikumise registreerimiseks transpordi ajal. Igas töötlemiskohas identifitseeritakse kaup ja edastatakse andmed kesksesse töötlemissüsteemi. Neid andmeid kasutatakse seejärel kauba saatjale oleku/ajakohastamiseks.
Meie loodud süsteem näitab ka valitud marsruuti ning saadud šokkide ja löökide hulka. See juhend sisaldab ka eeldust, et teil on algteadmised vaarika pi, python ja mysql kohta.
märkus: see tehti kooliprojekti jaoks, seega on ajapiirangu tõttu palju arenguruumi
Tarvikud
-Vaarika Pi 4 mudel B
-Vaarika PI T-munakell
-4x 3, 7V liitiumioonakud
-2x topelt akuhoidja
-DC Buck astmeline muundur 5v
-2x suured oranžid LED -id
-sisse/välja/sisse lüliti
-nupp
-adafruit ülim gps v3
-mpu6050
-16x2 lcd ekraan
-servomootor
Samm: vooluringi ja Pi toide
Kui tegemist on vooluahela toitega akuga, on teil mõned võimalused selle tegemiseks.
Võite kasutada powerbanki ja toita pi USB kaudu, võib-olla paigaldate seadme e-jalgrattale või e-tõukerattale, millel on USB-port, võib-olla on teil 5V telefoni aku, mis ootab kasutamist või võite kasutada 2 3.7V patareide komplektid paralleelselt astmelise muunduriga, nagu piltidel näidatud
Kõik on korras, kui see suudab pakkuda pidevat 5 V ja eluiga, millega olete rahul.
Samm: MPU6050
Sissejuhatus MPU6050 andurimoodul on integreeritud 6-teljeline liikumisjälgimisseade.
- Sellel on 3-teljeline güroskoop, 3-teljeline kiirendusmõõtur, digitaalne liikumisprotsessor ja temperatuuriandur-kõik ühes IC-s.
- Erinevaid parameetreid saab leida, lugedes väärtusi I2C -side abil teatud registrite aadressidelt. Güroskoobi ja kiirendusmõõturi näidud X-, Y- ja Z -telgedel on saadaval 2 komplemendi kujul.
- Güroskoobi näidud on kraadides sekundis (dps); Kiirendusmõõturi näidud on g ühikutes.
I2C lubamine
Kui kasutate MPU6050 koos Raspberry Pi -ga, peaksime tagama, et Raspberry Pi I2C -protokoll on sisse lülitatud. Selleks avage pi terminal läbi kitt või muu tarkvara ja tehke järgmist.
- tippige "sudo raspi-config"
- Valige Liidese konfiguratsioonid
- Valige liidese valikul "I2C"
- Luba I2C konfiguratsioon
- Valige Jah, kui palutakse taaskäivitada.
Nüüd saame testida/skannida kõiki meie Raspberry Pi plaadiga ühendatud I2C -seadmeid, installides i2c tööriistu. I2c tööriistu saame apt paketihalduri abil. Kasutage Raspberry Pi terminalis järgmist käsku.
"sudo apt-get install -y i2c-tools"
Nüüd ühendage mis tahes I2C-põhine seade kasutajarežiimi pordiga ja skaneerige see port, kasutades järgmist käsku, "sudo i2cdetect -y 1"
Seejärel vastab see seadme aadressiga.
Kui aadressi ei tagastata, veenduge, et MPU6050 on korralikult ühendatud ja proovige uuesti
Et see toimiks
nüüd, kui oleme kindlad, et i2c on lubatud ja pi jõuab MPU6050-ni, installime teeki, kasutades käsku "sudo pip3 install adafruit-circuitpython-mpu6050".
kui teeme pythoni testfaili ja kasutame järgmist koodi, näeme, kas see töötab:
impordi aeg
imporditahvel
import äri
oimport adafruit_mpu6050
i2c = busio. I2C (board. SCL, board. SDA)
mpu = adafruit_mpu6050. MPU6050 (i2c)
kuigi tõsi:
print ("Kiirendus: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu.kiirendus))
print ("Güroskoop X: %. 2f, Y: %.2f, Z: %.2f kraadi/s" %(mpu.gyro))
print ("Temperatuur: %.2f C" % mpu.temperatuur)
prindi ("")
aeg. uni (1)
kui tahame nüüd X/Y/Z-telje kiirendust, saame kasutada järgmist:
accelX = mpu.acceleration [0] accelY = mpu.acceleration [1] accelZ = mpu.acceleration [2]
kombineerides selle lihtsa if -avaldusega konstantses ahelas, saame lugeda reisil olevate šokkide arvu
3. samm: Adafruit Ultimate Breakout GPS
Sissejuhatus
Puhkevõrk on üles ehitatud MTK3339 kiibistiku ümber, mis on mõttetu ja kvaliteetne GPS-moodul, mis suudab jälgida kuni 22 satelliiti 66 kanalil, millel on suurepärane ülitundlik vastuvõtja (-165 dB jälgimine!) Ja sisseehitatud antenn. Kiireks, suure tundlikkusega logimiseks või jälgimiseks võib see teha kuni 10 asukohavärskendust sekundis. Energiatarve on uskumatult väike, navigeerimise ajal ainult 20 mA.
Tahvlil on: ülimadala väljalangemisega 3,3 V regulaator, nii et saate seda toita 3,3–5 V alalisvoolu sisendiga, 5 V tasemel turvalised sisendid, LED vilgub umbes 1 Hz sagedusel, kui see otsib satelliite, ja vilgub kord 15 sekundi jooksul, kui viga on parandatud leiti võimu säästvat.
GPS -i testimine arduino abil
Kui teil on arduino juurdepääs, on hea mõte moodulit sellega testida.
Ühendage VIN +5V -ga Ühendage GND Ground -iga Ühendage GPS -RX (andmed GPS -i) digitaalsega
Lihtsalt käivitage tühi arduino -kood ja avage jadamonitor 9600 baudil. Kui saate gps -andmeid, töötab teie GPS -moodul. Märkus: kui teie moodul ei saa parandust, proovige see aknast välja või terrassile välja panna
Et see toimiks
Alustage adafruit gps raamatukogu installimist käsuga "sudo pip3 install adafruit-circuitpython-gps".
Nüüd saame kasutada järgmist püütoni koodi, et näha, kas suudame selle tööle panna:
impordi ajaimporditahvli importimine busioimport adafruit_gpsimport jada uart = jada. Seriaalne ("/dev/ttyS0", baudrate = 9600, timeout = 10)
gps = adafruit_gps. GPS (uart, silumine = vale) 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')
kuigi tõsi:
gps.update (), mitte gps.has_fix:
print (gps.nmea_sentence) print ('Ootel parandust …') gps.update () time.sleep (1) jätka
print ('=' * 40) # Prindi eraldaja rida.print ('Laiuskraad: {0:.6f} kraadi'.vorming (gps.latitude)) print (' Pikkuskraad: {0:.6f} kraadi'.format (gps.longitude)) print ("Fix quality: {}". format (gps.fix_quality))
# Mõned atribuudid väljaspool laius-, pikkus- ja ajatempli on valikulised# ja neid ei pruugi olla. Enne kui proovite kasutada, kontrollige, kas neid pole! Kui gps.satellites pole Puudub:
print ("# satelliiti: {}". vorming (gps.satellites))
kui gps.altitude_m pole Puudub:
print ("Kõrgus: {} meetrit".vorming (gps.altitude_m))
kui gps.speed_knots pole Puudub:
print ("Kiirus: {} sõlme".vorming (gps.speed_knots))
kui gps.track_angle_deg ei ole Puudub:
print ("Raja nurk: {} kraadi".vorming (gps.track_angle_deg))
kui gps.horizontal_dilution ei ole Puudub:
print ("Horisontaalne lahjendus: {}". formaat (gps.horizontal_dilution))
kui gps.height_geoid pole Puudub:
print ("Kõrguse geo ID: {} meetrit".vorming (gps.height_geoid))
aeg. uni (1)
Samm: 16x2 LCD
Sissejuhatus
LCD -mooduleid kasutatakse enamikes sisseehitatud projektides väga sageli, põhjuseks on selle odav hind, kättesaadavus ja programmeerijasõbralikkus. Enamik meist oleks nende kuvaritega oma igapäevaelus kokku puutunud kas PCO -de või kalkulaatorite juures. 16 × 2 LCD on nimetatud sellepärast; sellel on 16 veergu ja 2 rida. Saadaval on palju kombinatsioone, näiteks 8 × 1, 8 × 2, 10 × 2, 16 × 1 jne, kuid kõige sagedamini kasutatav on 16 × 2 LCD. Seega on sellel (16 × 2 = 32) 32 tähemärki ja iga märk koosneb 5 × 8 pikslipunktist.
Smbus installimine
Süsteemihaldussiin (SMBus) on enam -vähem I2C siini tuletis. Standardi on välja töötanud Intel ja seda haldab nüüd SBS Foorum. SMBusi peamine rakendus on jälgida kriitilisi parameetreid arvuti emaplaatidel ja manussüsteemides. Näiteks on saadaval palju toitepingemonitori, temperatuurimonitori ja ventilaatori jälgimis-/juhtimisseadmeid, millel on SMBus -liides.
Meie kasutatav raamatukogu nõuab ka smbus installimist. Smbusi installimiseks rpi-le kasutage käsku "sudo apt install python3-smbus".
Et see toimiks
kõigepealt installige RPLCD teek, kasutades käsku "sudo pip3 install RPLCD".
nüüd testime LCD -d, kuvades ip järgmise koodi abil:
RPLCD.i2c impordi pistikupesa 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 -aadress: / r / n'+str (get_ip_address ()))
Samm: servo, ledid, nupp ja lüliti
Sissejuhatus
Servomootor on pöörlev ajam või mootor, mis võimaldab täpset juhtimist nurgaasendi, kiirenduse ja kiiruse osas, võimeid, mida tavalisel mootoril pole. See kasutab tavalist mootorit ja ühendab selle anduriga positsiooni tagasiside saamiseks. Kontroller on servomootori kõige keerukam osa, kuna see on spetsiaalselt selleks ette nähtud.
LED lühike valgusdioodi jaoks. Elektrooniline pooljuhtseade, mis kiirgab valgust, kui seda läbib elektrivool. Need on tunduvalt tõhusamad kui hõõglambid ja põlevad harva. Valgusdioode kasutatakse paljudes rakendustes, näiteks lameekraaniga videoekraanides, ja üha enam üldiste valgusallikatena.
Nupp või lihtsalt nupp on lihtne lülitusmehhanism masina või protsessi mõne aspekti juhtimiseks. Nupud on tavaliselt valmistatud kõvast materjalist, tavaliselt plastikust või metallist.
Sisse/välja/sisse lülitil on 3 asendit, kus keskmine on väljalülitatud olekus. Neid tüüpe kasutatakse enamasti lihtsaks mootorijuhtimiseks, kui teil on edasi-, välja- ja tagasikäik.
Töötamine: servo
Servo kasutab PWM -signaali, et teha kindlaks, milline nurk peab meie jaoks õnneks olema GPIO -l on see funktsioon sisse ehitatud. Seetõttu saame servo juhtimiseks kasutada lihtsalt järgmist koodi: RPi importimine. GPIO
servo_pin = 18 tollimaksu tsükkel = 7.5
GPIO.setmode (GPIO. BCM)
GPIO.seadistus (servo_pin, GPIO. OUT)
pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (duty_cycle)
kuigi tõsi:
duty_cycle = float (input ("Sisestage töötsükkel (vasakult = 5 paremale = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)
Töötamine: LED ja lüliti
Tulenevalt sellest, kuidas me juhtmeid ja lülitit ühendasime, ei pea me LED -e juhtima ega lugema ja ennast vahetama. Me lihtsalt saadame impulsid nupule, mis omakorda suunab signaali soovitud LED -i.
Töötamine: nupp
Nupu jaoks teeme sel viisil oma lihtsa klassi, mida näeme hõlpsalt, kui seda vajutatakse, ilma et peaksime iga kord seda kasutama lisama sündmuste tuvastamise. Teeme faili classbutton.py, kasutades järgmist koodi:
RPi importimise GPIOclass nupust:
def _init _ (ise, pin, tagasipöördumisaeg = 200): self.pin = pin self.bouncetime = bouncetime GPIO.setmode (GPIO. BCM) GPIO.setup (pin, GPIO. IN, GPIO. PUD_UP) @property def vajutatud (ise):
ingedrukt = GPIO.input (self.pin) tagastus pole ingedrukt
def on_press (ise, kõne_meetod):
GPIO.add_event_detect (self.pin, GPIO. FALLING, call_method, bouncetime = self.bouncetime)
def on_release (ise, kõne_meetod):
GPIO.add_event_detect (self.pin, GPIO. RISING, call_method, bouncetime = self.bouncetime)
6. samm: täielik vooluring
Nüüd, kui oleme kõik komponendid üle vaadanud, on aeg neid kõiki ühendada.
Kuigi piltidel on näha, et komponendid näitavad kõike leivaplaadil, on parem, kui LCD, adafruit GPS ja nupp on ühendatud naissoost ja isasjuhtmetega. Ainult t-cobbler ja mpu6050 on leivaplaadil. Kui tegemist on LED-ide ja lülitiga kasutage pikemaid juhtmeid, et veenduda, et pääsete vilkuri ja roolilatini.
Samm: kood
Selle juhendatava puhtana hoidmiseks olen pakkunud githubi hoidla nii tausta- kui ka esiplaanifailidega. Lihtsalt pange failid esikausta kausta/var/www/html kausta ja failid kausta taustaprogrammi kaustas/home/ kaust [kasutajanimi]/[kausta kasutajanimi]
8. samm: andmebaas
Kuna see süsteem on üles seatud, on andmebaasis olevate toodete loendi abil üles seatud lihtne veebipood, lisaks on siia salvestatud kõik teekonnapunktid ja tellimused. Loo skripti leiate saidil lingitud githubi hoidlast järgmine samm
9. samm: juhtum
Kui me teame elektroonikatööd, saame need karpi toppida. Sellega saate loominguliselt vabadust võtta. Enne selle ehitamist haarake lihtsalt pappkarp, mida te enam ei vaja, näiteks tühi teraviljakast, ja lõigake see, kleepige see ja voldige seda, kuni teil on midagi, mis teile meeldib. Mõõtke ja joonistage oma ümbris paberilehele ning tehke see tugevamast materjalist, näiteks puidust, või kui see pole teie asi, printige see lihtsalt välja. Veenduge, et kogu elektroonika mahub sisse ja sul on augud nupule, juhtmele, mis läheb lülitile, LED -id ja LCD -ekraan. Kui olete oma juhtumi teinud, peate lihtsalt leidma viisi, kuidas seda jalgrattale või tõukerattale kinnitada
Soovitan:
7 segmendi kell - väikeste printerite väljaanne: 9 sammu (koos piltidega)
7 segmendikell - väikeste printerite väljaanne: veel üks 7 segmendi kell. xDA Kuigi pean ütlema, et see ei tundu minu Instructabeli profiili vaadates nii hull. Tõenäoliselt on see ärritavam, kui vaatate minu asjade universaalset profiili. Miks ma siis üldse viitsin teist teha
Kodu pimedate ruumide kujundus väikeste ruumide jaoks: 7 sammu (piltidega)
Avaleht pimedate ruumide kujundus väikeste ruumide jaoks: minu konverteeritud kapi 360 -vaade - sfääriline pilt - RICOH THETAHi, tahaksin alustuseks öelda, et see pimedate ruumide kujundus ei kehti kõigile. Teie kapp võib olla suurem, väiksem või kasutate vannitoa ruumi. Y
Odavad reduktorid väikeste robotite jaoks: 5 sammu (piltidega)
Odavad reduktorid väikeste robotite jaoks: vajate oma uusima väikese robotiprojekti jaoks väikeseid, võimsaid ja odavaid mootoreid? Avastasin need " N20 " Käigumootorid umbes aasta tagasi, töötades oma ProtoBoti projekti kallal. Need on väikesed, võimsad ja rikkalikud paljudest veebiallikatest. Sina
DIY radiaator väikeste transistoride jaoks: 6 sammu (piltidega)
DIY jahutusradiaator väikeste transistoride jaoks: siin on väike mini-juhendatav: kas soovite nende odavate TO-92 pakett-transistoride kaudu natuke rohkem voolu pigistada? Seejärel lisage väike metallist radiaator. Ma tegin selle PWM alalisvoolumootori draiveri jaoks, kuna mõned 2N2222 kahepolaarsed transistorid olid käepärased. See töötab
Väikeste robotite ehitamine: ühe kuuptollise mikro-sumoroboti valmistamine ja väiksemad: 5 sammu (piltidega)
Väikeste robotite ehitamine: ühe kuuptollise mikro-sumoroboti valmistamine ja väiksemad: Siin on mõned üksikasjad väikeste robotite ja ahelate ehitamise kohta. See juhend sisaldab ka mõningaid põhilisi näpunäiteid ja tehnikaid, mis on kasulikud igas suuruses robotite ehitamisel. Minu jaoks on elektroonika üks suuri väljakutseid näha, kui väike on