Talaan ng mga Nilalaman:

Epekto ng Recorder para sa Mga Sasakyan: 18 Hakbang (na may Mga Larawan)
Epekto ng Recorder para sa Mga Sasakyan: 18 Hakbang (na may Mga Larawan)

Video: Epekto ng Recorder para sa Mga Sasakyan: 18 Hakbang (na may Mga Larawan)

Video: Epekto ng Recorder para sa Mga Sasakyan: 18 Hakbang (na may Mga Larawan)
Video: DR. VICKI BELO's TRANSFORMATION💖🤩#vickibelo #doctor #transformation #viral #trending 2024, Nobyembre
Anonim
Epekto ng Recorder para sa Mga Sasakyan
Epekto ng Recorder para sa Mga Sasakyan

Ang Impact Recorder ay idinisenyo upang maitala ang epekto na napapanatili sa sasakyan habang nagmamaneho o nakatigil. Ang mga epekto ay nakaimbak sa database sa anyo ng mga pagbasa pati na rin ang video / larawan. Ang epekto ng remote na gumagamit ay maaaring ma-verify sa real time, at ang remote na gumagamit ay maaaring panoorin ang nai-save na video o kumuha ng malayuang pag-access sa pi camera at panoorin ang mga kaganapan nang naaayon.

Hakbang 1: Mga Bahagi at Kagamitan

(1) Raspberry Pi 3 o mas mabuti: Kinakailangan ang lakas sa computational

(2) Ang sumbrero ng raspberry pi

(3) Raspberry pi camera / Usb camera

(4) Memory card na may pinakabagong imahe ng raspbian (Dapat suportahan ang pulang node, halos bawat pinakabagong imahe ay)

(5) supply ng kuryente ng hindi bababa sa 2.1 A (nagamit ko ang banko ng baterya para sa standalone na operasyon sa kotse)

Hakbang 2: Mga Bahagi ng Paglalarawan: Sense Hat

Mga Paglalarawan ng Mga Bahagi: Sense Hat
Mga Paglalarawan ng Mga Bahagi: Sense Hat

Ang Sense HAT ay may 8 × 8 RGB LED matrix, isang limang-button na joystick at may kasamang mga sumusunod na sensor:

  • Gyroscope
  • Accelerometer
  • Magnetnet
  • Temperatura
  • Barometric
  • presyon
  • Humidity

Ang karagdagang impormasyon sa pagtatrabaho sa sense hat ay maaaring makuha mula sa mga sumusunod na link: Sense_Hat

Ang API para sa sense hat ay naka-host sa: Sense_hat_API

Ang code para sa sense-hat program ay sakop sa mga susunod na hakbang. Ang sense code ng sumbrero ay maaari ding gayahin sa isang simulator na naka-host sa: Sense-hat simulator

Hakbang 3: Pagtitipon: Recorder ng Epekto

Pagtitipon: Recorder ng Epekto
Pagtitipon: Recorder ng Epekto
Pagtitipon: Recorder ng Epekto
Pagtitipon: Recorder ng Epekto
Pagtitipon: Recorder ng Epekto
Pagtitipon: Recorder ng Epekto
Pagtitipon: Recorder ng Epekto
Pagtitipon: Recorder ng Epekto
  • Ang pagpupulong ay mas simple dahil ang sense hat ay kailangang isinalansan sa pi (ang itinalagang mga mounting bolts ay binibigyan ng sense hat).
  • Maaaring kumonekta ang USB camera o pi camera. Sa tutorial, ang pi camera ay isinasaalang-alang at naaayon ang coding ay isinasagawa para sa pareho.
  • Ipasok ang memory card at i-configure ang python code at node -red (ang pagsasaayos at code ay sakop sa karagdagang mga hakbang)

Ipinapakita ng larawan sa itaas ang pi-camera na konektado sa pamamagitan ng flat ribbon cable hanggang pi

Hakbang 4: Assembling: Epekto ng Recorder sa Dash Board of Car

Pagtitipon: Recorder ng Epekto sa Dash Board of Car
Pagtitipon: Recorder ng Epekto sa Dash Board of Car

Para sa pag-mount ng recorder, gumamit ako ng double sided tape, ang bentahe ng recorder ay maaaring madaling ilipat sa iba't ibang posisyon, alinman ang nababagay sa iyong sasakyan.

Ang karagdagang camera ay naka-mount patayo tulad ng ipinakita, gamit ang parehong dobleng tape sa gilid, Susunod na linya ay upang ikonekta ang isang mapagkukunan ng kapangyarihan (10, 000 mAH power bank) kasama ang isang handa na koneksyon sa internet

Kailangan ng koneksyon sa Internet para sa aplikasyon ng MQTT (ang mga detalye para sa MQTT ay sakop sa mga karagdagang hakbang)

