Orodha ya maudhui:
- Hatua ya 1: Sehemu na Vifaa
- Hatua ya 2: Maelezo ya Sehemu: Kofia ya Sense
- Hatua ya 3: Kukusanyika: Kinasa Athari
- Hatua ya 4: Kukusanyika: Kirekodi cha Athari kwenye Bodi ya Gari ya Dash
- Hatua ya 5: Recoder ya Athari: Kufanya kazi na Matumizi
- Hatua ya 6: Maelezo ya Programu: Node Red
- Hatua ya 7: Misingi Nyekundu-msingi
- Hatua ya 8: Node-nyekundu: Mtiririko _1a
- Hatua ya 9: Node Nyekundu: Flow_1b
- Hatua ya 10: Node Nyekundu: Flow_2a
- Hatua ya 11: Node Nyekundu: Flow_2b
- Hatua ya 12: Node Nyekundu; Mtiririko_3
- Hatua ya 13: MQTT
- Hatua ya 14: MQTT: Msajili
- Hatua ya 15: MQTT: Kuhariri Mali katika Node-nyekundu
- Hatua ya 16: Nambari ya Python:
- Hatua ya 17: Nambari ya Mwisho
- Hatua ya 18: Kufuatilia Video ya Moja kwa Moja
Video: Kinasa Athari kwa Magari: Hatua 18 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
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
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 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
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
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
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
Katika mtiririko huo, kurekodi video kunaweza kuanza wakati wowote kwa kubonyeza tu fimbo ya furaha
Hatua ya 10: Node Nyekundu: Flow_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
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
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
Programu ya MQTT inayoendesha kwenye rununu (toleo la Android)
Athari iliyogunduliwa kwenye pi inarejeshwa nyuma
Hatua ya 15: 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:
Kasi ya Upepo na Kinasa Mionzi ya jua: Hatua 3 (na Picha)
Kasi ya Upepo na Rekodi ya Mionzi ya jua: Ninahitaji kurekodi kasi ya upepo na nguvu ya mionzi ya jua (umeme) ili kutathmini ni nguvu ngapi inaweza kutolewa na turbine ya upepo na / au paneli za jua. Nitapima kwa mwaka mmoja, kuchambua data na kisha ubuni mfumo wa gridi mbali
Betri ya DIY Inayoendeshwa kwa Njia ya kupita juu kwa Athari za Gitaa: Hatua 5
Bidii ya DIY Inayoendeshwa kwa Baiskeli ya Kuendesha gari kwa Athari za Gitaa: Kwa kupenda muziki au kupenda vifaa vya elektroniki, lengo la Agizo hili ni kuonyesha jinsi muhimu SLG88104V Rail to Rail I / O 375nA Quad OpAmp na nguvu zake za chini na maendeleo ya chini ya voltage. inaweza kuwa kuleta mapinduzi kwenye nyaya za kupita kiasi. Ty
Kinasa cha kucheza na Raspberry Pi: Hatua 7 (na Picha)
Kirekodi cha kucheza na Raspberry Pi: Halo kila mtu, Kwa maelezo haya ninaelezea jinsi nilivyotengeneza kinasa cha kucheza tena kutumia Raspberry Pi. Kifaa hicho ni mfano wa Raspberry Pi B +, na vifungo 7 vya kushinikiza juu, spika imeunganishwa kwenye moja ya bandari za Pi, na kipaza sauti iliyounganishwa na nyingine
Fanya Magari yako ya RC Mashtuko Mafupi kwa Ushughulikiaji Bora kwa Kasi ya Juu: Hatua 5
Fanya Mashindano ya Magari yako ya RC kuwa Mafupi kwa Ushughulikiaji Mzuri kwa Kasi ya Juu: Katika hii Inayoweza kufundishwa nitakuonyesha jinsi ya kufupisha mshtuko wako ili uweze kuleta gari lako karibu na ardhi ili uweze kuchukua kasi kubwa na kupiga nje. nyingine inayoweza kufundishwa juu ya jinsi ya kufanya matengenezo kwa mshtuko wa magari yako hivyo
12v kwa USB Adapter 12v hadi 5v Transformer (nzuri kwa Magari): 6 Hatua
12v kwa Adapter ya USB 12v hadi 5v Transformer (nzuri kwa Magari): Hii itakuonyesha jinsi ya kutengeneza adapta ya 12v kwa USB (5v). Matumizi dhahiri ya hii ni kwa adapta za gari 12v, lakini mahali popote unapo 12v unaweza kuitumia! Ikiwa unahitaji 5v kwa kitu kingine chochote isipokuwa USB, ruka tu hatua kuhusu kuongeza bandari za USB