Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bahagi at Kagamitan
- Hakbang 2: Mga Bahagi ng Paglalarawan: Sense Hat
- Hakbang 3: Pagtitipon: Recorder ng Epekto
- Hakbang 4: Assembling: Epekto ng Recorder sa Dash Board of Car
- Hakbang 5: Recoder ng Epekto: Nagtatrabaho at Mga Aplikasyon
- Hakbang 6: Paglalarawan ng Software: Node Red
- Hakbang 7: Mga Pangunahing Kaalaman sa node-red
- Hakbang 8: Node-red: Daloy _1a
- Hakbang 9: Node Red: Flow_1b
- Hakbang 10: Node Red: Flow_2a
- Hakbang 11: Node Red: Flow_2b
- Hakbang 12: Node Red; Daloy_3
- Hakbang 13: MQTT
- Hakbang 14: MQTT: Subscriber
- Hakbang 15: MQTT: Pag-edit ng Mga Katangian sa Node-red
- Hakbang 16: Ang Python Code:
- Hakbang 17: Ang Pangwakas na Code
- Hakbang 18: Pagsubaybay sa Live na Video
Video: Epekto ng Recorder para sa Mga Sasakyan: 18 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
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
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
- 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
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
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
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
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
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
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
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
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
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:
Pag-hack ng Quad ni Kid Sa isang Sarili sa Pagmamaneho, Pagsunod sa Linya at Paghahanap ng Sasakyan sa Sasakyan .: 4 na Hakbang
Kid's Quad Hacking Sa isang Sarili sa Pagmamaneho, Pagsusunod sa Linya at Paghahanap ng Sasakyan ng Sasakyan .: Sa Instructable ngayon ay bubukas namin ang isang 1000Watt (Oo alam ko ang dami nito!) Ang Electric Kid's quad sa isang Pagmamaneho sa Sarili, Pagsunod sa Linya at Paghadlang sa Pag-iwas sa sasakyan! Demo video: https: //youtu.be/bVIsolkEP1k Para sa proyektong ito kakailanganin namin ang mga sumusunod na materyales
PCB: Sistema ng Pagsubaybay sa Sasakyan ng Sasakyan ng GPS at GSM: 3 Mga Hakbang
PCB: GPS at GSM Base Vehicle Tracking System: GPS at GSM based Vehicle Tracking SystemJune 30, 2016, Mga Proyekto sa Engineering Ang proyekto na GPS at GSM batay sa Sasakyan ng Sasakyan System ay gumagamit ng Global Positioning System (GPS) at pandaigdigang sistema para sa mobile na komunikasyon (GSM), na kung saan ginagawang mas maraming proyekto ang
TripComputer - GPS Trip Computer & Module ng Panahon para sa Iyong Sasakyan: 11 Mga Hakbang (na may Mga Larawan)
TripComputer - GPS Trip Computer & Weather Module para sa Iyong Sasakyan: Isang cool na proyekto ng raspberry pi na gumagamit ng GPS breakout module at 2 maliit na display ng Digole upang magkaroon ng isang nabigasyon na computer sa iyong dash
Mga Lightsaber na Nakabatay sa Arduino Na May Magaang at Mga Epekto ng Tunog: 14 Mga Hakbang (na may Mga Larawan)
Batay sa Arduino Lightsaber Na May Mga Magaan at Tunog na Mga Epekto: Kamusta jedi! Ang itinuturo na ito ay tungkol sa paggawa ng isang lightsaber, na ang hitsura, tunog at pagganap tulad ng isa sa pelikula! Ang pagkakaiba lamang - hindi ito maaaring mag-cut metal: (Ang aparatong ito ay batay sa platform ng Arduino, at binibigyan ko ito ng maraming mga tampok at pag-andar, ito
Arcade Cabinet Na May Mga Epekto ng Liwanag sa Liwanag: 9 Mga Hakbang (na may Mga Larawan)
Arcade Cabinet With Ambient Light Effects: Isang bahay na gawa sa arcade wood cabinet, na may mga komersyal na kalidad na arcade control, at integrated system ng Mga Ambient Reality Effect. Ang kabinet ng kahoy ay pinutol ng 4x8 'sandwich panel mula sa Home Depot. Ang Controller ng Arcade ay isang HotRod SE mula sa http: //www.hanaho