Isi kandungan:

Perakam Kesan untuk Kenderaan: 18 Langkah (dengan Gambar)
Perakam Kesan untuk Kenderaan: 18 Langkah (dengan Gambar)

Video: Perakam Kesan untuk Kenderaan: 18 Langkah (dengan Gambar)

Video: Perakam Kesan untuk Kenderaan: 18 Langkah (dengan Gambar)
Video: “Duduk Macam Lelaki” – Netizen Terkejut Lihat Rupa Terkini Anak Perempuan Sharifah Shahira 2024, Disember
Anonim
Perakam Kesan untuk Kenderaan
Perakam Kesan untuk Kenderaan

Impact Recorder dirancang untuk merakam kesan yang dialami kenderaan semasa memandu atau tidak bergerak. Impak disimpan dalam pangkalan data dalam bentuk pembacaan serta video / gambar. Pengguna jarak jauh impak dapat disahkan dalam masa nyata, dan pengguna jarak jauh dapat menonton video yang disimpan atau mengambil akses jarak jauh ke kamera pi dan menonton acara yang sesuai..

Langkah 1: Bahagian & Aksesori

(1) Raspberry Pi 3 atau lebih baik: Daya komputasi diperlukan

(2) Topi Raspberry pi sense

(3) Kamera Raspberry pi / kamera Usb

(4) Kad memori dengan gambar raspbian terkini (Harus menyokong simpul merah, hampir setiap gambar terkini)

(5) Bekalan kuasa sekurang-kurangnya 2,1 A (saya telah menggunakan bank bateri untuk operasi mandiri di dalam kereta)

Langkah 2: Huraian Bahagian: Topi Sense

Huraian Bahagian: Topi Sense
Huraian Bahagian: Topi Sense

Sense HAT mempunyai matriks LED 8 × 8 RGB, kayu bedik lima butang dan termasuk sensor berikut:

  • Giroskop
  • Pecut
  • Magnetometer
  • Suhu
  • Barometrik
  • tekanan
  • Kelembapan

Maklumat lebih lanjut mengenai bekerja dengan sense hat boleh didapati dari pautan berikut: Sense_Hat

API untuk sense hat dihoskan di: Sense_hat_API

Kod untuk pengaturcaraan topi akal diliputi dalam langkah-langkah kemudian. Sense topi kod juga boleh disimulasikan pada simulator yang dihoskan di: Sense-hat simulator

Langkah 3: Pemasangan: Pencatat Impak

Perhimpunan: Perakam Kesan
Perhimpunan: Perakam Kesan
Perhimpunan: Perakam Kesan
Perhimpunan: Perakam Kesan
Perhimpunan: Perakam Kesan
Perhimpunan: Perakam Kesan
Perhimpunan: Perakam Kesan
Perhimpunan: Perakam Kesan
  • Pemasangan lebih mudah kerana topi rasa perlu ditumpuk di atas pi (bolt pemasangan yang ditetapkan dilengkapi dengan topi rasa).
  • Kamera USB atau kamera pi boleh disambungkan. Dalam tutorial, kamera pi dipertimbangkan dan dengan itu pengkodan dilakukan untuk yang sama.
  • Masukkan kad memori dan konfigurasikan python code dan node -red (konfigurasi & kod akan dibahas dalam langkah selanjutnya)

Gambar di atas menunjukkan kamera-pi disambungkan melalui kabel pita rata ke pi

Langkah 4: Pemasangan: Perekam Kesan pada Dash Board of Car

Perhimpunan: Perakam Kesan pada Dash Board of Car
Perhimpunan: Perakam Kesan pada Dash Board of Car

Untuk memasang perekam, saya telah menggunakan pita dua sisi, kelebihannya ialah perekam dapat digeser dengan mudah pada kedudukan yang berbeza, mana yang paling sesuai dengan kereta anda.

Kamera selanjutnya dipasang secara menegak seperti yang ditunjukkan, menggunakan pita sisi berganda yang sama, Selanjutnya adalah menyambungkan sumber kuasa (bank kuasa 10, 000 mAH) bersama dengan sambungan internet yang siap

Sambungan internet diperlukan untuk aplikasi MQTT (perincian untuk MQTT dibahas dalam langkah selanjutnya)

Langkah 5: Recoder Impact: Kerja & Aplikasi

Dari topi akal, pecutan dan giroskop digunakan untuk memeriksa sama ada nilai mentah melebihi had yang ditetapkan dalam kod.

Accelerometer: Accelerometer memberitahu jumlah daya graviti (G-force) yang bertindak pada setiap paksi x, y & z, jika paksi mengukur lebih daripada daya 1G, daripada gerakan pantas dapat dikesan. (harap maklum bahawa sumbu yang menunjuk ke bawah akan mempunyai nilai 1g dan perlu dipertimbangkan dalam kod python).

Giroskop; Giroskop digunakan untuk mengukur gerakan sudut, iaitu ketika putaran tajam sensor mungkin diaktifkan (bergantung pada pengaturan dalam kod), sehingga seseorang yang berpusing tajam pada kenderaan akan tertangkap !!

Sebarang pengaktifan had yang ditetapkan juga ditunjukkan pada matriks LED hat sense sebagai "!" berwarna merah untuk pecutan & hijau untuk pengaktifan giroskop

Langkah 6: Penerangan Perisian: Node Red

Node-RED adalah alat pengaturcaraan berasaskan aliran, yang awalnya dikembangkan oleh IBM's Emerging Technology Servicesteam dan kini menjadi sebahagian daripada JS Foundation.

Maklumat lebih lanjut mengenai nod merah boleh didapati melalui pautan berikut: simpul-merah

Untuk kes kami, kami akan menggunakan red-node untuk mengikuti aktiviti

(1) Berinteraksi dengan joystick untuk memulakan fungsi kamera

(2) Memantau dampak pada kenderaan dan menyampaikan maklumat kepada pengguna akhir dengan menggunakan MQTT dan selanjutnya menerima perintah pengguna akhir melalui MQTT dan memulai aplikasi yang diperlukan pada pi

(3) Melakukan beberapa perkara asas seperti penutupan pi

Langkah selanjutnya memberikan maklumat terperinci untuk gambarajah aliran yang dilaksanakan pada nod merah

Harap maklum bahawa diagram aliran merah-nod berinteraksi dengan kod python, oleh itu bahagian terakhir merangkumi aspek kod python

Langkah 7: Asas merah simpul

Asas Node-red
Asas Node-red
Asas Node-red
Asas Node-red
Asas Node-red
Asas Node-red

Langkah-langkah Asas tertentu diserlahkan untuk memulakan Node-red dalam sekejap, tetapi ya Node-red terlalu mudah untuk memulakan dan menyelesaikan aplikasi.

  • Bermula Node-red: https:// localhost: 1880.
  • Memulakan Node-red ketika pi disambungkan ke internet https:// ip address>: 1880

Langkah 8: Node-red: Aliran _1a

Node-red: Aliran _1a
Node-red: Aliran _1a

The Flow _1a, memantau setiap perubahan dalam fail CSV dan berdasarkan perubahan, iaitu kesan yang dikesan, rakaman video kamera diatur ke mod dan selanjutnya pengguna diberitahu melalui internet bahawa ada kesan yang berlaku

Langkah 9: Node Red: Flow_1b

Node Red: Flow_1b
Node Red: Flow_1b

Dalam aliran tersebut, rakaman video dapat dimulakan kapan saja dengan hanya menekan joystick

Langkah 10: Node Red: Flow_2a

Node Red: Flow_2a
Node Red: Flow_2a

Dalam aliran tersebut, setiap kali gambar atau video baru disimpan / diunggah ke direktori, maklumat tersebut disampaikan kepada pengguna yang terdaftar melalui internet

Langkah 11: Node Red: Flow_2b

Node Red: Flow_2b
Node Red: Flow_2b

Aliran ini dirancang terutama untuk pengguna jarak jauh, untuk mengendalikan peranti dengan cara berikut

(a) peranti penutupan

(b) mengambil gambar

(c) Merakam video

(d) mulakan kod utama (kod datalogger adalah kod utama yang mengira kesannya)

Langkah 12: Node Red; Aliran_3

Node Merah; Aliran_3
Node Merah; Aliran_3

Aliran ini dirancang untuk akses tempatan, untuk memulakan kod utama atau peranti penutupan

Langkah 13: MQTT

MQTT (Pengangkutan Telemetri Beratur Mesej) adalah protokol TCP / IP, di mana penerbit dan pelanggan berinteraksi.

Dalam kes kami Pi adalah penerbit, sedangkan aplikasi yang dipasang di moblile / PC kami adalah pelanggan.

Dengan cara ini untuk menghasilkan apa-apa kesan, maklumat dihantar jauh dari pengguna (sambungan internet yang berfungsi mesti)

Maklumat lebih lanjut mengenai MQTT boleh diakses dari pautan berikut: MQTT

Untuk mula menggunakan MQTT, kita harus mendaftar terlebih dahulu, untuk tutorial saya telah menggunakan cloudmqtt (www.cloudmqtt.com), ada rancangan percuma di bawah "kucing comel", itu saja.

Setelah mendaftar, buat contoh katakan "pi" dan selepas itu anda akan mendapat maklumat berikut

  • Nama pelayan
  • pelabuhan
  • nama pengguna
  • kata laluan

Perkara di atas diperlukan semasa melanggan melalui telefon bimbit / pc

Untuk aplikasi saya, saya telah menggunakan aplikasi MQTT dari google play store (versi Android)

Langkah 14: MQTT: Pelanggan

MQTT: Pelanggan
MQTT: Pelanggan

Aplikasi MQTT berjalan di telefon bimbit (versi Android)

Kesan yang dikesan pada pi diserahkan kembali

Langkah 15: MQTT: Menyunting Properties dalam Node-red

MQTT: Menyunting Properties dalam Node-red
MQTT: Menyunting Properties dalam Node-red

Dalam simpul-merah setelah memilih nod MQTT, "Nama pelayan" dan "topik" akan disebutkan. Perkara ini harus sama pada akhir pelanggan

Langkah 16: Kod Python:

Fungsi kod adalah seperti pada carta alir yang dilampirkan

Langkah 17: Kod Akhir

Kod python dilampirkan

Untuk membuat skrip python kita berjalan dari terminal, kita harus membuatnya dapat dieksekusi sebagai chmod + x datalogger.py, dan lebih jauh bahagian atas kod harus mengandungi baris "shebang" berikut #! / usr / bin / python3 (ini diperlukan untuk menjalankan fungsi dari simpul-merah)

#! / usr / bin / python3 // shebang linefrom sense_hat import SenseHat dari datetime import datetime dari csv import import import RPi. GPIO sebagai GPIO dari waktu import import

akal = SenseHat ()

import csv

cap waktu = datetime.now ()

delay = 5 // delay ditakrifkan untuk menyimpan data dalam file data.csv merah = (255, 0, 0) hijau = (0, 255, 0) kuning = (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"])

kembali rasa_berkesan

def imp (): // fungsi untuk mengesan impak # GPIO.setmode (GPIO. BCM) # GPIO.setup (4, GPIO. OUT) pecutan = sense.get_accelerometer_raw () x = pecutan ['x'] y = pecutan ['y'] z = pecutan ['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 = bulat (gyrox, 2)

gyroy = bulat (gyroy, 2) gyroz = bulat (gyroz, 2)

impak = get_sense_impact ()

jika x> 1.5 atau y> 1.5 atau z> 1.5: // nilai-nilai ditetapkan setelah lelaran di jalan sebenarnya dapat diubah sesuai untuk pelbagai jenis dan kemahiran memandu dengan terbuka ('impact.csv', 'w', newline = ' ') sebagai f: data_writer = penulis (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 ("!", merah) data_writer.writerow (impak)

elif gyrox> 1.5 atau gyroy> 1.5 atau gyroz> 1.5: // nilai ditetapkan melihat kelajuan di mana putaran dimulakan dengan terbuka ('impact.csv', 'w', newline = '') sebagai f: data_writer = penulis (f) data_writer.writerow (['acc x', 'acc y', 'acc z', 'gyro x', 'gyro y', 'gyro z']) # GPIO.output (4, GPIO. TINGGI) sense.clear () sense.show_letter ("!", Hijau) data_writer.writerow (impak)

lain:

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

def get_sense_data (): // fungsi untuk merakam dan menyimpan nilai dari sensor sense_data =

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

orientasi = sense.get_orientation ()

sense_data.append (orientasi ["yaw"]) sense_data.append (orientasi ["pitch"]) sense_data.append (orientasi ["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 ())

kembali akal_data

dengan terbuka ('data.csv', 'w', newline = '') sebagai f:

data_writer = penulis (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 ',' datetime '])

Walaupun Betul:

print (get_sense_data ()) untuk event in sense.stick.get_events (): # Periksa sama ada joystick ditekan jika event.action == "ditekan": # Periksa arah mana jika event.direction == "up": # sense.show_letter ("U") # Pecutan anak panah atas = sense.get_accelerometer_raw () x = pecutan ['x'] y = pecutan ['y'] z = pecutan ['z'] x = bulat (x, 0) y = bulat (y, 0) z = bulat (z, 0)

# Kemas kini putaran paparan bergantung pada cara mana jika 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 = bulat (t, 1) message = "T:" + str (t) sense.show_message (mesej, text_colour = merah, scroll_speed = 0.09) elif event.direction == "down": pecutan = sense.get_accelerometer_raw () x = pecutan ['x'] y = pecutan ['y'] z = pecutan ['z'] x = bulat (x, 0) y = bulat (y, 0) z = bulat (z, 0)

# Kemas kini putaran paparan bergantung pada cara mana jika 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") # bawah panah sense.clear () h = sense.get_humidity () h = bulat (h, 1) mesej = "H:" + str (h) sense.show_message (message, text_colour = green, scroll_speed = 0.09) p = sense.get_pressure () p = bulat (p, 1) message = "P:" + str (p) sense.show_message (mesej, text_colour = kuning, scroll_speed = 0.09)

# elif event.direction == "kiri":

# pecutan = sense.get_accelerometer_raw () # x = pecutan ['x'] #y = pecutan ['y'] #z = pecutan ['z'] # x = bulat (x, 0) # y = bulat (y, 0) # z = bulat (z, 0)

# Kemas kini putaran paparan bergantung pada cara mana // Tidak digunakan dan dikendalikan oleh simpul-merah #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") # Panah kiri # elif event.direction == "kanan": # sense.show_letter ("K") # Anak panah kanan # elif event.direction == "tengah": # sense.clear ()

kesan ()

data = get_sense_data ()

dt = data [-1] - cap waktu jika dt.seconds> kelewatan: data_writer.writerow (data) cap waktu = datetime.now ()

Langkah 18: Memantau Video Langsung

Impact Recorder juga dapat digunakan untuk memantau video langsung, kerana video dapat dimulakan kapan saja di mana saja melalui MQTT

kami akan menggunakan pemain VLC untuk menstrimkan video, secara lalai dalam raspbian terbaru VLC telah diprapasang, jika tidak, pasang vlc seperti di bawah

Maklumat lebih lanjut mengenai melihat rangkaian rangkaian dapat diakses melalui aliran Rangkaian VLC

Terima kasih kerana membaca!!

Masih banyak lagi yang boleh dilakukan oleh perakam impak..

Perhatikan ruang seterusnya untuk analisis medan magnet dalam melakukan pemetaan halangan

Disyorkan: