Isi kandungan:
- Langkah 1: Bahagian & Aksesori
- Langkah 2: Huraian Bahagian: Topi Sense
- Langkah 3: Pemasangan: Pencatat Impak
- Langkah 4: Pemasangan: Perekam Kesan pada Dash Board of Car
- Langkah 5: Recoder Impact: Kerja & Aplikasi
- Langkah 6: Penerangan Perisian: Node Red
- Langkah 7: Asas merah simpul
- Langkah 8: Node-red: Aliran _1a
- Langkah 9: Node Red: Flow_1b
- Langkah 10: Node Red: Flow_2a
- Langkah 11: Node Red: Flow_2b
- Langkah 12: Node Red; Aliran_3
- Langkah 13: MQTT
- Langkah 14: MQTT: Pelanggan
- Langkah 15: MQTT: Menyunting Properties dalam Node-red
- Langkah 16: Kod Python:
- Langkah 17: Kod Akhir
- Langkah 18: Memantau Video Langsung
Video: Perakam Kesan untuk Kenderaan: 18 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
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
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
- 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
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
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
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
Dalam aliran tersebut, rakaman video dapat dimulakan kapan saja dengan hanya menekan joystick
Langkah 10: 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
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
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
Aplikasi MQTT berjalan di telefon bimbit (versi Android)
Kesan yang dikesan pada pi diserahkan kembali
Langkah 15: 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:
Kenderaan Kesan Tanah Super FAST RC (Ekranoplan): 5 Langkah (dengan Gambar)
Kenderaan Efek Darat Super FAST RC (Ekranoplan): Anda tahu bagaimana, semasa touch-down, pesawat melayang beberapa kaki di atas tanah untuk sementara waktu sebelum roda mereka benar-benar memukul landasan? Ini bukan hanya untuk memberikan penumpang dengan lancar, tetapi juga hasil semula jadi dari kesan tanah, di mana
Amalan Perakam Dengan Makey Makey: 7 Langkah (dengan Gambar)
Amalan Perekam Dengan Makey Makey: Pelajar Muzik kami harus melengkapkan lagu di perakam untuk mendapatkan tali pinggang (kepingan benang berwarna) sehingga mereka mencapai status Black Belt. Kadang-kadang mereka menghadapi masalah dengan penempatan jari dan " pendengaran " lagu menjadi hidup
Pembaca / penulis NFC ScanUp dan Perakam Audio untuk Orang Buta, Gangguan Penglihatan dan Semua Orang Lain: 4 Langkah (dengan Gambar)
Pembaca / penulis ScanUp NFC dan Perakam Audio untuk Orang Buta, Gangguan Penglihatan dan Semua Orang Lain: Saya belajar reka bentuk perindustrian dan projeknya adalah hasil kerja semester saya. Tujuannya adalah untuk menyokong orang yang cacat penglihatan dan buta dengan peranti, yang memungkinkan untuk merakam audio dalam format.WAV pada kad SD dan memanggil maklumat tersebut dengan tag NFC. Jadi dalam
TripComputer - Modul Perjalanan GPS & Komputer Cuaca untuk Kenderaan Anda: 11 Langkah (dengan Gambar)
TripComputer - Modul Perjalanan GPS & Komputer Cuaca untuk Kenderaan Anda: Projek pi raspberry keren yang menggunakan modul pelarian GPS dan 2 paparan Digole kecil untuk mempunyai komputer navigasi di dash anda
Perakam Main Balik Dengan Raspberry Pi: 7 Langkah (dengan Gambar)
Perakam Main Balik Dengan Raspberry Pi: Hai semua, Dalam arahan ini saya menerangkan bagaimana saya membuat perakam main balik menggunakan Raspberry Pi. Peranti ini adalah model Raspberry Pi B +, dengan 7 butang tekan di atas, pembesar suara disambungkan ke salah satu port usb Pi, dan mikrofon disambungkan ke yang lain