Daftar Isi:

Sistem Bantuan Parkir Berbasis Pi: 9 Langkah
Sistem Bantuan Parkir Berbasis Pi: 9 Langkah

Video: Sistem Bantuan Parkir Berbasis Pi: 9 Langkah

Video: Sistem Bantuan Parkir Berbasis Pi: 9 Langkah
Video: DEMO KIT MANLESS PARKING SYSTEM SISTEM PARKIR BAYAR BELAKANG 2024, November
Anonim
Sistem Bantuan Parkir Berbasis Pi
Sistem Bantuan Parkir Berbasis Pi

Hei! Inilah proyek kecil yang keren yang dapat Anda buat dalam satu sore dan kemudian menggunakannya setiap hari. Ini didasarkan pada Raspberry Pi Zero W dan akan membantu Anda memarkir mobil Anda dengan sempurna setiap saat.

Berikut daftar lengkap suku cadang yang Anda perlukan:

  • Raspberry Pi Zero W (kami akan menyebutnya 'rpi' atau 'pi' di artikel ini)
  • Kartu micro SD 4GB atau lebih besar untuk pi OS
  • Dua modul sensor jarak Waktu Penerbangan tinyLiDAR
  • 32x32 RGB LED Panel (ada banyak produsen untuk ini dengan berbagai dot pitch, Anda dapat misalnya menggunakan Adafruit 1484 atau serupa, cukup cari '32x32 LED Matrix' di Google). Panel kami memiliki pitch 6mm.
  • 25 kaki kabel CAT5
  • kira-kira 22 kabel jumper pin header laki-laki ke laki-laki berwarna
  • Catu daya microUSB 5v 2Amp (pengisi daya ponsel) Sudah siap? Ayo pergi!

TL;DR Ringkasan

  • Unduh Raspbian Lite OS untuk rpi
  • Konfigurasikan pi untuk menjalankan tanpa kepala melalui WiFi dengan IP statis
  • Siapkan lingkungan pengembang PC Anda dengan Putty, WinSCP, dan opsional SublimeText w / FTP addon
  • Unduh, buat, dan ikat driver panel LED
  • Unduh dan instal pigpio
  • Unduh kode Python kami
  • Pasang panel tampilan LED 32x32
  • Buat kabel ekstensi CAT5 untuk sensor tinyLiDAR samping
  • Langkah opsional (tetapi hanya untuk pengguna tingkat lanjut): lakukan tarian bahagia cepat saat semuanya berfungsi;)

Langkah 1: Apa itu Pi Zero W?

Apa itu Pi Nol W?
Apa itu Pi Nol W?

Anda pasti pernah mendengar tentang Raspberry Pi tapi apa sih pi 'Zero W' itu?

Raspberry Pi Zero dan Zero W adalah tambahan yang lebih baru untuk keluarga Pi yang lebih berarti untuk IoT dan aplikasi tertanam berbiaya rendah lainnya. Mereka adalah versi papan pi asli yang dipreteli tetapi masih dengan prosesor 1GHz yang kuat. Berikut perbandingan yang baik dari semua model.

Keuntungan bagi kami dalam memilih Pi Zero W di sini daripada papan pengontrol lainnya adalah kami dapat dengan mudah memprogramnya dalam bahasa Python tingkat yang lebih tinggi sambil tetap menggunakan driver panel LED C/C++ yang cepat. Ini juga menarik dengan harga hanya $10USD.

Ingatlah bahwa karena papan ini adalah versi lengkap dari pi - beberapa hal telah berubah. Secara khusus, jack ethernet telah dihilangkan, konektor HDMI telah diubah menjadi ukuran mini dan empat port USB telah disederhanakan menjadi hanya satu jenis micro USB. Ada konektor micro USB lain di dalamnya, tetapi itu hanya untuk memberi daya pada board. Penghapusan semua konektor USB ukuran penuh menimbulkan beberapa kerumitan. Yaitu, bagaimana Anda bisa menghubungkan keyboard dan mouse? Perfipherals dan hub USB standar menggunakan konektor Tipe A bukan jenis mikro.

Jadi apa yang bisa kita lakukan?

Kita bisa pergi tanpa kepala!

Tidak, kami tidak bermaksud menjadi gila tetapi menggunakan alternatif dari pengaturan kabel langsung normal. Headless berarti "terowongan" ke pi dari jarak jauh menggunakan koneksi jaringan secure shell (SSH). Untuk proyek ini kami akan menggunakan pendekatan tanpa kepala melalui WiFi. Oleh karena itu alasan kami memilih versi W dari pi zero daripada pi zero dengan biaya lebih rendah.

Perhatikan bahwa ada juga cara lain untuk menjalankan pi dalam mode tanpa kepala menggunakan sesuatu yang disebut VNC. Ini membutuhkan perangkat lunak VNC khusus yang berjalan di PC Anda karena menyediakan desktop grafis virtual penuh pada PC Anda. Kami tidak memerlukan (dan benar-benar tidak menginginkan) desktop untuk proyek kami sehingga kami akan tetap menggunakan metode SSH yang lebih sederhana.

Langkah 2: Scotty, Kami Membutuhkan Lebih Banyak Tenaga

Scotty, Kami Membutuhkan Lebih Banyak Tenaga!
Scotty, Kami Membutuhkan Lebih Banyak Tenaga!

Panel matriks LED 32x32 dapat, dengan sendirinya, mengambil beberapa amp arus. Tidak bercanda! Itu sebabnya sebagian besar panel ini menyertakan beberapa kabel daya yang tampak besar dan kuat untuk menyalakannya. Untungnya bagi kami meskipun kami tidak perlu mendapatkan catu daya besar-besaran untuk proyek ini. Kami dapat memberi daya pada seluruh sistem ini hanya dari pengisi daya ponsel microUSB 5v/2amp cadangan yang kami miliki. Alasan untuk arus yang lebih rendah adalah karena kami menggunakan grafik yang relatif sederhana dan oleh karena itu tidak menyalakan sebagian besar LED. Jika Anda berpikir untuk membuat animasi atau menggunakan video/grafik cerah, maka Anda harus mempertimbangkan untuk menyalakan panel dari catu daya terpisah.

Langkah 3: Penempatan Sensor dan Perangkat Lunak

Penempatan Sensor dan Perangkat Lunak
Penempatan Sensor dan Perangkat Lunak
Penempatan Sensor dan Perangkat Lunak
Penempatan Sensor dan Perangkat Lunak

Apakah Anda memperhatikan bahwa kami menggunakan dua tinyLiDAR dalam sistem ini, bukan hanya satu? Seperti yang ditunjukkan pada diagram pengaturan garasi, satu ditempatkan di depan mobil dan yang lainnya ditempatkan di sepanjang satu sisi mobil.

Sensor samping akan mendeteksi jika Anda membelok dari tengah saat Anda memarkir mobil dan tentu saja sensor depan akan memberi tahu Anda kapan harus berhenti.

Layar LED 32x32 akan membantu Anda dengan menunjukkan panah untuk bergerak maju, kiri atau kanan dan tampilan hitung mundur dengan sudut berwarna untuk menunjukkan seberapa jauh Anda masih harus mengemudi. Lihat video singkat kami untuk semua status tampilan.

Rencana permainan

Singkatnya, kami menggunakan pustaka hzeller C yang populer untuk driver LED, Python untuk kode pengontrol, dan pustaka pipgpio C untuk kontrol I2C yang tepat dari sensor kami.

Python adalah bahasa tingkat tinggi super mudah yang dapat Anda edit dengan mudah di editor teks apa pun. Kami biasanya menggunakan SublimeText dan untuk proyek ini kami juga menggunakan plugin FTP yang sangat berguna yang memungkinkan kami untuk mengedit file skrip langsung di pi. Ini adalah langkah opsional karena hanya diperlukan jika Anda ingin mengedit kode. Rincian lebih lanjut tersedia di akhir artikel ini.

Semua papan rpi, seperti yang Anda ketahui, tidak mendukung peregangan jam I2C. Jadi kami menggunakan perpustakaan pigpio lagi untuk proyek ini untuk mengontrol sensor tinyLiDAR tapi kali ini dengan sedikit perubahan…

Beberapa tinyLiDAR

Saat Anda membeli tinyLiDAR, itu selalu disetel ke alamat slave default 0x10. Ini baik-baik saja ketika Anda menggunakan satu sensor tetapi jika Anda memiliki lebih dari satu di bus, itu mungkin menjadi masalah jika Anda menulis perintah ke 0x10 dan semuanya menjawab kembali!

Jadi kami memiliki 3 opsi di sini:

Pertama, kita dapat menggunakan perintah (tinyLiDAR) "R" untuk menulis alamat slave baru ke satu sensor yang terhubung ke bus I2C. Kemudian ulangi ini untuk setiap sensor. Memasang, menulis, dan melepaskan setiap sensor secara fisik untuk prosedur ini. tinyLiDAR akan menyimpan alamat yang diberikan dalam memori non-volatile onboard. Alamat akan tetap ada bahkan setelah siklus daya hingga Anda menghapusnya dengan mengeluarkan perintah RESET.

Opsi kedua adalah menggunakan fitur Auto Assign yang nyaman yang kami buat sebagai tujuan utama dalam kampanye IGG. Ini melibatkan pengiriman perintah "AR" dan kemudian mengarahkan jari Anda ke setiap sensor satu per satu untuk secara otomatis menetapkan alamat I2C berurutan ke masing-masing sensor yang serupa dengan opsi pertama tetapi Anda tidak perlu secara fisik memutuskan setiap sensor untuk melakukan ini.

Opsi ketiga adalah yang kami gunakan di sini dalam proyek ini dan itu dimungkinkan berkat perpustakaan pigpio. Untuk menerapkan standar I2C dengan benar, pigpio melakukan bitbang pada GPIO. Jadi karena ini, kita dapat dengan mudah membuat bus I2C terpisah di hampir semua pasangan pin GPIO cadangan.

Oleh karena itu, tidak perlu memprogram ulang alamat slave untuk beberapa sensor LiDAR. Kami hanya dapat menggunakan bus terpisah untuk masing-masing:)

Perhatikan bahwa bus I2C yang berjalan pada 100Kbps sebenarnya cukup kuat. Kami menggunakan kabel ethernet CAT5 tua biasa untuk menjalankan bus I2C ke sensor tinyLiDAR samping yang berjarak 25 kaki penuh tanpa komponen repeater aktif! Detail kabel sensor ditunjukkan di atas.

Oke, cukup jibber jabber, mari kita mulai mendownload kodenya!

Langkah 4: Menyiapkan Pi

Menyiapkan Pi
Menyiapkan Pi
Menyiapkan Pi
Menyiapkan Pi

Perhatian: Pi menggunakan sistem file Linux jadi sebaiknya lakukan langkah-langkah berikut pada sistem berbasis Linux. Anda mungkin akhirnya memformat ulang kartu SD Anda jika Anda melakukan ini di Windows. Kami menggunakan desktop Ubuntu 18.04 yang luar biasa & gratis yang berjalan di lingkungan virtual pada PC Windows 10 tetapi Anda dapat mencoba sesuatu yang serupa.

Anda harus terlebih dahulu mengunduh OS dari raspberrypi.org dan kemudian membakarnya ke kartu microSD Anda. Jadi ikuti langkah-langkah ini:

(1) Di Ubuntu buka di sini dan ambil gambar Raspbian Lite. Simpan ke folder unduhan Anda.

(2) Selanjutnya unduh utilitas penulisan kartu SD Etcher. FYI - tautan unduhan Etcher resmi untuk versi Linux di beranda mereka tidak berfungsi untuk kami, jadi kami menggunakan metode yang dijelaskan di sini sebagai gantinya:

Singkatnya, langkah-langkah yang dijelaskan dalam tautan adalah:

Tambahkan repositori debian Etcher:

echo "deb https://dl.bintray.com/resin-io/debian stable etcher" | sudo tee /etc/apt/sources.list.d/etcher.list

Percayai kunci GPG Bintray.com:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61

Perbarui dan instal:

sudo apt-get update

sudo apt-get install etcher-electron

Setelah selesai, Anda dapat melanjutkan dan meluncurkan Etcher dari desktop Ubuntu Anda. Ini akan meminta Anda untuk file sumber (yang Anda masukkan ke dalam folder unduhan). Langkah selanjutnya di Etcher adalah memilih target yang benar. Etcher melakukan pekerjaan yang baik untuk mendeteksi kartu micro SD Anda, tetapi Anda harus paranoid di sini. Untuk memverifikasi itu menemukan tujuan yang tepat - coba keluarkan kartu microSD dengan mengklik keluarkan di jendela file explorer Ubuntu dan verifikasi bahwa itu hilang sebagai opsi target di dalam Etcher. Kemudian masukkan kembali dan lanjutkan ke langkah terakhir, yaitu menulis file ke kartu microSD ini.

Tunggu beberapa saat sampai selesai lalu lanjutkan seterusnya.

Langkah 5: Waktu WiFi

Waktu WiFi
Waktu WiFi
Waktu WiFi
Waktu WiFi

Oke jadi sekarang saatnya memasukkan detail WiFi Anda.

Tip: Anda selalu dapat menyalin (Ctrl+C) dan menempelkan (Klik Kanan, Tempel) informasi dari artikel ini ke layar terminal Putty alih-alih mengetik perintah. Periksa akhir artikel ini untuk beberapa perintah Linux yang bermanfaat juga.

Ketika Etcher selesai menulis ke kartu micro SD, akan ada 2 drive yang muncul seperti yang ditunjukkan di atas. Yang satu disebut boot yang lain disebut rootfs

Kita perlu menggunakan pengelola file untuk masuk ke folder boot dan membuat file bernama wpa_supplicant.conf.

Untuk melakukan langkah ini Anda cukup mengklik di sisi kiri di mana dikatakan boot dan kemudian di sisi kanan layar Anda dapat mengklik kanan pada latar belakang putih dan memilih Buka di Terminal.

Ini akan membuka jendela terminal (mirip dengan CMD di Windows) di mana Anda dapat mengetik yang berikut:

sudo nano wpa_supplicant.conf Tip: Anda harus memasukkan kata sandi sistem Linux Anda agar dapat berjalan sebagai Pengguna Super. Ini diperlukan atau Anda tidak akan dapat menyimpan file saat Anda selesai mengedit

Perintah di atas kemudian akan meluncurkan editor teks "nano" di mana Anda dapat memasukkan informasi berikut:

negara = AS

ctrl_interface = DIR = /var/run / wpa_supplicant GROUP = netdev update_config = 1 jaringan = { ssid = "WiFi_SSID" scan_ssid = 1 psk = "WiFi_Password" key_mgmt = WPA - PSK }

Catatan: Ingatlah untuk mengganti WiFi_SSID dan WiFi_Password dengan nama dan kata sandi jaringan WiFi Anda sendiri.

Setelah selesai, cukup klik Ctrl+X untuk keluar dan jawab Ya untuk menulis file saat keluar.

Langkah kita selanjutnya adalah membuat file kosong bernama ssh. Untuk melakukan ini, kita cukup mengetik yang berikut di jendela terminal:

sentuh ssh

Sekarang kita perlu memberikan pi kita alamat IP statis sehingga kita tahu di mana itu setiap kali kita ingin menghubungkannya. Ketik yang berikut di jendela terminal:

sudo nano /etc/dhcpcd.conf

Ini akan membuka editor teks nano lagi dan kita dapat menambahkan teks ini ke bagian bawah file:

antarmuka wlan0

ip_address statis=192.168.0.router statis=192.168.0.1 static domain_name_servers=192.168.0.1 8.8.8.8

Catatan: Ini mengasumsikan awalan jaringan Anda adalah 192.168.0. Jika Anda memiliki 192.168.1 dll, gunakan jaringan Anda sebagai gantinya. Server nama domain 8.8.8.8 adalah untuk Google dan opsional di sini.

Ketik 'keluar' di Terminal untuk menutupnya. Kemudian klik kanan pada nama boot di sisi kiri jendela Manajer file dan pilih Eject.

Anda sekarang dapat mencolokkan kartu microSD ini ke pi Anda dan mencolokkan kabel daya microUSB untuk memberi daya pada pi Anda.

Jika semuanya berjalan dengan baik, LED hijau akan berkedip beberapa saat seperti sedang mengakses hard disk drive dan seharusnya Anda masuk ke jaringan WiFi Anda. Berikan waktu sekitar satu menit untuk menenangkan diri dan tunggu hingga LED menjadi hijau pekat.

Untuk memverifikasi bahwa semuanya berfungsi, kami dapat mencoba melakukan ping.

Jadi ketik saja baris di bawah ini dan periksa tanggapannya.

ping 192.168.0.200

Di Ubuntu Anda harus mendapatkan sesuatu yang mirip dengan ini:

ping 192.168.0.200

PING 192.168.0.200 (192.168.0.200) 56(84) byte data. 64 byte dari 192.168.0.200: icmp_seq=1 ttl=128 waktu=752 md 64 byte dari 192.168.0.200: icmp_seq=2 ttl=128 waktu=5.77 md 64 byte dari 192.168.0.200: icmp_seq=3 ttl=128 waktu=7.33 ms ^C --- 192.168.0.200 statistik ping --- 3 paket terkirim, 3 diterima, 0% kehilangan paket, waktu 2001ms rtt min/avg/max/mdev = 5.777/255.346/752.922/351.839 ms

Perhatikan bahwa ping terus beroperasi hingga Anda menekan Ctrl+C untuk keluar.

Di Windows Anda harus mendapatkan sesuatu seperti ini:

ping 192.168.0.200

Ping 192.168.0.200 dengan 32 byte data: Balas dari 192.168.0.200: byte=32 waktu=4ms TTL=64 Balas dari 192.168.0.200: byte=32 waktu=5ms TTL=64 Balas dari 192.168.0.200: byte=32 kali =6ms TTL=64 Balasan dari 192.168.0.200: byte=32 waktu=5ms TTL=64 Statistik ping untuk 192.168.0.200: Paket: Terkirim = 4, Diterima = 4, Hilang = 0 (0% hilang), Perkiraan waktu perjalanan pulang pergi dalam milidetik: Minimum = 4ms, Maksimum = 6ms, Rata-rata = 5ms

Semuanya bagus? seterusnya…

Langkah 6: Masuk

Masuk
Masuk

Sekarang kami memiliki konektivitas ke pi, kami ingin mengirimkannya perintah. Tapi bagaimana? Putty tentu saja! Anda dapat mengunduh Putty dari siniMenyiapkan Putty Setelah mengunduh perangkat lunak Putty, buat profil untuk pi Anda dengan informasi berikut:

Nama Host (atau alamat IP): 192.168.0.200 Jenis koneksi: SSHBeri nama profil ini di bawah Sesi Tersimpan dan tekan Simpan. Anda dapat menggunakan nama apa pun yang Anda suka misalnya "rpizw_200"

Untuk login, cukup pilih dari daftar dan tekan Load. Kemudian tekan Buka. Masukkan nama pengguna dan kata sandi untuk masuk:

nama login: pi

Kata sandi default: raspberry

Berikut adalah contoh sesi yang ditampilkan di Putty saat Anda masuk:

login sebagai: pi

kata sandi [email protected]: Linux raspberrypi 4.14.34+ #1110 Sen 16 Apr 14:51:42 BST 2018 armv6l Program yang disertakan dengan sistem GNU/Linux Debian adalah perangkat lunak bebas; istilah distribusi yang tepat untuk setiap program dijelaskan dalam file individual di /usr/share/doc/*/copyright. Debian GNU/Linux hadir dengan BENAR-BENAR TANPA JAMINAN, sejauh diizinkan oleh hukum yang berlaku. Login terakhir: [tanggal dan waktu] dari 192.168.0.[ip address] SSH diaktifkan dan kata sandi default untuk pengguna 'pi' belum diubah. Ini adalah risiko keamanan - harap login sebagai pengguna 'pi' dan ketik 'passwd' untuk menetapkan kata sandi baru.

Pada login pertama, itu akan memperingatkan bahwa Anda belum mengubah kata sandi. Anda harus mengubahnya menjadi sesuatu yang kuat namun mudah diingat, jadi lanjutkan dan ubah dengan mengetik passwd dan ikuti petunjuknya.

Selanjutnya kita harus memperbarui perangkat lunak pada pi dengan mengetik ini:

sudo apt-get update && sudo apt-get upgrade

Ini akan mengunduh pembaruan apa pun yang diperlukan dari koneksi internet Anda. Jawab YA jika diminta untuk mengizinkannya melanjutkan dan kemudian berikan waktu untuk memperbarui.

Saat ini kita mungkin juga harus mematikan suara pada pi karena memiliki beberapa juju buruk dengan perpustakaan driver LED. Salin, tempel baris berikut satu per satu dan tekan enter setelah setiap baris:

cd ~

kucing <<EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf blacklist snd_bcm2835 EOF sudo update-initramfs -u

Outputnya akan menjadi seperti ini:

pi@raspberrypi:~ $cd ~

pi@raspberrypi:~ $cat < > blacklist snd_bcm2835 > > EOF blacklist snd_bcm2835 pi@raspberrypi:~ $ sudo update-initramfs -u pi@raspberrypi:~ $

Kemudian kita harus me-reboot pi agar perubahan diterapkan, jadi ketikkan yang berikut ini:

sudo reboot sekarang

Koneksi akan terputus tentu saja saat pi sedang di-boot ulang sehingga Anda dapat menutup Putty. Coba masuk kembali satu menit kemudian.

Sekarang saatnya untuk mendapatkan file manager FTP grafis bernama WinSCP. Anda dapat mengunduh WinSCP dari sini

WinSCP sangat mirip dengan pengelola file di Windows dan Ubuntu. Hal ini memungkinkan kita untuk dengan mudah drag dan drop file ke & dari pi dan membuat direktori hanya dengan klik kanan mouse.

Setelah diunduh, Anda perlu mengatur profil untuk pi Anda.

Pengaturan WinSCP Pada popup Login, pilih Situs Baru. Gunakan pengaturan berikut untuk sesi:

Protokol file: SFTP Nama host: 192.168.0.200 Nama pengguna: pi Kata sandi: {apa pun kata sandi yang Anda ubah defaultnya pada langkah Putty di atas}

Di Pengaturan Situs Lanjutan, buka Lingkungan | Direktori dan masukkan /home/pi untuk direktori Remote dan apa pun yang Anda suka untuk pengaturan Direktori Lokal.

Di Pengaturan Situs Lanjutan, buka Lingkungan | Shell dan pilih Sudo su - di daftar drop-down Shell.

Kemudian tekan Simpan.

Biarkan WinSCP dan Putty tetap terbuka saat melakukan langkah-langkah berikut

Pergi ke terminal Putty dan masukkan berikut ini:

cd ~

Ini akan membawa kita ke direktori home kita di dalam pi.

Kita sekarang dapat mengambil perpustakaan driver LED dari github. Untuk menggunakan kode terbaru, kita perlu menarik repo sehingga kita perlu menginstal utilitas git.

Masukkan ini di Putty:

sudo apt-get install git

jawab Y untuk melanjutkan dan itu akan memakan waktu beberapa detik untuk menginstal git untuk kita dari internet.

Outputnya akan terlihat seperti ini:

pi@raspberrypi:~ $ sudo apt-get install git

Membaca daftar paket… Selesai Membangun pohon ketergantungan Membaca informasi status… Selesai Paket tambahan berikut akan diinstal: git-man liberror-perl Paket yang disarankan: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn Paket BARU berikut akan diinstal: git git-man liberror-perl 0 ditingkatkan, 3 baru dipasang, 0 untuk dihapus dan 0 tidak ditingkatkan. Perlu mendapatkan 4, 848 kB arsip. Setelah operasi ini, 26,4 MB ruang disk tambahan akan digunakan. Apakah Anda ingin melanjutkan? [Y/n] y Dapatkan:1 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf liberror-perl all 0.17024-1 [26.9 kB] Dapatkan:2 https://muug.ca/mirror/ raspbian/raspbian stretch/main armhf git-man all 1:2.11.0-3+deb9u3 [1, 433 kB] Dapatkan:3 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf git armhf 1: 2.11.0-3+deb9u3 [3, 388 kB] Diambil 4, 848 kB dalam 5 detik (878 kB/s) Memilih paket yang sebelumnya tidak dipilih liberror-perl.(Membaca database … 34363 file dan direktori yang saat ini diinstal.) Bersiap untuk membongkar …/liberror-perl_0.17024-1_all.deb … Membongkar liberror-perl (0.17024-1) … Memilih paket git-man yang sebelumnya tidak dipilih. Bersiap untuk membongkar …/git-man_1%3a2.11.0-3+deb9u3_all.deb … Membongkar git-man (1:2.11.0-3+deb9u3) … Memilih paket git yang sebelumnya tidak dipilih. Bersiap untuk membongkar …/git_1%3a2.11.0-3+deb9u3_armhf.deb … Membongkar git (1:2.11.0-3+deb9u3) … Menyiapkan git-man (1:2.11.0-3+deb9u3) … Menyiapkan liberror-perl (0.17024-1) … Memproses pemicu untuk man-db (2.7.6.1-2) … Menyiapkan git (1:2.11.0-3+deb9u3) …

Sekarang kembali ke WinSCP dan arahkan ke folder /home/pi. Kemudian di sisi kanan jendela WinScp ini, klik kanan dan pilih untuk membuat Direktori Baru yang disebut "parkir"

Kembali ke layar Putty Anda dapat mengetik ls untuk mengonfirmasi bahwa Anda baru saja membuat folder baru di pi. Kemudian masukkan ini:

cd p[TAB]Tip: Menekan tombol TAB akan otomatis melengkapi sebagian nama untuk Anda

Tekan tombol enter untuk masuk ke direktori ini.

pi@raspberrypi:~ $ cd parkir/

pi@raspberrypi:~/parkir $ ls

Sekarang kita bisa mendapatkan file driver dengan memasukkan yang berikut di Putty:

git clone

Outputnya akan terlihat seperti ini:

pi@raspberrypi:~/parking $ git clone

Kloning ke 'rpi-rgb-led-matrix'… jarak jauh: Menghitung objek: 3740, selesai. jarak jauh: Total 3740 (delta 0), digunakan kembali 0 (delta 0), paket digunakan kembali 3740 Objek penerima: 100% (3740/3740), 20,61 MiB | 1,32 MiB/s, selesai. Menyelesaikan delta: 100% (2550/2550), selesai.

Sekarang kompilasi file driver LED dengan masuk ke direktori 'rpi-rgb-led-matrix' baru ini dan ketik perintah make:

cd r[TAB]

membuat Dan seperti inilah tampilannya di papan kami

pi@raspberrypi:~/parkir $ cd rpi-rgb-led-matrix/

pi@raspberrypi:~/parking/rpi-rgb-led-matrix $ make make -C./lib make[1]: Memasuki direktori '/home/pi/parking/rpi-rgb-led-matrix/lib' g++ - I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o gpio.o gpio.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o led-matrix.o led-matrix.cc g++ -I../include - Dinding -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o options-initialize.o options-initialize.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o framebuffer.o framebuffer.cc g++ -I../include -Wall -O3 -g - fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o thread.o thread.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE=' "biasa"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o bdf-font.o bdf-fon t.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o graphics.o graphics.cc g++ - I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o transformer.o transformer.cc g++ -I../include -Dinding -O3 -g -fPIC -DDEFAULT_HARDWARE='"reguler"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o led-matrix-co led-matrix-c.cc cc -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -c -o hardware-mapping.o hardware-mapping.c g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o content-streamer.o content-streamer.cc g++ -I../include -Wall -O3 - g -fPIC -DDEFAULT_HARDWARE='"regular"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o pixel-mapper.o pixel-mapper.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"reguler"' -Wextra -Wno-unused-parameter -fno-excep tions -c -o multiplex-mappers.o multiplex-mappers.cc ar rcs librgbmatrix.a gpio.o led-matrix.o options-initialize.o framebuffer.o thread.o bdf-font.o graphics.o transformer.o led-matrix-co hardware-mapping.o content-streamer.o pixel-mapper.o multiplex-mappers.o g++ -shared -Wl, -soname, librgbmatrix.so.1 -o librgbmatrix.so.1 gpio.o led -matrix.o options-initialize.o framebuffer.o thread.o bdf-font.o graphics.o transformer.o led-matrix-co hardware-mapping.o content-streamer.o pixel-mapper.o multiplex-mappers. o -lpthread -lrt -lm -lpthread make[1]: Meninggalkan direktori '/home/pi/parking/rpi-rgb-led-matrix/lib' make -C contoh-api-use make[1]: Memasuki direktori ' /home/pi/parking/rpi-rgb-led-matrix/examples-api-use' g++ -I../include -Wall -O3 -g -Wextra -Wno-unused-parameter -c -o demo-main. o demo-main.cc make -C../lib make[2]: Memasuki direktori '/home/pi/parking/rpi-rgb-led-matrix/lib' make[2]: Meninggalkan direktori '/home/pi /parking/rpi-rgb-led-matrix/lib' g++ demo-main.o -o demo -L../lib -lrgbmatrix -lrt -lm -lpthread g++ -I../include -Wall -O3 -g -Wextra -Wno-unused-parameter -c -o minimal-example.o minimal-example.cc g++ minimal-example.o - o minimal-contoh -L../lib -lrgbmatrix -lrt -lm -lpthread cc -I../include -Wall -O3 -g -Wextra -Wno-unused-parameter -c -o c-example.o c- example.c cc c-example.o -o c-example -L../lib -lrgbmatrix -lrt -lm -lpthread -lstdc++ g++ -I../include -Wall -O3 -g -Wextra -Wno-unused- parameter -c -o teks-contoh.o contoh-teks.cc g++ contoh-teks.o -o contoh-teks -L../lib -lrgbmatrix -lrt -lm -lpthread g++ -I../include -Wall - O3 -g -Wextra -Wno-unused-parameter -c -o scrolling-text-example.o scrolling-text-example.cc g++ scrolling-text-example.o -o scrolling-text-example -L../lib -lrgbmatrix -lrt -lm -lpthread g++ -I../include -Wall -O3 -g -Wextra -Wno-unused-parameter -c -o clock.o clock.cc g++ clock.o -o clock -L.. /lib -lrgbmatrix -lrt -lm -lpthread g++ -I../include -Wall -O3 -g -Wextra -Wno-unused-parameter -c -o ledcat.o ledcat.cc g++ le dcat.o -o ledcat -L../lib -lrgbmatrix -lrt -lm -lpthread make[1]: Meninggalkan direktori '/home/pi/parking/rpi-rgb-led-matrix/examples-api-use' pi @raspberrypi:~/parking/rpi-rgb-led-matrix $

Langkah kita selanjutnya adalah mengikat pustaka matriks RGB ke Python. Kami menggunakan Python 2 default untuk proyek ini. Jadi untuk melakukan pengikatan ini kita masukkan baris berikut satu per satu seperti sebelumnya:

sudo apt-get update && sudo apt-get install python2.7-dev python-pillow -y

buat build-python sudo buat install-python

Catatan: Anda dapat dengan aman mengabaikan satu peringatan tentang '-Wstrict-prototype' yang muncul saat menjalankan dua pernyataan make. Perintah make membutuhkan beberapa menit untuk dijalankan dan mereka tidak mengatakan apa-apa saat mereka sibuk. Jadi jangan takut - pi Anda akan segera kembali;)

Berikut adalah sebagian output pada pernyataan make pertama:

membangun ekstensi 'grafik'

arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-kKRR4y/python2.7-2.7.13=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I../../include -I/usr/include/python2.7 -c rgbmatrix/graphics.cpp -o build/temp.linux- armv6l-2.7/rgbmatrix/graphics.o -O3 -Wall cc1plus: peringatan: opsi baris perintah '-Wstrict-prototypes' valid untuk C/ObjC tetapi tidak untuk C++ arm-linux-gnueabihf-g++ -pthread -shared -Wl, -O1 -Wl, -Bsymbolic-functions -Wl, -z, relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix -map=/build/python2.7-kKRR4y/python2.7-2.7.13=. -fstack-protector-strong -Wformat -Werror=format-security -Wl, -z, relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-kKRR4y/python2.7 -2.7.13=. -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-armv6l-2.7/rgbmatrix/graphics.o -L../../lib -lrgbmatrix -o./rgbmatrix/graphics.so make [1]: Meninggalkan direktori '/home/pi/parking/rpi-rgb-led-matrix/bindings/python' pi@raspberrypi:~/parking/rpi-rgb-led-matrix $

Selanjutnya kita akan menginstal perpustakaan pigpio C. Untuk melakukan ini dengan benar, kita perlu membuatnya dari sumber jadi cukup masukkan baris berikut:

cd ~

sudo rm -rf PIGPIO wget abyz.me.uk/rpi/pigpio/pigpio.zip unzip pigpio.zip cd PIGPIO make sudo make install rm pigpio.zip

Instalasi di atas membutuhkan waktu sekitar 3 menit.

Sekarang saatnya untuk mendapatkan file proyek Python kami. Masukkan berikut:

cd ~

cd /home/pi/parking/rpi-rgb-led-matrix/bindings/python/samples wget https://s3.amazonaws.com/microedco/tinyLiDAR/Raspberry+Pi/tinyL_parking.zip unzip -j tinyL_parking.zip rm tinyL_parking.zip

Kemudian untuk menjalankannya, ketikkan yang berikut ini:

sudo python parking.py

Tetapi Anda tidak perlu melakukan ini sekarang karena kami masih harus menghubungkan semuanya…

Langkah 7: Kabel

kabel
kabel
kabel
kabel
kabel
kabel
kabel
kabel

Seperti yang disebutkan sebelumnya, kami memberi daya pada panel LED dari adaptor daya yang sama yang memberi daya pada pi. Untuk melakukan ini, Anda harus menyambungkan kabel merah dan hitam yang besar ke pin header jantan sehingga dapat dicolokkan ke pin 2 dan 9 dari konektor 40pin pi.

Cabut daya ke pi sekarang dan pasang panel LED sesuai diagram bergambar di atas. Jauhkan pin 2 terputus untuk saat ini.

CATATAN: Panel matriks LED terkadang dapat menyala dalam kondisi yang funky. Jika ini terjadi, itu dapat membebani catu daya Anda dengan parah, apa pun kapasitasnya saat ini. Kami melihat ini selama pengembangan pada pasokan bangku kami yang dapat menyediakan lebih dari 4 amp. Solusi untuk ini adalah menjalankan kode pi terlebih dahulu dan kemudian pasang pin 2 untuk menyalakan panel LED. Dengan cara ini panel akan muncul dalam kondisi daya rendah karena mengeluarkan status LED acak. Arus diam (semua LED mati) untuk panel LED kami hanya 50mA pada 5v.

CAT5

Kami menggunakan kabel ethernet CAT5 sepanjang 25 kaki dan memodifikasinya untuk dicolokkan ke pin header pi di satu ujung dan menerima pin konektor GROVE di sisi lain sehingga kami dapat memperpanjang jarak untuk menempatkan sensor tinyLiDAR di sisi kami. Foto di atas menunjukkan kabel ini sebelum dan sesudah modifikasi. Abaikan warna kabel pin header karena tidak berkorelasi dengan diagram. Pastikan Anda memasang sistem Anda seperti yang ditunjukkan pada diagram koneksi bergambar yang ditunjukkan sebelumnya pada langkah 3.

Langkah 8: Nyalakan

Image
Image
Langkah Opsional dan Perintah Bermanfaat
Langkah Opsional dan Perintah Bermanfaat

Urutan penyalaan awal yang benar adalah dengan mencolokkan pengisi daya microUSB ke pi dan menunggu LED biru pada sensor tinyLiDAR berkedip cepat yang menunjukkan bahwa mereka sedang melakukan pengukuran. Ini membuktikan kode berfungsi dengan benar.

Anda kemudian dapat secara perlahan tapi tegas menghubungkan pin 2 untuk suplai panel LED. Berhati-hatilah agar tidak membuat kesalahan saat melakukan ini! Jika panel LED menunjukkan beberapa LED terang yang beku, maka kemungkinan itu bermasalah, jadi lepaskan daya microUSB dari pi dan tunggu beberapa detik untuk mencoba urutan penyalaan lagi.

Untuk menjalankan kode, masukkan berikut ini:

cd /home/pi/parking/rpi-rgb-led-matrix/bindings/python/samples

sudo python parking.py

Jika semuanya berjalan dengan baik, Anda akan mendapatkan tampilan yang mirip dengan yang ditampilkan di video.

Lihat sekilas kode parking.py untuk memahami batasan yang kami gunakan. Default untuk sensor depan adalah 200mm. Karena rentang sensor adalah 11mm hingga 2m, sebaiknya jaga jarak nom_parked_Front pada 200mm atau lebih tinggi. Sensor samping nom_parked_Side diatur ke 600mm. Lihat gambar di atas untuk kode Python yang menunjukkan opsi konfigurasi ini.

Jika semuanya berfungsi, Anda dapat melanjutkan dan memasang sistem di garasi Anda dan menyesuaikan parameter di atas sesuai kebutuhan. Karena pi Anda terhubung ke WiFi Anda, Anda selalu dapat masuk dan mengedit pengaturan jarak yang Anda perlukan untuk pengaturan garasi khusus Anda saat masih terpasang.

Apakah ini sekarang?

Mengapa ya, ya! -- waktu untuk melakukan tarian bahagia Anda:)

Terima kasih telah membaca dan menikmati asisten parkir baru Anda!

Langkah 9: Langkah Opsional dan Perintah Bermanfaat

Langkah Opsional - Addon FTP untuk Teks Luhur

Untuk mengedit file skrip Python langsung di pi, kita dapat menginstal addon FTP yang disebut Sublime SFTP by Wbond. Anda dapat mengunduh addon ini dengan mengikuti petunjuk di sini

Untuk menyiapkan addon ini, kita perlu mengonfigurasi kredensial FTP di bawah File | SFTP/FTP | Setup Server… halaman.

Untuk pengaturan kami, kami menggunakan:

"type": "sftp", "sync_down_on_open": true, "sync_same_age": true, "host": "192.168.0.200", "user": "pi", "password": "YOUR_RPI_PASSWORD_HERE", "port": "22", "remote_path": "/home/pi/", "file_permissions": "664", "dir_permissions": "775", Gunakan Ctrl+S atau File | Simpan untuk menyimpan informasi ini. Anda akan dimintai nama untuk memanggil konfigurasi ini. Kami hanya menyebutnya "rpizw_0_200"

Sekarang untuk masuk ke pi dari SublimeText, buka File | SFTP/FTP | Jelajahi Server…

Pilih dari daftar opsi yang muncul. Anda akan ingin memilih profil dengan nama yang Anda tentukan di atas;) Ikuti petunjuk untuk menavigasi folder dan mengedit file yang diinginkan.

Ekstra Bermanfaat

Perintah Linux yang berguna untuk digunakan pada pi.

Sebelum mencabut pi, SELALU pastikan untuk mematikannya sehingga Anda tidak mendapatkan korupsi file pada kartu microSD Anda. Masukkan perintah ini:

sudo matikan sekarang

dan tunggu sampai led hijau mati sebelum mencabut power. Demikian pula untuk memulai kembali, Anda dapat memasukkan:

sudo reboot sekarang

Untuk membuat daftar file dalam direktori, gunakan ini:

ls

Anda dapat menemukan perintah Linux bermanfaat lainnya di sini

Direkomendasikan: