Агуулгын хүснэгт:

Жижиг дэлгүүрүүдийг хайх, мөрдөх: 9 алхам (зурагтай)
Жижиг дэлгүүрүүдийг хайх, мөрдөх: 9 алхам (зурагтай)

Видео: Жижиг дэлгүүрүүдийг хайх, мөрдөх: 9 алхам (зурагтай)

Видео: Жижиг дэлгүүрүүдийг хайх, мөрдөх: 9 алхам (зурагтай)
Видео: 🎶 ДИМАШ "ОПЕРА 2". История выступления и анализ успеха | Dimash "Opera 2" 2024, Арваннэгдүгээр
Anonim
Жижиг дэлгүүрүүдийг хайж олох
Жижиг дэлгүүрүүдийг хайж олох

Энэ бол богино унадаг дугуй эсвэл цахим скутер дээр суурилуулах ёстой жижиг дэлгүүрүүдэд зориулагдсан систем юм.

Track and Trace гэдэг нь юу гэсэн үг вэ?

Track and trace нь тээвэрлэлтийн явцад илгээмж, эд зүйлсийн хөдөлгөөнийг бүртгэх зорилгоор тээвэрлэгч эсвэл шуудан зөөгч компаниудын ашигладаг систем юм. Боловсруулах байршил бүрт барааг тодорхойлж, төв боловсруулалтын системд мэдээлэл дамжуулдаг. Дараа нь энэ өгөгдлийг ачаа илгээгчдэд барааны байршлын статус/шинэчлэлтийг өгөхөд ашигладаг.

Бидний хийх систем нь явсан зам, авсан цохилт, овойлтын хэмжээг харуулах болно. Энэ заавар нь танд бөөрөлзгөнө pi, python, mysql -ийн талаар анхан шатны мэдлэгтэй болно.

Тэмдэглэл: энэ нь сургуулийн төсөлд зориулагдсан тул цаг хугацаа хязгаарлагдмал байгаа тул сайжруулах зүйл их байна

Хангамж

-Raspberry Pi 4 загвар Б

-Бөөрөлзгөнө PI т гуталчин

-4x3, 7V лити-ион батерей

-2х давхар батерей эзэмшигч

-DC Buck Step-down Converter 5v

-2x том улбар шар өнгийн LED

-асаах/унтраах/унтраах

-товчлуур

-adafruit ultimate gps v3

-mpu6050

-16x2 LCD дэлгэцтэй

-серватор мотор

Алхам 1: Хэлхээ ба Пи -ийг тэжээх

Circuit ба Pi -ийг тэжээх
Circuit ба Pi -ийг тэжээх
Circuit ба Pi -ийг тэжээх
Circuit ба Pi -ийг тэжээх

Пи хэлхээг батерейгаар тэжээх тухайд танд үүнийг хийх хэд хэдэн сонголт байна.

Та powerbank ашиглаж, пи-г USB-ээр тэжээж болно, магадгүй та төхөөрөмжийг USB порт бүхий цахим унадаг дугуй эсвэл мотортой төхөөрөмж дээр холбож байгаа байх, магадгүй танд 5В утасны батерей ашиглагдахыг хүлээж байна, эсвэл та 2 ашиглаж болно. 3.7В батерейны багц нь зурган дээр үзүүлсэн шиг хөрвүүлэгчтэй хамт доошоо бууна

5V -ийг тасралтгүй хангаж, амьдралынхаа туршид сэтгэл хангалуун байвал бүх зүйл сайхан болно.

Алхам 2: MPU6050

MPU6050
MPU6050

MPU6050 мэдрэгч модуль нь 6 тэнхлэгтэй хөдөлгөөн хянах төхөөрөмж юм.

  • Энэ нь 3 тэнхлэгтэй гироскоп, 3 тэнхлэгтэй акселерометр, дижитал хөдөлгөөнт процессор, температур мэдрэгчтэй бөгөөд бүгд нэг IC дээр байрладаг.
  • I2C холболтыг ашиглан тодорхой регистрүүдийн хаягаас утгыг унших замаар янз бүрийн параметрүүдийг олж болно. Гироскоп ба акселерометрийн заалтыг X, Y, Z тэнхлэгийн дагуу 2 -ийн нэмэлт хэлбэрээр авах боломжтой.
  • Гироскопын уншилт нь секундэд градус (dps) нэгжээр; Акселерометрийн заалтыг g нэгжээр авна.

I2C -ийг идэвхжүүлж байна

Raspberry Pi -тэй MPU6050 -ийг ашиглахдаа Raspberry Pi дээрх I2C протоколыг асаасан байх ёстой.

  1. "sudo raspi-config" гэж бичнэ үү.
  2. Interfacing Configurations -ийг сонгоно уу
  3. Interfacing сонголтоос "I2C" -ийг сонгоно уу.
  4. I2C тохиргоог идэвхжүүлнэ үү
  5. Дахин ачаалахыг хүсэхэд Тийм гэж сонгоно уу.

Одоо бид Raspberry Pi самбарт холбогдсон дурын I2C төхөөрөмжийг i2c хэрэгслүүдийг суулгаж турших/скан хийх боломжтой боллоо. Бид apt багцын менежер ашиглан i2c хэрэгслүүдийг авах боломжтой. Raspberry Pi терминал дээр дараах тушаалыг ашиглана уу.

"sudo apt-get install -y i2c-tools"

Одоо I2C дээр суурилсан аливаа төхөөрөмжийг хэрэглэгчийн горимын порт руу холбож, дараах тушаалыг ашиглан уг портыг сканнердах хэрэгтэй.

"sudo i2cdetect -y 1"

Дараа нь төхөөрөмжийн хаягаар хариу өгөх болно.

Хаягийг буцааж өгөхгүй бол MPU6050 -ийг зөв холбосон эсэхийг шалгаад дахин оролдоно уу

Үүнийг ажиллуулж байна

i2c идэвхжсэн бөгөөд pi нь MPU6050-д хүрч чадна гэдэгт итгэлтэй байгаа бол бид "sudo pip3 install adafruit-circuitpython-mpu6050" командыг ашиглан номын сан суулгах гэж байна.

Хэрэв бид python тест файл хийж дараах кодыг ашиглавал энэ нь ажиллаж байгаа эсэхийг харах болно.

импортлох хугацаа

импортын самбар

автобус импортлох

oimport adafruit_mpu6050

i2c = busio. I2C (board. SCL, board. SDA)

MPU = adafruit_mpu6050. MPU6050 (i2c)

үнэн байхад:

хэвлэх ("Хурдатгал: X: %. 2f, Y: %.2f, Z: %.2f m/s^2" %(mpu.acceleration))

хэвлэх ("Gyro X: %. 2f, Y: %.2f, Z: %.2f градус/сек" %(mpu.gyro))

хэвлэх ("Температур: %.2f C" % mpu.temature)

хэвлэх ("")

цаг унтах (1)

бид одоо X/Y/Z тэнхлэгт хурдасгахыг хүсч байгаа бол бид дараахь зүйлийг ашиглаж болно.

accelX = mpu.acceleration [0] accelY = mpu.acceleration [1] accelZ = mpu.acceleration [2]

Хэрэв үүнийг тогтмол давталтын энгийн if хэллэгтэй хослуулбал бид аялалд гарсан цочролын хэмжээг тоолж чадна

Алхам 3: Adafruit Ultimate Breakout GPS

Adafruit Ultimate Breakout GPS
Adafruit Ultimate Breakout GPS

Танилцуулга

Энэ нь MTK3339 чипсет, ямар ч утгагүй, өндөр чанарын GPS модулийн эргэн тойронд баригдсан бөгөөд 66 суваг дээр 22 хиймэл дагуулыг хянах боломжтой, маш өндөр мэдрэмжтэй хүлээн авагчтай (-165 дБ хянах!), Антенд суурилагдсан.. Энэ нь секундэд 10 хүртэлх байршлын шинэчлэлтийг хийж, өндөр хурдтай, өндөр мэдрэмжтэй бүртгэл хийх эсвэл хянах боломжтой. Цахилгаан зарцуулалт нь маш бага, навигацийн үед ердөө 20 мА байна.

Удирдах зөвлөл нь маш бага уналт 3.3V зохицуулагчтай тул та 3.3-5VDC инч, 5V түвшний аюулгүй оролтоор тэжээх боломжтой, LED хиймэл дагуул хайж байхдаа 1 Гц орчим анивчиж, засвар хийх үед 15 секунд тутамд нэг удаа анивчдаг. хүчээ хэмнэдэг болох нь тогтоогдсон.

GPS -ийг arduino ашиглан туршиж байна

Хэрэв танд arduino -д нэвтрэх боломж байгаа бол модулийг түүнтэй туршиж үзэх нь зүйтэй юм.

VIN -ийг +5V -д холбох

Хоосон arduino кодыг ажиллуулаад 9600 baud дээр цуваа дэлгэцийг нээнэ үү. Хэрэв та GPS -ийн өгөгдлийг авбал таны gps модуль ажилладаг болно

Үүнийг ажиллуулж байна

"Sudo pip3 install adafruit-circuitpython-gps" командыг ашиглан adafruit gps номын санг суулгаж эхлээрэй.

Одоо бид үүнийг ажиллуулж чадах эсэхийг мэдэхийн тулд дараах питон кодыг ашиглаж болно.

импортын цаг импортын самбар импорт 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 ') gps.send_command (b'PMTK220, 1000')

үнэн байхад:

gps.has_fix биш байхад gps.update ():

хэвлэх (gps.nmea_sentence) хэвлэх ('Засахыг хүлээж байна …') gps.update () цаг. унтах (1) үргэлжлүүлэх

хэвлэх ('=' * 40) # Тусгаарлагч мөрийг хэвлэх (gps.longitude)) хэвлэх ("Чанарыг засах: {}". формат (gps.fix_quality))

# Өргөрөг, уртраг, цагийн тэмдгээс гадуурх зарим шинж чанарууд нь заавал байх ёстой бөгөөд байхгүй байж магадгүй юм. Хэрэв gps.satellites байхгүй бол ашиглахыг оролдохын өмнө тэдгээр нь байхгүй эсэхийг шалгаарай.

хэвлэх ("# хиймэл дагуул: {}". формат (gps.satellites))

gps.altitude_m байхгүй бол:

хэвлэх ("Өндөр: {} метр". формат (gps.altitude_m))

Хэрэв gps.speed_knots байхгүй бол:

хэвлэх ("Хурд: {} зангилаа". формат (gps.speed_knots))

Хэрэв gps.track_angle_deg байхгүй бол:

хэвлэх ("Дамжуулах өнцөг: {} градус". формат (gps.track_angle_deg))

gps.horizontal_dilution нь байхгүй бол:

хэвлэх ("Хэвтээ шингэрүүлэлт: {}". формат (gps.horizontal_dilution))

Хэрэв gps.height_geoid байхгүй бол:

хэвлэх ("Өндөр гео ID: {} метр". формат (gps.height_geoid))

цаг унтах (1)

Алхам 4: 16x2 хэмжээтэй LCD дэлгэц

16x2 LCD дэлгэцтэй
16x2 LCD дэлгэцтэй

Танилцуулга

LCD модулийг ихэнх суулгагдсан төслүүдэд ихэвчлэн ашигладаг бөгөөд үүний шалтгаан нь хямд үнэ, хүртээмж, програмистад ээлтэй байдал юм. Бидний ихэнх нь PCO эсвэл тооцоолуур дээр өдөр тутмын амьдралдаа эдгээр дэлгэцтэй тааралддаг байсан. 16 × 2 LCD -ийг ингэж нэрлэдэг, учир нь; Энэ нь 16 багана, 2 мөртэй. 8 × 1, 8 × 2, 10 × 2, 16 × 1 гэх мэт олон хослолууд байдаг боловч хамгийн их ашигладаг нь 16 × 2 LCD юм. Тиймээс, энэ нь нийтдээ (16 × 2 = 32) 32 тэмдэгт байх бөгөөд тэмдэгт бүрийг 5 × 8 пиксел цэгээс бүрдүүлэх болно.

Smbus суулгаж байна

Системийн удирдлагын автобус (SMBus) нь I2C автобусны дериватив юм. Энэхүү стандартыг Intel боловсруулсан бөгөөд одоо SBS форумд хадгалж байгаа бөгөөд SMBus -ийн гол хэрэглээ нь PC эх хавтан болон суулгагдсан систем дэх чухал параметрүүдийг хянах явдал юм. Жишээлбэл, SMBus интерфейстэй маш олон тэжээлийн хүчдэлийн хяналт, температурын хяналт, сэнсний хяналт/хяналтын IC байдаг.

Бидний ашиглах номын санд smbus-ийг суулгасан байх шаардлагатай. Rbus дээр smbus суулгахын тулд "sudo apt install python3-smbus" командыг ашиглана уу.

Үүнийг ажиллуулж байна

Эхлээд "sudo pip3 install RPLCD" командыг ашиглан RPLCD номын санг суулгаарай.

Одоо бид дараах кодыг ашиглан ip -ийг харуулснаар lcd -ийг туршиж байна.

RPLCD.i2c -ээс 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 () ip_address -ийг буцаана.

lcd = CharLCD ('PCF8574', 0x27)

lcd.write_string ('IP хаяг: / r / n'+str (get_ip_address ()))

Алхам 5: Servo, Leds, Button and Switch

Servo, Leds, Button and Switch
Servo, Leds, Button and Switch

Танилцуулга

Серво мотор бол ердийн хөдөлгүүрт байдаггүй өнцгийн байрлал, хурдатгал, хурд зэргийг нарийвчлан хянах боломжийг олгодог эргэлтэт хөдөлгүүр эсвэл хөдөлгүүр юм. Энэ нь ердийн моторыг ашигладаг бөгөөд байрлалын талаархи санал хүсэлтийг мэдрэгчтэй хослуулдаг. Хяналт нь тусгай зориулалтын зориулалттай тул servo моторын хамгийн боловсронгуй хэсэг юм.

Гэрэл ялгаруулдаг диодын богино LED. Цахилгаан гүйдэл дамжин өнгөрөх үед гэрэл ялгаруулдаг электрон хагас дамжуулагч төхөөрөмж. Эдгээр нь улайсдаг чийдэнгээс хамаагүй илүү үр дүнтэй бөгөөд шатах нь ховор байдаг. LED-ийг хавтгай дэлгэцтэй видео дэлгэц гэх мэт олон програмд ашигладаг бөгөөд гэрлийн ерөнхий эх үүсвэр болгон ашигладаг.

Товчлуур эсвэл энгийн товчлуур нь машин эсвэл процессын зарим талыг хянах энгийн шилжих механизм юм. Товчнууд нь ихэвчлэн хатуу материалаар хийгдсэн бөгөөд ихэвчлэн хуванцар эсвэл металлаар хийгдсэн байдаг.

Асаах/унтраах/унтраах унтраалга нь 3 байрлалтай бөгөөд дунд нь унтраалттай байгаа бөгөөд эдгээр төрлүүд нь ихэвчлэн урагш, унтраасан, урвуу төлөвтэй энгийн моторын хяналтанд ашиглагддаг.

Үүнийг ажиллуулах: servo

Энэхүү servo нь PWM дохиог ашиглан ямар өнцөг байх ёстойг тодорхойлдог бөгөөд энэ нь бидний хувьд GPIO -д суурилсан онцлог шинж чанартай тул бид дараах кодыг ашиглан servo -ийг удирдах боломжтой болно: RPi. GPIO -ийг GPIO импортын цаг болгон импортлох.

servo_pin = 18duty_cycle = 7.5

GPIO.setmode (GPIO. BCM)

GPIO. тохиргоо (servo_pin, GPIO. OUT)

pwm_servo = GPIO. PWM (servo_pin, 50) pwm_servo.start (duty_cycle)

үнэн байхад:

duty_cycle = float (оролт ("Duty Cycle оруулна уу (Зүүн = 5 -аас баруун тийш = 10):")) pwm_servo. ChangeDutyCycle (duty_cycle)

Үүнийг ажиллуулах: хөтөч ба унтраалга

Лед болон унтраалгыг утастай болгосонтой холбогдуулан бид LED -ийг хянах, унших, өөрөө солих шаардлагагүй бөгөөд товчлуурын шулам руу лугшилт илгээдэг бөгөөд энэ нь дохиог бидний хүссэн гэрлүү чиглүүлэх болно.

Үүнийг ажиллуулах: товчлуур

Товчлуурын хувьд бид өөрсдийн энгийн ангиллыг хийх бөгөөд ингэснээр бид үүнийг ашиглах бүрдээ үйл явдал илрүүлэх шаардлагагүй бөгөөд үүнийг дарах үед үүнийг хялбархан харж болно. Бид classbutton.py файлыг дараах кодыг ашиглан хийх болно.

RPi импортын GPIOclass товчлуураас:

def _init _ (self, pin, bouncetime = 200): self.pin = pin self.bouncetime = bouncetime GPIO.setmode (GPIO. BCM) GPIO.setup (pin, GPIO. IN, GPIO. PUD_UP)@өмч def дарагдсан (өөрөө):

ingedrukt = GPIO.input (self.pin) буцах нь ingedrukt биш

def on_press (өөрөө, дуудлагын арга):

GPIO.add_event_detect (self.pin, GPIO. FALLING, call_method, bouncetime = self.bouncetime)

def on_release (өөрөө, дуудлага хийх арга):

GPIO.add_event_detect (self.pin, GPIO. RISING, call_method, bouncetime = self.bouncetime)

Алхам 6: Бүрэн тойрог

Бүрэн тойрог
Бүрэн тойрог
Бүрэн тойрог
Бүрэн тойрог

Одоо бид бүх бүрэлдэхүүн хэсгүүдийг судалж үзээд бүгдийг нь нэгтгэх цаг болжээ.

Зураг дээр бүрэлдэхүүн хэсгүүд нь талхны самбар дээр байгаа бүх зүйлийг харуулдаг болохыг харуулж байгаа боловч lcd, adafruit GPS, товчлуурыг эмэгтэй утсаар холбосон байх нь илүү дээр юм. Илүү урт утсыг ашиглан анивчуулагч ба жолооны хүрдэнд хүрч чадна.

Алхам 7: Код

Энэхүү зааварчилгааг цэвэр байлгахын тулд би github репозиторыг арын болон урд талын файлуудын аль алинаар нь хангаж өгсөн болно. Ердөө л/var/www/html фолдерын урд талын фолдерт, арын хавтсан дахь файлуудыг/home/доторх фолдерт байрлуул. [хэрэглэгчийн нэр]/[хавтасны нэр] фолдер

Алхам 8: Мэдээллийн сан

Мэдээллийн сан
Мэдээллийн сан

Энэ системийг хэрхэн яаж тохируулж байгаагаас шалтгаалан мэдээллийн бааз дахь бүтээгдэхүүний жагсаалтыг ашиглан энгийн вэб дэлгүүр байгуулдаг бөгөөд эндээс бид бүх цэгүүд болон захиалгуудыг хадгалсан байдаг. Үүсгэх скриптийг github репозитороос холбоос дээрээс олж болно. дараагийн алхам

Алхам 9: Кейс

Тохиолдол
Тохиолдол

Цахилгаан хэрэгслийн ажлыг мэдсэний дараа бид тэдгээрийг хайрцагт хийж болно, үүнд бүтээлчээр хандах эрх чөлөөг авч болно, үүнийг бүтээхээсээ өмнө хоосон үр тарианы хайрцаг шиг хэрэггүй болсон цаасан хайрцгийг аваад хайчилж ав. Та дуртай зүйлээ авах хүртлээ нугалж аваарай. Цаасан дээр авдар зурж, мод гэх мэт илүү бат бөх материалаар хий. Танд товчлуур, унтраалга руу залгах утас, LED, lcd байна. Нэгэнт та өөрийн хэргийг хийсэн бол дугуй эсвэл скутер дээрээ угсрах аргыг хайж олоход л болно.

Зөвлөмж болгож буй: