Mündəricat:
- Təchizat
- Addım 1: Dövrə və Pi -ni gücləndirin
- Addım 2: MPU6050
- Addım 3: Adafruit Ultimate Breakout GPS
- Addım 4: 16x2 LCD
- Addım 5: Servo, Ledlər, Düymə və Açar
- Addım 6: Tam Dövrə
- Addım 7: Kod
- Addım 8: Verilənlər bazası
- Addım 9: Dava
Video: Kiçik Mağazalar üçün iz və iz: 9 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Bu, qısa müddətli tədarüklər üçün e-velosipedlərə və ya e-skuterlərə bağlanmalı olan kiçik mağazalar üçün hazırlanmış bir sistemdir, məsələn, xəmir çatdırmaq istəyən bir çörək.
Track and Trace nə deməkdir?
Track və iz daşınması zamanı bağlamaların və ya maddələr hərəkət qeyd daşıyıcıları və ya kuryer şirkətlər tərəfindən istifadə edilən bir sistemdir. Hər bir emal yerində mallar müəyyən edilir və məlumatları mərkəzi emal sisteminə ötürür. Bu məlumatlar daha sonra yükləyicilərə malların yerini statusu/yeniləməsi vermək üçün istifadə olunur.
Yaratacağımız sistem, alınan marşrutu, alınan zərbələrin və zərbələrin miqdarını da göstərəcək.
Qeyd: bu bir məktəb layihəsi üçün hazırlanmışdır, buna görə də vaxt məhdudiyyəti səbəbindən təkmilləşdirmə üçün çox yer var
Təchizat
-Raspberry Pi 4 model B
-Moruq PI T ayaqqabı
-4x3, 7V Li-ion batareyaları
-2 dəfə ikiqat batareya tutacağı
-DC Buck 5-dən aşağıya endirən çevirici
-2x böyük narıncı led
-açma/söndürmə/açma
-düymə
-adafruit ultimate gps v3
-mpu 6050
-16x2 lcd ekran
-servo motor
Addım 1: Dövrə və Pi -ni gücləndirin
Dövrə pi -ni bir batareya ilə gücləndirməyə gəldikdə, bunu necə edəcəyinizə dair bir neçə seçiminiz var.
Bir güc bankından istifadə edə və pi-ni USB vasitəsilə gücləndirə bilərsiniz, bəlkə də cihazı USB portu olan bir e-velosipedə və ya e-skuterə quraşdırırsınız, bəlkə də 5V telefon batareyası var və ya istifadə etməyi gözləyir. 3.7V batareya dəsti, şəkillərdə göstərildiyi kimi aşağıya doğru çeviriciyə paralel olaraq
Davamlı bir 5V təmin edə biləcəyi və xoşbəxt bir ömrü olduğu müddətcə hər şey yaxşıdır.
Addım 2: MPU6050
Giriş MPU6050 sensor modulu, 6 oxlu bir hərəkət izləmə cihazıdır.
- 3 eksenli giroskop, 3 oxlu akselerometr, rəqəmsal hərəkət prosessoru və temperatur sensoru var, hamısı tək bir IC-də.
- I2C ünsiyyətindən istifadə edərək müəyyən qeydlərin ünvanlarından dəyərləri oxumaqla müxtəlif parametrləri tapmaq olar. X, Y və Z oxları boyunca giroskop və akselerometr oxunması 2 -nin tamamlayıcı formasında mövcuddur.
- Jiroskop oxunuşları saniyədə dərəcə (dps) birimidir; Akselerometr oxunuşları g vahidindədir.
I2C -nin aktivləşdirilməsi
Bir Raspberry Pi ilə MPU6050 istifadə edərkən, Raspberry Pi üzərindəki I2C protokolunun açıldığından əmin olmalıyıq.
- "sudo raspi-config" yazın
- Interfacing Configurations seçin
- Interfacing seçimində "I2C" seçin
- I2C konfiqurasiyasını aktiv edin
- Yenidən başlatmaq istədikdə Bəli seçin.
İndi, i2c alətlərini quraşdıraraq Raspberry Pi lövhəmizə qoşulmuş hər hansı bir I2C cihazını sınaya/taraya bilərik. Apt paket menecerindən istifadə edərək i2c vasitələrini əldə edə bilərik. Raspberry Pi terminalında aşağıdakı əmrdən istifadə edin.
"sudo apt-get install -y i2c-tools"
İndi hər hansı bir I2C əsaslı cihazı istifadəçi rejimi portuna qoşun və aşağıdakı əmri istifadə edərək portu tarayın, "sudo i2cdetect -y 1"
Sonra cihaz ünvanı ilə cavab verəcəkdir.
Heç bir ünvan geri qaytarılmırsa, MPU6050 -nin düzgün bağlandığından əmin olun və yenidən cəhd edin
İşə düzəltmək
i2c-nin aktiv olduğuna və pi-nin MPU6050-ə çata biləcəyinə əmin olduğumuza görə "sudo pip3 install adafruit-circuitpython-mpu6050" əmrindən istifadə edərək kitabxana quracağıq.
Bir python test faylı hazırlasaq və aşağıdakı kodu istifadə etsək, işlədiyini görə bilərik:
idxal vaxtı
idxal lövhəsi
idxal busi
oimport adafruit_mpu6050
i2c = busio. I2C (board. SCL, board. SDA)
MPU = adafruit_mpu6050. MPU6050 (I2C)
Doğru halda:
çap ("Sürətləndirmə: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu.acceleration))
çap ("Gyro X: %. 2f, Y: %.2f, Z: %.2f dərəcə/s" %(mpu.gyro))
çap ("Temperatur: %.2f C" % mpu.temperatur)
çap ("")
vaxt.yuxu (1)
indi X/Y/Z oxunda sürətlənməni istədiyimiz zaman aşağıdakılardan istifadə edə bilərik:
accelX = mpu.acceleration [0] accelY = mpu.acceleration [1] accelZ = mpu.acceleration [2]
bunu daimi bir döngədə sadə if ifadəsi ilə birləşdirərək, səfərdəki zərbələrin miqdarını saya bilərik
Addım 3: Adafruit Ultimate Breakout GPS
Giriş
Yaranma, 66 kanalda 22 peyk izləyə bilən, əla yüksək həssaslıq qəbuledicisinə (-165 dB izləmə!) Və quraşdırılmış antenaya malik, heç bir mənası olmayan, yüksək keyfiyyətli GPS modulu olan MTK3339 çipsetinin ətrafında qurulmuşdur.. Yüksək sürət, yüksək həssaslıq qeydləri və ya izləmə üçün saniyədə 10 -a qədər yer yeniləməsi edə bilər. Güc istifadəsi inanılmaz dərəcədə aşağıdır, naviqasiya zamanı cəmi 20 mA.
Lövhə ilə birlikdə gəlir: ultra aşağı düşmə 3.3V tənzimləyicisi, buna görə də onu 3.3-5VDC gücündə, 5V səviyyəli təhlükəsiz girişlərlə təmin edə bilərsiniz, LED peyk axtararkən təxminən 1 Hz-də yanıb-sönür və düzəliş edildikdə hər 15 saniyədə bir yanıb-sönür. gücünü qoruduğu məlum oldu.
GPS -in arduino ilə yoxlanılması
Bir arduinoya girişiniz varsa, modulu onunla sınamaq yaxşı olar.
VIN -i +5V -ə qoşun
Sadəcə boş bir arduino kodu işlədin və 9600 baud üzərindəki seriyalı monitoru açın. GPS məlumatı alsanız gps modulunuz işləyir. Qeyd: modulunuz düzəliş əldə etməyibsə onu pəncərədən və ya çöldən bir terasa qoymağa çalışın.
İşə düzəltmək
"Sudo pip3 install adafruit-circuitpython-gps" əmrindən istifadə edərək adafruit gps kitabxanasının quraşdırılmasına başlayın.
İndi işləyə biləcəyimizi görmək üçün aşağıdakı python kodundan istifadə edə bilərik:
idxal vaxt idxal taxtası idxal busioimport adafruit_gpsimport serial uart = serial. Serial ("/dev/ttyS0", baudrate = 9600, zaman aşımı = 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)
Doğru halda:
gps.has_fix olmasa da gps.update ():
çap (gps.nmea_sentence) çap ('Düzəliş gözləyir …') gps.update () vaxt.yuxu (1) davam
print ('=' * 40) # Ayırıcı xətti yazdırın. çap et ('Enlem: {0:.6f} dərəcə'. format (gps.latitude)) çap et ('Boylam: {0:.6f} dərəcə'. format) (gps.longitude)) çap ("Fix quality: {}". format (gps.fix_quality))
# Enlem, boylam və zaman damğasından kənar bəzi atributlar isteğe bağlıdır və mövcud olmaya bilər. İstifadəyə başlamazdan əvvəl yox olduqlarını yoxlayın! Gps.satellites yoxsa:
çap ("# peyk: {}". format (gps.satellites))
gps.altitude_m heç biri deyilsə:
çap ("Hündürlük: {} metr". format (gps.altitude_m))
gps.speed_knots heç biri deyilsə:
çap ("Sürət: {} düyünlər". format (gps.speed_knots))
gps.track_angle_deg Yoxdursa:
çap ("İzləmə açısı: {} dərəcə". format (gps.track_angle_deg))
gps.horizontal_dilution Yoxdursa:
çap ("Yatay seyreltmə: {}". format (gps.horizontal_dilution))
gps.height_geoid Yoxdursa:
çap ("Boy coğrafi ID: {} metr". format (gps.height_geoid))
vaxt.yuxu (1)
Addım 4: 16x2 LCD
Giriş
LCD modulları çox çox ən əlaqədar layihələrdə istifadə olunur, səbəb onun ucuz qiymət, mövcudluğu və proqramçı dost olan. Çoxumuz gündəlik həyatımızda ya PCO -da, ya da kalkulyatorda bu ekranlara rast gələ bilərdik. 16 × 2 LCD belə adlandırılmışdır; 16 Sütun və 2 Satırdan ibarətdir. 8 × 1, 8 × 2, 10 × 2, 16 × 1 və s. Kimi bir çox kombinasiya mövcuddur, lakin ən çox istifadə edilən 16 × 2 LCD -dir. Belə ki, olacaq (16 × 2 = 32) cəmi 32 simvol və hər bir xarakter 5 × 8 Pixel Dots ediləcək.
Smbus quraşdırılır
Sistem Bus (smbus) I2C avtobus daha az və ya bir törəmə edir. Standart Intel tərəfindən hazırlanmış və hazırda SBS Forumu tərəfindən qorunur. SMBusun əsas tətbiqi PC anakartlarında və əlaqədar sistemlərdə kritik parametrləri izləməkdir. Məsələn, SMBus interfeysi olan bir çox təchizat gərginliyi monitoru, temperatur monitoru və fan monitoru/nəzarət IC -ləri mövcuddur.
İstifadə edəcəyimiz kitabxana smbus-un eyni zamanda quraşdırılmasını tələb edir. Smbus-ı rpi-yə yükləmək üçün "sudo apt install python3-smbus" əmrindən istifadə edin.
İşə düzəltmək
əvvəlcə "sudo pip3 install RPLCD" əmrindən istifadə edərək RPLCD kitabxanasını quraşdırın.
İndi aşağıdakı kodu istifadə edərək ipi göstərərək LCD -ni sınayırıq:
RPLCD.i2c idxal CharLCDimport yuvasından
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 () ip_adresini qaytarın
lcd = CharLCD ('PCF8574', 0x27)
lcd.write_string ('IP ünvanı: / r / n'+str (get_ip_address ()))
Addım 5: Servo, Ledlər, Düymə və Açar
Giriş
Bir servo motor, adi bir motorda olmayan bucaq mövqeyi, sürətləndirmə və sürət baxımından dəqiq bir idarə etməyə imkan verən fırlanan bir aktuator və ya motordur. Daimi bir mühərrikdən istifadə edir və mövqe rəyləri üçün bir sensorla birləşdirir. xüsusi məqsəd üçün nəzərdə tutulmuşdur kimi nəzarətçi, servo motor ən inkişaf etmiş hissəsidir.
İşıq yayan diod üçün qısa LED. Elektrik cərəyanı keçəndə işıq yayan elektron yarımkeçirici cihaz. Közərmə lampalarına nisbətən daha səmərəlidirlər və nadir hallarda yanırlar. LEDlər düz ekranlı video ekranlar kimi bir çox tətbiqlərdə və getdikcə ümumi işıq mənbələri olaraq istifadə olunur.
Bir düymə və ya sadəcə bir düymə, bir maşının və ya prosesin bəzi aspektlərini idarə etmək üçün sadə bir keçid mexanizmidir. Düymələr ümumiyyətlə sərt materialdan, ümumiyyətlə plastikdən və ya metaldan hazırlanır.
Açma/söndürmə/açma düyməsinin 3 mövqeyi var ki, ortası qapalı vəziyyətdədir, bu tiplər əsasən irəli, söndürmə və tərs vəziyyətə malik olduğunuz sadə motor idarəçiliyində istifadə olunur.
İşə yaraması: servo
Servo, PWM siqnalından istifadə edərək, bizim üçün hansı açının olması lazım olduğunu müəyyən etmək üçün GPIO bu xüsusiyyətə malikdir. Buna görə də servo idarə etmək üçün aşağıdakı kodu istifadə edə bilərik: RPi. GPIO -nu GPIOimport zamanı olaraq idxal edin.
servo_pin = 18duty_cycle = 7.5
GPIO.setmode (GPIO. BCM)
GPIO. quraşdırma (servo_pin, GPIO. OUT)
pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (duty_cycle)
Doğru halda:
duty_cycle = float (giriş ("Vəzifə Dövrünə daxil olun (Soldan = 5 -dən Sağa = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)
İşə salmaq: led və keçid
Ledləri və keçidləri bağladığımıza görə, LED -ləri idarə etməyə və oxumağa və özünü dəyişdirməyə ehtiyacımız yoxdur. Sadəcə düymənin ifritə siqnallarını istədiyimiz ledə yönləndirəcəyik.
İşə salmaq: düymə
Düymə üçün öz sadə sinifimizi elə quracağıq ki, hər dəfə istifadə etdiyimiz zaman bir hadisə əlavə etmədən ona bir hadisə əlavə etmədən onu basıldığında asanlıqla görə bilərik. Aşağıdakı kodu istifadə edərək classbutton.py faylını düzəldəcəyik:
RPi idxal GPIOclass Düyməsindən:
def _init _ (self, pin, bouncetime = 200): self.pin = pin self.bouncetime = bouncetime GPIO.setmode (GPIO. BCM) GPIO.setup (pin, GPIO. IN, GPIO. PUD_UP)@mülkiyyət def basıldı (özünü):
ingedrukt = GPIO.input (self.pin) qaytarılması ingedrukt deyil
def on_press (özünü, zəng üsulu):
GPIO.add_event_detect (self.pin, GPIO. FALLING, call_method, bouncetime = self.bouncetime)
def on_release (özünü, zəng üsulu):
GPIO.add_event_detect (self.pin, GPIO. RISING, call_method, bouncetime = self.bouncetime)
Addım 6: Tam Dövrə
İndi bütün komponentləri keçdikdən sonra hamısını birləşdirmə vaxtı gəldi.
Şəkillərdə komponentlərin çörək taxtasındakı hər şeyi göstərdiyi göstərilsə də lcd, adafruit GPS və dişi ilə kişi tellərinə bağlanmaq daha yaxşıdır. Yalnız çörək taxtasında t-cobbler və mpu6050 var. flaş çubuqlarına və sükan çubuğuna çata biləcəyinizə əmin olmaq üçün daha uzun tellərdən istifadə edin.
Addım 7: Kod
Bu təlimatı təmiz saxlamaq üçün həm backend, həm də frontend faylları olan bir github anbarı təqdim etdim. Sadəcə faylları/var/www/html qovluğunda və backend qovluğundakı faylları/home/qovluğunda yerləşdirin. [istifadəçi adı]/[qovluq adı] qovluğu
Addım 8: Verilənlər bazası
Bu sistemin qurulma üsulundan ötəri, verilənlər bazasındakı məhsulların siyahısını istifadə edərək qurulmuş sadə bir web mağazası var, üstəlik burada qeyd olunan bütün yol nöqtələri və sifarişlər var. növbəti addım
Addım 9: Dava
Elektronikanın işini bildikdən sonra onları bir qutuya yığa bilərik, bununla da bir az yaradıcı azadlıq əldə edə bilərsiniz, tikməzdən əvvəl, məsələn, boş taxıl qutusu kimi artıq ehtiyacınız olmayan karton qutunu götürün və kəsin, bantlayın. Çantanı bir kağız üzərində ölçün və çəkin və taxta kimi daha möhkəm bir materialdan düzəldin və ya bu sizin işiniz deyilsə 3d çap edin. Sadəcə bütün elektronikanın içəriyə və düyməniz, açara gedən tel, ledlər və lcd üçün deşikləriniz var. Vəziyənizi bir dəfə velosipedinizə və ya skuterinizə bağlamaq üçün bir yol tapmağınız kifayətdir.
Tövsiyə:
Kiçik Skee-Ball Oyunu üçün avtomatik qol: 10 addım (şəkillərlə)
Kiçik Skee-Ball Oyunu üçün Avtomatik Qol: Evdə hazırlanan Skee-Ball oyunları bütün ailə üçün çox əyləncəli ola bilər, lakin onların çatışmazlığı həmişə avtomatik qolun olmamasıdır. Əvvəllər oyun toplarını skanlara əsaslanaraq ayrı kanallara yuvarlayan bir Skee-Ball maşını qurmuşdum
Barkodlardan istifadə edərək EXCEL -dən MAĞAZALAR, QÜCMƏLƏR VƏ XİDMƏT MƏRKƏZLƏRİ ÜÇÜN POS SİSTEMİ: 7 Adım
Barkodlardan istifadə edərək EXCELDƏN MAĞAZALAR, GROCERIES və XİDMƏT MƏRKƏZLƏRİ ÜÇÜN POS SİSTEMİ: Kiçik mağazalar və xidmət mərkəzləri üçün sadə bir POS (satış nöqtəsi) sisteminin necə yaradılacağını sizə təqdim edirəm. Bu üsulla xüsusi proqram və ya bahalı avadanlıq olmadan aşağıdakı imkanları idarə edə bilərsiniz. v Məsələ
Super Kiçik Arduino Uyğun İdarə Heyətindən istifadə edən Kiçik Siqnal Sistemi!: 10 addım
Super Kiçik Arduino Uyğun İdarə Heyətindən istifadə edən Kiçik Siqnal Sistemi !: Salam, bu gün kiçik bir sərin layihə hazırlayacağıq. Özü ilə qarşısındakı bir cisim arasındakı məsafəni ölçən kiçik bir siqnalizasiya cihazı quracağıq. Və obyekt müəyyən bir məsafəni keçdikdə, cihaz sizə bu barədə məlumat verəcək
Kiçik Robotların Tikintisi: Bir Kübik İnç Mikro Sumo Robotu və Kiçik edilməsi: 5 Addım (Şəkillərlə birlikdə)
Kiçik Robotlar Yaratmaq: Bir Kübik İnç Mikro-Sumo Robotu və Kiçik edilməsi: Kiçik robotlar və sxemlərin qurulması ilə bağlı bəzi detallar. Bu təlimat, hər hansı bir ölçüdə robot qurmaqda faydalı olan bəzi əsas məsləhət və texnikaları da əhatə edəcək.Mənim üçün elektronikada ən böyük problemlərdən biri nə qədər kiçik olduğunu görməkdir
Çox Kiçik Bir Robot Yarat: Bir Tutucu ilə Dünyanın Ən Kiçik Təkərli Robotunu Hazırla: 9 Addım (Şəkillərlə)
Çox Kiçik Bir Robot Yarat: Bir Tutucu ilə Dünyanın Ən Kiçik Təkərli Robotunu hazırla: Kiçik əşyaları götürə və hərəkət etdirə bilən 1/20 kub düymlük bir robot tutacaqla qur. Picaxe mikro nəzarətçisi tərəfindən idarə olunur. Bu anda dünyanın ən kiçik təkərli robotu ola biləcəyinə inanıram. Bu heç şübhəsiz ki