Hakbang 5: Recoder ng Epekto: Nagtatrabaho at Mga Aplikasyon

Mula sa sense hat, acceleration at gyroscope ay ginagamit upang suriin kung ang mga hilaw na halaga ay lampas sa itinakdang limitasyon sa code.

Accelerometer: Sinasabi ng accelerometer ang dami ng puwersang gravitational (G-force) na kumikilos sa bawat axis ng x, y & z, kung ang anumang axis ay sumusukat ng higit sa 1G puwersa, kaysa sa mabilis na paggalaw ay maaaring makita. (mangyaring tandaan ang axis na tumuturo pababa ay magkakaroon ng 1g halaga at kailangang isaalang-alang nang naaayon sa python code).

Gyroscope; Ginagamit ang gyroscope upang sukatin ang anggulo ng paggalaw, ibig sabihin sa panahon ng matalim na pagliko ay maaaring maaktibo ang sensor (nakasalalay sa setting sa code), kaya't ang isang tao ay mahigpit na umikot sa sasakyan na mahuli !!

Ang anumang pag-aktibo ng itinakdang limitasyon ay ipinapakita din sa sense hat LED matrix bilang "!" sa pula para sa pagpapabilis at berde para sa pag-activate ng gyroscope

Hakbang 6: Paglalarawan ng Software: Node Red

Ang Node-RED ay isang tool na batay sa daloy ng programa, na orihinal na binuo ng IBM's Emerging Technology Servicesteam at ngayon ay isang bahagi ng JS Foundation.

Ang karagdagang impormasyon tungkol sa node red ay maaaring makuha sa pamamagitan ng sumusunod na link: node-red

Para sa aming kaso gagamit kami ng node -red para sa mga sumusunod na aktibidad

(1) Nakikipag-ugnay sa mga joystick upang simulan ang mga pagpapaandar ng camera

(2) Pagsubaybay sa mga epekto sa sasakyan at pagpapasa ng impormasyon sa pagtatapos ng gumagamit sa pamamagitan ng paggamit ng MQTT at karagdagang pagtanggap ng mga end user command sa pamamagitan ng MQTT at pagsisimula ng kinakailangang aplikasyon sa pi

(3) Pagsasagawa ng ilang pangunahing mga bagay-bagay tulad ng pag-shutdown ng pi

Ang mga karagdagang hakbang ay nagbibigay ng detalyadong impormasyon para sa daloy ng diagram na ipinatupad sa node-red

Mangyaring tandaan na ang mga node-red flow diagram ay nakikipag-ugnay sa code ng sawa, samakatuwid ay sumasaklaw sa huling bahagi ang mga aspeto ng code ng python

Hakbang 7: Mga Pangunahing Kaalaman sa node-red

Mga Pangunahing Kaalaman sa node-red
Mga Pangunahing Kaalaman sa node-red
Mga Pangunahing Kaalaman sa node-red
Mga Pangunahing Kaalaman sa node-red
Mga Pangunahing Kaalaman sa node-red
Mga Pangunahing Kaalaman sa node-red

Ang ilang mga Pangunahing hakbang ay nai-highlight upang simulan ang Node-red sa isang flash, ngunit oo ang node-red ay masyadong simple upang magsimula at mag-ehersisyo ang mga application.

  • Simula sa Node-red: https:// localhost: 1880.
  • Simula ng Node-red kapag ang pi ay konektado sa internet https:// ip address>: 1880

Hakbang 8: Node-red: Daloy _1a

Node-red: Daloy _1a
Node-red: Daloy _1a

Ang Daloy _1a, sinusubaybayan ang anumang mga pagbabago sa CSV file at batay sa mga pagbabago, nakita ang epekto, ang pagrekord ng video ng camera ay nakatakda sa mode at higit na nabatid ang gumagamit sa internet na may naganap na epekto

Hakbang 9: Node Red: Flow_1b

Node Red: Flow_1b
Node Red: Flow_1b

Sa nasabing daloy, ang pag-record ng video ay maaaring masimulan sa anumang punto sa pamamagitan lamang ng pagpindot sa joystick

Hakbang 10: Node Red: Flow_2a

Node Red: Daloy_2a
Node Red: Daloy_2a

Sa nasabing daloy, tuwing anumang bagong larawan o video ay naimbak / na-upload sa direktoryo ang impormasyon ay naipapadala sa nakarehistrong gumagamit sa internet

Hakbang 11: Node Red: Flow_2b

Node Red: Flow_2b
Node Red: Flow_2b

Ang daloy na ito ay paunang idinisenyo para sa remote na gumagamit, upang makontrol ang aparato sa sumusunod na pamamaraan

(a) shutdown device

(b) kumuha ng litrato

(c) Mag-record ng mga video

(d) simulan ang pangunahing code (ang datalogger code ay ang pangunahing code na kinakalkula ang epekto)

Hakbang 12: Node Red; Daloy_3

Node Red; Daloy_3
Node Red; Daloy_3

Ang daloy ay dinisenyo para sa lokal na pag-access, upang masimulan ang pangunahing code o shutdown na aparato

Hakbang 13: MQTT

Ang MQTT (Message Queuing Telemetry Transport) ay isang TCP / IP protocol, kung saan nakikipag-ugnay ang publisher at subscriber.

Sa aming kaso si Pi ay publisher, samantalang ang application na naka-install sa aming moblile / PC ay ang magiging subscriber.

Sa ganitong paraan sa pagbuo ng anumang epekto, maihatid ang impormasyon nang malayuan sa gumagamit (dapat na gumana ang isang koneksyon sa internet)

Higit pang impormasyon tungkol sa MQTT ay maaaring ma-access mula sa sumusunod na link: MQTT

Upang simulang gamitin ang MQTT, kailangan muna naming magparehistro, para sa tutorial na ginamit ko cloudmqtt (www.cloudmqtt.com), mayroong isang libreng plano sa ilalim ng "cute na pusa", iyon lang lahat.

Pagkatapos ng pagrehistro lumikha ng isang halimbawa sabihin ang "pi" kung saan pagkatapos ay makakakuha ka ng mga sumusunod na detalye

  • Pangalan ng server
  • daungan
  • username
  • password

Kinakailangan ang nasa itaas habang nag-subscribe sa pamamagitan ng mobile / pc

Para sa aking aplikasyon, gumamit ako ng application na MQTT mula sa google play store (bersyon ng Android)

Hakbang 14: MQTT: Subscriber

MQTT: Subscriber
MQTT: Subscriber

Tumatakbo ang application na MQTT sa mobile (bersyon ng Android)

Ang epekto na napansin sa pi ay naibabalik muli

Hakbang 15: MQTT: Pag-edit ng Mga Katangian sa Node-red

MQTT: Pag-edit ng Mga Katangian sa Node-red
MQTT: Pag-edit ng Mga Katangian sa Node-red

Sa node-red pagkatapos piliin ang MQTT node, "Pangalan ng server" at "paksa" na nabanggit. Ito ay dapat na pareho sa pagtatapos ng subscriber

Hakbang 16: Ang Python Code:

Ang pag-andar ng code ay ayon sa bawat naka-attach na flowchart

Hakbang 17: Ang Pangwakas na Code

Nakalakip ang code ng sawa

Upang mapatakbo ang aming script ng python mula sa terminal, kailangan namin itong maisakatuparan bilang chmod + x datalogger.py, kaysa sa karagdagang tuktok ng code ay dapat maglaman ng sumusunod na "shebang" na linya #! / usr / bin / python3 (kinakailangan ito upang maisagawa ang mga pagpapaandar mula sa node-red)

#! / usr / bin / python3 // shebang linefrom sense_hat import SenseHat mula sa datime import datime mula sa csv import na manunulat na i-import ang RPi. GPIO bilang GPIO mula sa pag-import ng oras sa pagtulog

sense = SenseHat ()

i-import ang csv

timestamp = datetime.now ()

antala = 5 // pagkaantala ay tinukoy upang mag-imbak ng data sa data.csv file pula = (255, 0, 0) berde = (0, 255, 0) dilaw = (255, 255, 0)

# GPIO.setmode (GPIO. BCM)

# GPIO.setup (17, GPIO. OUT)

def get_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 = sense.get_gyroscope_raw ()

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

bumalik kahulugan_impact

def impact (): // function to detect impact # GPIO.setmode (GPIO. BCM) # GPIO.setup (4, GPIO. OUT) acceleration = sense.get_accelerometer_raw () x = acceleration ['x'] y = acceleration ['y'] z = pagpabilis ['z'] x = abs (x) y = abs (y) z = abs (z)

gyro = sense.get_gyroscope_raw ()

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

gyrox = bilog (gyrox, 2)

gyroy = bilog (gyroy, 2) gyroz = bilog (gyroz, 2)

epekto = get_sense_impact ()

kung x> 1.5 o y> 1.5 o z> 1.5: // ang mga halaga ay itinakda pagkatapos ng pag-ulit sa aktwal na kalsada ay maaaring mabago nang naaayon para sa iba't ibang mga uri at kasanayan sa pagmamaneho na may bukas ('impact.csv', 'w', newline = ' ') bilang f: data_writer = manunulat (f) data_writer.writerow ([' acc x ',' acc y ',' acc z ',' gyro x ',' gyro y ',' gyro z ']) #GPIO. output (4, GPIO. HIGH) sense.clear () sense.show_letter ("!", pula) data_writer.writerow (epekto)

elif gyrox> 1.5 o gyroy> 1.5 o gyroz> 1.5: // ang mga halaga ay nakatakda sa pagtingin sa bilis kung saan ang pagliko ay pinasimulan ng bukas ('impact.csv', 'w', newline = '') bilang f: data_writer = manunulat (f) data_writer.writerow (['acc x', 'acc y', 'acc z', 'gyro x', 'gyro y', 'gyro z']) # GPIO.output (4, GPIO. TAAS) sense.clear () sense.show_letter ("!", Berde) data_writer.writerow (epekto)

iba pa:

# GPIO.output (4, GPIO. LOW) sense. Malinaw ()

def get_sense_data (): // function upang maitala at maiimbak ang mga halaga mula sa sensor sense_data =

sense_data.append (sense.get_temperature ()) sense_data.append (sense.get_pressure ()) sense_data.append (sense.get_humidity ())

oryentasyon = sense.get_orientation ()

sense_data.append (orientation ["yaw"]) sense_data.append (orientation ["pitch"]) sense_data.append (orientation ["roll"])

acc = sense.get_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"]) sense_data.append (mag ["y"]) sense_data.append (mag ["z"])

gyro = sense.get_gyroscope_raw ()

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

sense_data.append (datetime.now ())

bumalik sense_data

na may bukas ('data.csv', 'w', newline = '') bilang f:

data_writer = manunulat (f)

data_writer.writerow (['temp', 'pres', 'hum', 'yaw', 'pitch', 'roll', 'acc x', 'acc y', 'acc z', 'mag x', ' mag y ',' mag z ',' gyro x ',' gyro y ',' gyro z ',' datime '])

habang Totoo:

i-print (get_sense_data ()) para sa kaganapan sa sense.stick.get_events (): # Suriin kung ang joystick ay pinindot kung event.action == "pinindot": # Suriin kung aling direksyon kung event.direction == "up": # sense.show_letter ("U") # Up arrow acceleration = sense.get_accelerometer_raw () x = acceleration ['x'] y = acceleration ['y'] z = acceleration ['z'] x = bilog (x, 0) y = bilog (y, 0) z = bilog (z, 0)

# I-update ang pag-ikot ng display depende sa kung aling paraan pataas ng kung 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.clear () t = sense.get_temperature () t = bilog (t, 1) mensahe = "T:" + str (t) sense.show_message (mensahe, text_colour = pula, scroll_speed = 0.09) elif event.direction == "down": acceleration = sense.get_accelerometer_raw () x = acceleration ['x'] y = acceleration ['y'] z = acceleration ['z'] x = bilog (x, 0) y = bilog (y, 0) z = bilog (z, 0)

# I-update ang pag-ikot ng display depende sa kung aling paraan ang kung 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 ("D") # Down arrow sense.clear () h = sense.get_humidity () h = bilog (h, 1) mensahe = "H:" + str (h) sense.show_message (mensahe, text_colour = berde, scroll_speed = 0.09) p = sense.get_pressure () p = bilog (p, 1) mensahe = "P:" + str (p) sense.show_message (mensahe, text_colour = dilaw, scroll_speed = 0.09)

# elif event.direction == "kaliwa":

# acceleration = sense.get_accelerometer_raw () # x = acceleration ['x'] #y = acceleration ['y'] #z = acceleration ['z'] # x = bilog (x, 0) # y = bilog (y, 0) # z = bilog (z, 0)

# I-update ang pag-ikot ng display depende sa kung aling paraan ang // Hindi ginagamit at kinokontrol ng node-red #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") # Left arrow # elif event.direction == "kanan": # sense.show_letter ("K") # Kanang arrow # elif event.direction == "gitna": # sense.clear ()

epekto ()

data = get_sense_data ()

dt = data [-1] - timestamp kung dt.seconds> antala: data_writer.writerow (data) timestamp = datime.now ()

Hakbang 18: Pagsubaybay sa Live na Video

Maaari ding magamit ang Recorder ng Epekto upang subaybayan ang live na video, dahil ang video ay maaaring masimulan anumang oras kahit saan sa pamamagitan ng MQTT

gagamitin namin ang VLC player upang mag-stream ng mga video, bilang default sa pinakabagong raspbian na ang VLC ay paunang naka-install, kung hindi man i-install ang vlc sa ilalim

Higit pang impormasyon tungkol sa pagtingin sa stream ng network ay maaaring ma-access sa pamamagitan ng VLC Network stream

Salamat sa pagbabasa!!

Marami pang magagawa ang recorder ng epekto..

Panoorin ang susunod na puwang para sa pagsusuri ng magnetikong patlang sa pagsasagawa ng pagma-map ng balakid

Inirerekumendang: