Ketika saya menambahkan fungsi ke mobil melalui CAN, tidak dapat memprogram



Tujuan artikel ini adalah untuk membicarakan pengalaman saya dengan modifikasi mobil dan eksperimen dengan bus CAN.

Bagaimana semuanya dimulai


Pertama, saya memutuskan untuk menambahkan kamera depan ke Chevrolet Cruze 2017 saya. Karena mobil sudah memiliki kamera spion pabrik, maka pada tingkat tinggi perlu untuk mengetahui dua hal:

  1. Cara mentransfer video dari kamera depan, yang akan saya tambahkan.
  2. Metode menampilkan gambar dari kamera tampak belakang kapan saja.

Bagian video itu sederhana. Dari pengalaman sebelumnya, saya tahu bahwa Anda dapat membuat mixer video pada relay.

Memulai di layar ternyata lebih rumit, dan setelah beberapa penyelidikan, saya sampai pada kesimpulan bahwa mesin harus mengirim sinyal dari kamera pandangan belakang ke layar melalui semacam bus data.

BISA bus


Chevrolet memiliki dua bus data yang berbeda. Yang pertama adalah CAN standar, cepat (500 Kbps) dan dapat diandalkan, digunakan untuk data penting. Yang kedua adalah apa yang disebut GM LAN (GMLAN), bus yang lebih tua dan lebih lambat (33,3 Kbps) yang digunakan untuk data non-keamanan.

Saya membutuhkan cara untuk mendengarkan lalu lintas di CAN, yaitu sniffer. Perangkat PCAN sangat berguna untuk tujuan ini.


Puncak bisa

Peak Can (PCAN) adalah perangkat USB yang mampu mencegat dan mengirimkan pesan. Berkat perangkat lunak Pcan View, Anda dapat memulai tanpa banyak pelatihan.

Karena kamera pandangan belakang kurang penting untuk keselamatan daripada komponen lain, saya menyarankan agar data yang Anda cari kemungkinan besar ada di bus GMLAN.

Jalur akses termudah adalah konektor OBD2. Saya menghubungkan Peak Can ke bus GMLAN, meluncurkan perangkat lunak, dan mendengarkan lalu lintas segera dimulai.

Integrasi


Tujuannya adalah merekayasa balik panggilan kamera tampak belakang. Untuk melakukan ini, dengan sniffer dihidupkan, saya membalik mobil sehingga dihidupkan, dan kemudian mencoba memarkir beberapa kali. Sepanjang proses ini, saya melihat satu ID dengan pesan yang secara berurutan menirukan tindakan saya.

Lalu saya parkir dan melalui Pcan View, saya mencoba mengirimkan pesan yang sama dengan yang saya lihat ketika layar dihidupkan dan dimatikan. Dalam sekejap mata, saya sudah berinteraksi dengan bus.


Pesan lewat PCAN

Namun, saya tidak berencana untuk terus bepergian dengan laptop. Apa yang dibutuhkan adalah cara untuk mengotomatiskan fungsi-fungsi ini - dan di sini Arduino berguna. Kemampuan untuk langsung menerima daya 12V dalam kombinasi dengan sejumlah besar sumber daya dan dukungan di Internet menjadikan pilihan ini jelas.

Selain Arduino, saya membutuhkan dua komponen untuk menyelesaikan proyek: modul CAN dan modul relay. Intinya, Arduino adalah otak yang menjalankan dan menjalankan kode. Modul CAN menyediakan kemampuan untuk berinteraksi dengan bus data, dan relai memberikan daya ke kamera depan, dan juga bertindak sebagai pengaduk video antara itu dan kamera pandangan belakang.


Modul Mcp2515 (atas), Arduino Uno (tengah), modul relai (bawah)

Setelah menambah dan mengkonfigurasi perpustakaan yang sesuai, Arduino membuat koneksi dengan mobil.


Mendengarkan lalu lintas melalui Arduino

Karena saya sudah tahu bahwa saya bisa memulai tampilan, saya mulai berpikir tentang BAGAIMANA melakukan ini. Gagasan awal adalah menginstal tombol panggilan instan khusus pada panel, tetapi saya mulai berpikir: "Apa lagi yang bisa saya gunakan di jaringan sebagai pemicu?"

Selama percobaan, saya menemukan bahwa pesan dengan ID yang terkait dengan tombol "Batalkan kontrol pelayaran" juga ditransmisikan melalui bus GMLAN. Ini sangat ideal karena cruise control diaktifkan pada kecepatan di atas 65 km / jam ketika saya menggunakan kamera depan, dan pada kecepatan di bawah 15 km / jam kamera pandangan belakang akan menyala untuk membantu parkir, sehingga mereka tidak akan pernah tumpang tindih. Setelah menulis beberapa kode, saya bisa membuat Arduino mengenali ketika tombol batal cruise control ditekan.


Pengenalan satu klik

Namun, saya tidak ingin kamera mengaktifkan setiap kali saya membatalkan kontrol pelayaran, jadi saya memutuskan bahwa pendekatan terbaik adalah mengubahnya (sebenarnya) menjadi tombol multi-fungsi. Kamera hanya diaktifkan jika tombol โ€œdua kali ditekanโ€.

Setelah akhir pekan yang panjang menjelajahi fungsi millis dan men-debug kode, saya berhasil memprogram pengenalan ketuk ganda.


Pengenalan ketuk dua kali

Dan ketika saya mengikatnya ke tim saya untuk mengontrol tampilan, saya mendapat utilitas kecil yang cukup keren.


Ketuk dua kali + perintah

Fungsionalitas


Sekarang saya memiliki kesempatan untuk menghidupkan dan mematikan layar, tetapi ada satu masalah - bagaimana dengan kamera pandangan belakang? Saya membutuhkan mereka untuk bekerja bersama dengan kamera depan, seolah-olah mereka telah dipasang seperti itu di pabrik.

Dalam bagan alur, saya menggambarkan bagaimana saya mewakilinya.



Saya segera menyadari bahwa untuk sistem seperti itu Anda perlu mengetahui keadaan tiga variabel setiap saat:

  • Modul kamera depan: apakah pengemudi menghidupkan atau mematikannya?
  • Tampilan kamera: apakah gambarnya hidup atau mati?
  • Reverse: mobil terbalik atau tidak?

Tanpa pengalaman pemrograman, itu sangat sulit untuk dilakukan, dan semua waktu luang saya memikirkan berbagai pendekatan.

Pada akhirnya, saya berhasil!


Pemantauan aktif

Sekarang saya dapat mengimplementasikan logika operasional yang mengontrol relai.


Kontrol relay

Sepanjang proses, saya belajar lebih banyak tentang Arduino dan memperhatikan bahwa versi Nano mampu melakukan semua yang Anda butuhkan, sementara itu memiliki ukuran yang lebih kecil dan harga lebih rendah. Ini sangat ideal untuk pemasangan permanen di dalam mobil. Saya mengembangkan model dan mencetak case pada printer 3D untuk menempatkan komponen sebagai unit kompak untuk instalasi.


Kasing 3D



Semuanya bersama


Akhirnya hari itu tiba ketika saya melihat hasilnya. Meskipun Anda masih harus mengutak-atik waktunya, itu menyenangkan untuk melihat bahwa modul bekerja dengan benar.


Menghidupkan / mematikan mode parkir, menghidupkan / mematikan kamera depan, secara otomatis beralih ke kamera tampak belakang dan secara otomatis beralih kembali

Secara umum, pengalaman ini banyak mengajarkan saya dan membuka mata saya terhadap kemungkinan integrasi langsung dengan bus CAN. Cukup mengejutkan apa yang bisa dicapai dengan menghubungkan pada dua kabel.

Di masa depan


Di masa depan, saya berencana untuk menulis tutorial mendalam tentang cara menambahkan fungsionalitas tambahan ke tombol yang ada di mobil Anda menggunakan perangkat lunak dan komponen gratis.

Source: https://habr.com/ru/post/id451294/


All Articles