Orodha ya maudhui:

Kinasa Athari kwa Magari: Hatua 18 (na Picha)
Kinasa Athari kwa Magari: Hatua 18 (na Picha)

Video: Kinasa Athari kwa Magari: Hatua 18 (na Picha)

Video: Kinasa Athari kwa Magari: Hatua 18 (na Picha)
Video: VIDEO;MREMBO AKIFANYA NA CHUPA YA FANTA 2024, Novemba
Anonim
Kinasa Athari kwa Magari
Kinasa Athari kwa Magari

Kirekodi cha Athari kimeundwa kurekodi athari zinazoendelea kwa gari wakati wa kuendesha au kusimama. Athari zinahifadhiwa kwenye hifadhidata kwa njia ya usomaji na video / picha. Kwa mtumiaji wa kijijini anayeathiri anaweza kuhakikiwa kwa wakati halisi, na mtumiaji wa mbali anaweza kutazama video iliyohifadhiwa au kufikia kijijini kamera ya pi na kutazama hafla ipasavyo..

Hatua ya 1: Sehemu na Vifaa

(1) Raspberry Pi 3 au bora: Nguvu za kiufundi zinahitajika

(2) Kofia ya akili ya Raspberry pi

(3) kamera ya Raspberry pi / kamera ya Usb

(4) Kadi ya kumbukumbu na picha ya hivi karibuni ya wasagaji (Inapaswa kuunga mkono node nyekundu, karibu kila picha ya hivi karibuni haina)

(5) Ugavi wa umeme angalau-2.1 (nimetumia benki ya betri kwa operesheni ya pekee katika gari)

Hatua ya 2: Maelezo ya Sehemu: Kofia ya Sense

Maelezo ya Sehemu: Kofia ya Sense
Maelezo ya Sehemu: Kofia ya Sense

Sense HAT ina tumbo la 8 × 8 RGB ya LED, kitufe cha vitufe vitano na inajumuisha sensorer zifuatazo:

  • Gyroscope
  • Accelerometer
  • Magnetometer
  • Joto
  • Barometri
  • shinikizo
  • Unyevu

Habari zaidi juu ya kufanya kazi na kofia ya akili inaweza kupatikana kutoka kwa viungo vifuatavyo: Sense_Hat

API ya kofia ya akili inashikiliwa kwa: Sense_hat_API

Nambari ya programu ya kofia ya hisia imefunikwa katika hatua za baadaye. Nambari ya kofia ya hisia inaweza pia kuigwa kwenye simulator iliyowekwa kwenye: Sense-kofia simulator

Hatua ya 3: Kukusanyika: Kinasa Athari

Kukusanyika: Kinasa Athari
Kukusanyika: Kinasa Athari
Kukusanyika: Kinasa Athari
Kukusanyika: Kinasa Athari
Kukusanyika: Kinasa Athari
Kukusanyika: Kinasa Athari
Kukusanyika: Kinasa Athari
Kukusanyika: Kinasa Athari
  • Kukusanyika ni rahisi kwani kofia ya busara inahitaji kuwekwa juu ya pi (bolts zilizowekwa zilizowekwa hutolewa na kofia ya busara).
  • Kamera ya USB au kamera ya pi inaweza kushikamana. Katika mafunzo, kamera ya pi inachukuliwa na upachikaji ipasavyo hufanywa sawa.
  • Ingiza kadi ya kumbukumbu na usanidi msimbo wa chatu na nodi-nyekundu (usanidi na nambari imefunikwa kwa hatua zaidi)

Picha hapo juu inaonyesha pi-kamera iliyounganishwa kupitia kebo ya Ribbon gorofa hadi pi

Hatua ya 4: Kukusanyika: Kirekodi cha Athari kwenye Bodi ya Gari ya Dash

Kukusanyika: Kirekodi cha Athari kwenye Bodi ya Gari ya Dash
Kukusanyika: Kirekodi cha Athari kwenye Bodi ya Gari ya Dash

Kwa kuweka kinasa sauti, nimetumia mkanda wenye pande mbili, faida ni kinasa sauti kuhamishwa kwa urahisi katika nafasi tofauti, yoyote inayofaa gari lako.

Kamera zaidi imewekwa kwa wima kama inavyoonyeshwa, kwa kutumia mkanda sawa wa pande mbili, Ifuatayo katika mstari ni kuunganisha chanzo cha umeme (10, 000 mAH bank bank) pamoja na unganisho la mtandao tayari

Uunganisho wa mtandao utahitajika kwa matumizi ya MQTT (maelezo ya MQTT yamefunikwa katika hatua zaidi)

Hatua ya 5: Recoder ya Athari: Kufanya kazi na Matumizi

Kutoka kwa kofia ya akili, kuongeza kasi na gyroscope hutumiwa kuangalia ikiwa maadili mabichi ni zaidi ya kikomo kilichowekwa katika msimbo.

Accelerometer: Accelerometer inaelezea kiwango cha nguvu ya uvutano (G-nguvu) inayofanya kazi kwa kila mhimili wa x, y & z, ikiwa mhimili wowote unapima zaidi ya nguvu ya 1G, kuliko mwendo wa haraka unaweza kugunduliwa. (tafadhali kumbuka mhimili unaoelekea chini ungekuwa na thamani ya 1g na inahitaji kuzingatiwa ipasavyo katika nambari ya chatu).

Gyroscope; Gyroscope hutumiwa kupima mwendo wa angular, kwa mfano wakati wa zamu kali sensor inaweza kuamilishwa (inategemea mpangilio wa nambari), kwa hivyo mtu anayezungusha gari kwa kasi atakamatwa !!

Uanzishaji wowote wa kikomo cha kuweka pia huonyeshwa kwenye kofia ya hisia ya tumbo la LED kama "!" nyekundu kwa kuongeza kasi na kijani kibichi kwa uanzishaji wa gyroscope

Hatua ya 6: Maelezo ya Programu: Node Red

Node-RED ni zana ya programu inayotegemea mtiririko, iliyoundwa mapema na Huduma ya Teknolojia inayoibuka ya IBM na sasa ni sehemu ya JS Foundation.

Habari zaidi juu ya node nyekundu inaweza kupatikana kupitia kiunga kifuatacho: node-nyekundu

Kwa upande wetu tungetumia node -red kwa shughuli zifuatazo

(1) Kuingiliana na viunga vya kufurahisha kuanza kazi za kamera

(2) Kufuatilia athari kwenye gari na kupeleka habari kwa mtumiaji wa mwisho kwa kutumia MQTT na kukubali zaidi maagizo ya mtumiaji wa mwisho kupitia MQTT na kuanza programu inayofaa kwenye pi

(3) Kufanya vitu kadhaa vya msingi kama kuzima kwa pi

Hatua zaidi hutoa habari ya kina kwa mchoro wa mtiririko uliotekelezwa kwenye node-nyekundu

Tafadhali kumbuka michoro ya mtiririko-nyekundu inaingiliana na nambari ya chatu, kwa hivyo sehemu ya mwisho inashughulikia mambo ya msimbo wa chatu

Hatua ya 7: Misingi Nyekundu-msingi

Misingi Nyekundu-nyekundu
Misingi Nyekundu-nyekundu
Misingi Nyekundu-nyekundu
Misingi Nyekundu-nyekundu
Misingi Nyekundu-nyekundu
Misingi Nyekundu-nyekundu

Hatua kadhaa za Msingi zimeangaziwa kuanza Node-nyekundu kwa mwangaza, lakini ndiyo node-nyekundu ni rahisi sana kuanza na kushughulikia programu.

  • Kuanzia Node-nyekundu: https:// localhost: 1880.
  • Kuanzia Node-nyekundu wakati pi imeunganishwa kwenye mtandao https:// ip anwani>: 1880

Hatua ya 8: Node-nyekundu: Mtiririko _1a

Nyekundu-nyekundu: Mtiririko _1a
Nyekundu-nyekundu: Mtiririko _1a

Mtiririko _1a, unafuatilia mabadiliko yoyote kwenye faili ya CSV na kwa msingi wa mabadiliko, yaani athari iliyogunduliwa, kurekodi video ya kamera imewekwa kwenye hali na zaidi mtumiaji anaarifiwa kupitia mtandao kuwa athari imetokea

Hatua ya 9: Node Nyekundu: Flow_1b

Node Nyekundu: Flow_1b
Node Nyekundu: Flow_1b

Katika mtiririko huo, kurekodi video kunaweza kuanza wakati wowote kwa kubonyeza tu fimbo ya furaha

Hatua ya 10: Node Nyekundu: Flow_2a

Node Nyekundu: Mtiririko_2a
Node Nyekundu: Mtiririko_2a

Katika mtiririko huo, wakati wowote picha au video mpya inapohifadhiwa / kupakiwa kwenye saraka habari hiyo hupelekwa kwa mtumiaji aliyesajiliwa kupitia mtandao

Hatua ya 11: Node Nyekundu: Flow_2b

Node Nyekundu: Mtiririko_2b
Node Nyekundu: Mtiririko_2b

Mtiririko huu umeundwa kwa asili kwa mtumiaji wa mbali, ili kudhibiti kifaa kwa njia ifuatayo

(a) kifaa cha kuzima

(b) kupiga picha

(c) Rekodi video

(d) anza nambari kuu (nambari ya hifadhidata ni nambari kuu ambayo huhesabu athari)

Hatua ya 12: Node Nyekundu; Mtiririko_3

Node Nyekundu; Mtiririko_3
Node Nyekundu; Mtiririko_3

Mtiririko umeundwa kwa ufikiaji wa ndani, ili kuanza nambari kuu au kifaa cha kuzima

Hatua ya 13: MQTT

MQTT (Ujumbe wa Usafirishaji wa Telemetry ya Ujumbe) ni itifaki ya TCP / IP, ambayo mchapishaji na mteja huingiliana.

Kwa upande wetu Pi ni mchapishaji, wakati programu iliyosanikishwa kwenye moblile / PC yetu itakuwa mteja.

Kwa njia hii juu ya kizazi cha athari yoyote, habari hupelekwa mbali kwa mtumiaji (unganisho la mtandao linalofanya kazi ni lazima)

Habari zaidi kuhusu MQTT inaweza kupatikana kutoka kwa kiunga kifuatacho: MQTT

Ili kuanza kutumia MQTT, tunahitaji kujiandikisha kwanza, kwa mafunzo ambayo nimetumia cloudmqtt (www.cloudmqtt.com), kuna mpango wa bure chini ya "paka mzuri", hiyo ni yote.

Baada ya kusajili tengeneza mfano sema "pi" baada ya hapo utakuwa unapata maelezo yafuatayo

  • Jina la seva
  • bandari
  • jina la mtumiaji
  • nywila

Hapo juu inahitajika wakati unasajili kupitia simu / pc

Kwa programu yangu, nimetumia programu ya MQTT kutoka duka la kucheza la google (toleo la Android)

Hatua ya 14: MQTT: Msajili

MQTT: Msajili
MQTT: Msajili

Programu ya MQTT inayoendesha kwenye rununu (toleo la Android)

Athari iliyogunduliwa kwenye pi inarejeshwa nyuma

Hatua ya 15: MQTT: Kuhariri Mali katika Node-nyekundu

MQTT: Kuhariri Mali katika Node-nyekundu
MQTT: Kuhariri Mali katika Node-nyekundu

Katika node-nyekundu baada ya kuchagua nodi ya MQTT, "Jina la seva" na "mada" itakayotajwa. Hii inapaswa kuwa sawa kwa mwisho wa mteja

Hatua ya 16: Nambari ya Python:

Utendaji wa nambari ni kama ilivyo kwa chati ya mtiririko

Hatua ya 17: Nambari ya Mwisho

Nambari ya chatu imeambatishwa

Ili kufanya hati yetu ya chatu iendeshwe kutoka kwa terminal, tunahitaji kuifanya iweze kutekelezwa kama chmod + x datalogger.py, kuliko zaidi juu ya nambari inapaswa kuwa na laini ifuatayo ya "shebang" #! / usr / bin / python3 (hii inahitajika ili kutekeleza kazi kutoka kwa node-nyekundu)

#! / usr / bin /

hisia = SenseHat ()

kuagiza csv

timestamp = wakati wa saa. sasa ()

kuchelewesha = 5 // kuchelewa hufafanuliwa kuhifadhi data katika data.csv faili nyekundu = (255, 0, 0) kijani = (0, 255, 0) manjano = (255, 255, 0)

# GPIO.setmode (GPIO. BCM)

Kuanzisha # GPIO (17, GPIO. OUT)

def kupata_sense_impact ():

sense_impact = acc = sense.get_accelerometer_raw () sense_impact.append (acc ["x"]) sense_impact.append (acc ["y"]) sense_impact.append (acc ["z"])

gyro = hisia.get_gyroscope_raw ()

sense_impact.append (gyro ["x"]) sense_impact.append (gyro ["y"]) sense_impact.append (gyro ["z"])

kurudi sense_impact

def impact (): // kazi ya kugundua athari # GPIO.setmode (GPIO. BCM) # GPIO.setup (4, GPIO. OUT) kuongeza kasi = sense.get_accelerometer_raw () x = kuongeza kasi ['x'] y = kuongeza kasi ['y'] z = kuongeza kasi ['z'] x = abs (x) y = abs (y) z = abs (z)

gyro = hisia.get_gyroscope_raw ()

gyrox = gyro ["x"] gyroy = gyro ["y"] gyroz = gyro ["z"]

gyrox = pande zote (gyrox, 2)

gyroy = pande zote (gyroy, 2) gyroz = pande zote (gyroz, 2)

athari = kupata_sense_impact ()

ikiwa x> 1.5 au y> 1.5 au z> 1.5: // maadili yamewekwa baada ya iteration kwenye barabara halisi inaweza kubadilishwa ipasavyo kwa aina tofauti na ujuzi wa kuendesha gari kwa wazi ('impact.csv', 'w', newline = ' ') kama f: data_writer = mwandishi (f) data_writer.writerow ([' acc x ',' acc y ',' acc z ',' gyro x ',' gyro y ',' gyro z ']) #GPIO. pato (4, GPIO. HIGH) hisia.safi () hisia.show_letter ("!", nyekundu) data_writer.writerow (athari)

elif gyrox> 1.5 au gyroy> 1.5 au gyroz> 1.5: // maadili yamewekwa kuangalia kasi ambayo zamu huanzishwa na wazi ('impact.csv', 'w', newline = ") kama f: data_writer = mwandishi (f) mwandishi_wa mwandishi.writerow (['acc x', 'acc y', 'acc z', 'gyro x', 'gyro y', 'gyro z']) # GPIO.output (4, GPIO. HIGH) sense. clear () sense.show_letter ("!", Green) data_writer.writerow (athari)

mwingine:

Pato la # GPIO (4, GPIO. LOW) hisia safi ()

def get_sense_data (): // kazi ya kurekodi na kuhifadhi maadili kutoka kwa sensor sens_data =

data_data.tumia (sense.get_temperature ()) sense_data.append (sense.get_pressure ()) sense_data.append (sense.get_ humidity ())

mwelekeo = hisia.pata_maelekeo ()

akili_data.ongeza (mwelekeo ["yaw"]) sense_data.append (mwelekeo ["lami"]) sense_data.append (mwelekeo ["roll"])

acc = hisia.pata_accelerometer_raw ()

sense_data.append (acc ["x"]) sense_data.append (acc ["y"]) sense_data.append (acc ["z"]) mag = sense.get_compass_raw () sense_data.append (mag ["x"] data_data.append (mag ["y"]) sense_data.append (mag ["z"])

gyro = hisia.get_gyroscope_raw ()

sense_data.append (gyro ["x"]) sense_data.append (gyro ["y"]) sense_data.append (gyro ["z"])

hisia_data.append (datetime.now ())

kurudi sense_data

na open ('data.csv', 'w', newline = ) kama f:

data_writer = mwandishi (f)

mtunzi wa data.writerow (['temp', 'pres', 'hum', 'yaw', 'lami', 'roll', 'acc x', 'acc y', 'acc z', 'mag x', ' mag y ',' mag z ',' gyro x ',' gyro y ',' gyro z ',' wakati wa muda '])

wakati Kweli:

chapa (get_sense_data ()) kwa hafla kwa maana.stick.get_events (): # Angalia ikiwa starehe ilibanwa ikiwa event.action == "imebanwa": # Angalia ni mwelekeo upi ikiwa event.direction == "up": # sense.show_letter ("U") # Kuongeza mshale juu = sense.get_accelerometer_raw () x = kuongeza kasi ['x'] y = kuongeza kasi ['y'] z = kuongeza kasi ['z'] x = pande zote (x, 0) y = pande zote (y, 0) z = pande zote (z, 0)

# Sasisha mzunguko wa onyesho kulingana na njia ipi if x == -1: sense.set_rotation (90) elif y == 1: sense.set_rotation (270) elif y == -1: sense.set_rotation (180 maana nyingine: sense.set_rotation (0) sense. clear () t = sense.get_temperature () t = round (t, 1) message = "T:" + str (t) sense.show_message (message, text_colour = red, scroll_speed = 0.09) elif event.direction == "down": kuongeza kasi = sense.get_accelerometer_raw () x = kuongeza kasi ['x'] y = kuongeza kasi ['y'] z = kuongeza kasi ['z'] x = pande zote (x, 0) y = pande zote (y, 0) z = pande zote (z, 0)

# Sasisha mzunguko wa onyesho kulingana na njia ipi if x == -1: sense.set_rotation (90) elif y == 1: sense.set_rotation (270) elif y == -1: sense.set_rotation (180) kingine: sense.set_rotation (0) # sense.show_letter ("D") # Swala la chini la mshale. wazi () h = hisia.pata unyevu) (h) pande zote (h, 1) ujumbe = "H:" + str (h) hisia.show_message (message, text_colour = green, scroll_speed = 0.09) p = sense.get_pressure () p = round (p, 1) message = "P:" + str (p) sense.show_message (message, text_colour = manjano, scroll_speed = 0.09)

Tukio la # elif. mwelekeo == "kushoto":

kuongeza kasi, 0) # z = pande zote (z, 0)

# Sasisha kuzunguka kwa onyesho kulingana na njia ipi // Haitumiwi na kudhibitiwa na node-nyekundu #if x == -1: sense.set_rotation (90) #elif y == 1: sense.set_rotation (270) #elif y == -1: sense.set_rotation (180) #else: sense.set_rotation (0) # sense.show_letter ("L") # Mshale wa kushoto # tukio la_Dififti ("K") # Mshale wa kulia # elif event.direction == "katikati": # sense.clear ()

athari ()

data = pata_sense_data ()

dt = data [-1] - muhuri wa muda ikiwa dt.seconds> kuchelewa: data_writer.writerow (data) timestamp = datetime.now ()

Hatua ya 18: Kufuatilia Video ya Moja kwa Moja

Kirekodi cha Athari pia kinaweza kutumiwa kufuatilia video ya moja kwa moja, kwani video inaweza kuanza wakati wowote mahali popote kupitia MQTT

tungetumia kichezaji cha VLC kutiririsha video, kwa chaguo-msingi katika raspbian ya hivi karibuni VLC imewekwa mapema, vingine sakinisha vlc kama ilivyo chini

Habari zaidi juu ya kutazama mkondo wa mtandao inaweza kupatikana kupitia mkondo wa Mtandao wa VLC

Asante kwa kusoma !!

Kuna mengi zaidi ambayo kinasa kumbukumbu kinaweza kufanya..

Angalia nafasi inayofuata ya uchambuzi wa uwanja wa sumaku katika kutekeleza ramani ya kikwazo

Ilipendekeza: