Daftar Isi:
- Langkah 1: Beberapa Informasi Tentang App.remoteme.org
- Langkah 2: Apa yang Dibutuhkan:
- Langkah 3: Koneksi
- Langkah 4: PCB
- Langkah 5: Output PCB
- Langkah 6: Bagaimana Ini Akan Bekerja
- Langkah 7: Perakitan Mobil - Roda
- Langkah 8: Opsi Daya (Baterai Isi Ulang AA) 1/2
- Langkah 9: Daya (Baterai Li-Po 7.2V) Opsi 2/2
- Langkah 10: Menyolder
- Langkah 11: Kamera
- Langkah 12: Menyatukan Suku Cadang Mobil
- Langkah 13: Konfigurasi App.remoteme.org
- Langkah 14: Konfigurasi RasbperryPi
- Langkah 15: Memeriksa Koneksi
- Langkah 16: Menambahkan Skrip Python
- Langkah 17: Memeriksa Apakah Skrip Python Berhasil Ditambahkan
- Langkah 18: Menambahkan Halaman Web ke Mobil Kontrol
- Langkah 19: Konfigurasikan Perangkat Halaman Web untuk Mengontrol Mobil 1/2
- Langkah 20: Konfigurasikan Perangkat Halaman Web untuk Mengontrol Mobil 2/2
- Langkah 21: Buka Pusat Kontrol Mobil
- Langkah 22: Konfigurasi Kamera 1/2
- Langkah 23: Konfigurasi Kamera 2/2
- Langkah 24: Mengemudi 1/2
- Langkah 25: Mengemudi 2/2
- Langkah 26: Bagaimana Cara Kerjanya
- Langkah 27: Tablet, Kemudi Seluler
- Langkah 28: Buka Halaman di Ponsel
- Langkah 29: Menambahkan Turn Server
- Langkah 30: Kemudi Seluler
- Langkah 31: Ringkasan
Video: Mobil RasbperryPi Dengan Kamera FPV. Kontrol oleh Web Browser: 31 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Kami akan membangun mobil 4wd - kemudi akan serupa seperti di tangki - untuk memutar satu sisi roda akan berputar dengan kecepatan yang berbeda dari yang lain. Pada mobil akan ditempatkan kamera pada dudukan khusus dimana kita dapat mengubah posisi kamera. Robot akan dikendalikan oleh browser web (chrome atau firefox di desktop, atau firefox di ponsel), di browser, Kami akan mendapatkan video kamera (dengan latensi hanya 200ms), dan dari browser, kami dapat mengontrol pergerakan mobil dan posisi kamera. Untuk mempermudah komunikasi saya telah menggunakan sistem app.remoteme.org, ada juga yang bekerja di luar kotak mengendalikan mobil jenis ini, Jadi Anda tidak perlu menulis kode Anda sendiri, tetapi tentu saja Anda dapat memodifikasi skrip menambahkan kemungkinan baru dll.
Sebelum menghubungkan daya ke PCB Anda, harap periksa kembali semua koneksi
Langkah 1: Beberapa Informasi Tentang App.remoteme.org
Sistem ini memiliki tiga bagian
- webapplication - ketika Anda meng-host halaman web kontrol Anda dan menghubungkan semua komunikasi
- program rasbperryPi - program yang mengirim video, mengelola skrip python Anda
- perpustakaan tempat Anda menemukan kelas, definisi fungsi
Remoteme.org adalah sistem yang cepat Anda menghubungkan semua perangkat Anda bersama-sama, Anda dapat meng-host di sana Halaman web Anda, lihat perangkat Anda yang terhubung. Sistem Remoteme.org dibuat untuk membantu Anda memulai membuat proyek Anda, tanpa khawatir tentang komunikasi protokol, ide utamanya adalah mengirim pesan biner antara berbagai perangkat seperti Halaman web, RasbeprryPI, arduino, dan skrip.
Dari sisi lain Remoteme.org memberi Anda kendali penuh atas file Anda, Anda dapat dengan mudah memodifikasinya dengan menulis fungsionalitas Anda sendiri
Pada tutorial ini saya akan menunjukkan kepada Anda bagaimana membuat beberapa proyek mengagumkan hampir tanpa menulis kode apapun.
Di akhir tutorial ini saya telah meletakkan tautan berguna yang akan membantu Anda memahami sistem remoteme.org.
Langkah 2: Apa yang Dibutuhkan:
- Raspberry PI Nol W
- Kamera khusus
- Adafruit 16-Channel 12-bit PWM/Servo Driver - antarmuka I2C - PCA9685 atau tiruannya
- Dua mekanisme servo yang kompatibel dengan dudukan kamera
- Pemegang kamera
- Baterai - Dalam tutorial dua kemungkinan koneksi
- H bridge TB6612FNG, untuk mengontrol roda speer
- File elang PCB Sangat mudah untuk membuatnya metode transfer termalDC-DC
- Modul Konverter Step Down DC
- Kasus robot
Langkah 3: Koneksi
Mekanisme servo kontrol Raspberry pi melalui modul PWM dan kecepatan motor oleh jembatan H yang terhubung ke pin RasbperryPi, input PWM ke jembatan H dihasilkan oleh modul yang sama yang saya gunakan untuk servos (bagian mana yang saya sebutkan di atas tidak diperlukan konverter logika)
Langkah 4: PCB
Anda dapat mengunduh file elang PCB dari sini Jalurnya gemuk sehingga mudah dibuat dengan metode transfer termal
Langkah 5: Output PCB
- Input PWM untuk motor penggerak Harus disambungkan ke modul PWM pin ke-15 dan ke-16 (periksa kotak hijau pada gambar modul PWM)
- Input daya untuk motor penggerak (periksa tegangan maksimum yang dapat digunakan motor Anda)
- Daya untuk modul RasbperryPi dan PWM – harus tepat
- Output motor penggerak (ada dua output karena kita akan memasangkan motor penggerak)
- Daya Mekanisme Servo - Anda juga harus memeriksa voltase apa yang baik untuk mereka
- Jumper dayanya yang sekarang dari input ke-5 akan memberi daya juga menggerakkan motor sehingga tidak perlu menghubungkan apa pun ke input 2
- Jumper jika ada RasbperryPi akan menjadi daya dari input ke-3 - sebelum meletakkan jumper di sini periksa apakah koneksi baik-baik saja - Anda tidak ingin membakar RPi Anda
- Mari kita solder di sini kabel karena kita tidak memerlukan konverter logika
Langkah 6: Bagaimana Ini Akan Bekerja
Di RasbperryPi ada skrip python yang menggunakan dua perpustakaan
- import RPi. GPIO sebagai GPIO – untuk pin 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (notasi BCM) yang terhubung ke H bridge
- impor Adafruit_PCA9685 untuk modul PWM
Pin Rpi terhubung sebagai berikut 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) dan mode kontrol jembatan H (maju, mundur, berhenti, istirahat pendek). H bridge juga membutuhkan dua sinyal PWM sehingga kita dapat mengontrol kecepatan atau putaran motor. Karena di proyek kami sudah memiliki pengontrol PWM (digunakan untuk servo) kami akan menggunakannya juga untuk menghasilkan PWM untuk jembatan H.
Modul PWM menggunakan protokol komunikasi I2C. Saya telah menggunakan bekerja di luar kotak Adafruit_PCA9685. Perpustakaan
Langkah 7: Perakitan Mobil - Roda
Kami akan mulai dari menghubungkan motor penggerak ke kasing mobil. Motor sisi kiri/samping terhubung bersama, dan keduanya berpasangan, terhubung ke beberapa kabel daya yang nantinya akan terhubung ke PCB. Catatan penting saat menghubungkan roda motor di setiap sisi harus berputar pada arah yang sama.
Langkah 8: Opsi Daya (Baterai Isi Ulang AA) 1/2
Saya akan menulis dua kemungkinan daya Mobil yang pertama adalah dari baterai isi ulang 10xAA Pada gambar terakhir saya telah ditarik oleh jumper warna merah yang harus diletakkan.
Langkah 9: Daya (Baterai Li-Po 7.2V) Opsi 2/2
Dan opsi kedua adalah baterai 7.2 LI-PO. Dalam hal ini kami mendapat 3 voltase – 5v Untuk Rpi dan modul, 6V untuk servos dan langsung dari baterai 7,2 volt untuk motor penggerak. Saya harus menggunakan dua modul step down
Opsi 2 dengan LI-PO lebih baik:
- Baterai memiliki kapasitas lebih besar – mobil akan melaju lebih lama
- Tegangan lebih besar untuk motor penggerak – mobil akan melaju lebih cepat
- Kemungkinan kecil bahwa setelah motor penggerak mulai menemukan kita bisa mengalami penurunan tegangan yang besar dan RPI restart.
Langkah 10: Menyolder
Saya telah memasang beberapa spacer untuk modul PWM di PCB. Tidak ada yang perlu ditulis, lihat saja gambar cara menyolder semuanya bersama-sama
Langkah 11: Kamera
kami menghubungkan kamera, di sini tertulis cara memusatkan Mekanisme servo sebelum dipasang ke dudukan kamera, tetapi cara terpendek adalah dengan lembut secara manual memeriksa posisi rotasi maksimum dan mengatur servos di posisi tengah. Mekanisme servo terpusat ini kami masukkan ke dalam dudukan kamera di posisi tengah (kamera mengarah lurus ke depan seperti di foto)
Langkah 12: Menyatukan Suku Cadang Mobil
Untuk PCB saya sudah membuat meja plexiglass kecil
Langkah 13: Konfigurasi App.remoteme.org
Saya telah menggunakan sistem app.remoteme.org gratis yang membantu Anda membuat koneksi, dan sudah memiliki skrip yang kami butuhkan
Pada instruksi ini, saya hanya akan menunjukkan langkah demi langkah apa yang harus dilakukan untuk membuat mengemudi mobil (di sini Anda akan menemukan detail lebih lanjut)
- Nyanyikan di https://app.remoteme.org setelah mendaftar Anda akan masuk secara otomatis
- buka tab Token di sebelah kiri, lalu klik "token baru" berikan beberapa nama dan klik OK, Kami baru saja membuat token baru (gambar di layar)
- dalam contoh ini, nilai tokennya adalah: ~1_&p@+BNnZ@A+x8 (milik Anda akan berbeda;))
Langkah 14: Konfigurasi RasbperryPi
di konsol dempul (di sini cara mengatur RPi kami mengaktifkan komunikasi kamera I2c)
git clone git://github.com/remoteme/remoteme.git
remote cd
python3.5 install.py
- Penginstal akan menanyakan beberapa pertanyaan kepada kami untuk semua yang kami tanggapi [Y]es dan konfirmasi dengan [enter]
- ketika instalasi akan meminta token, kami menempel (shift+insert) token yang disalin dari aplikasi dan Enter
- nama misalnya Rpi
- deviceId 1 Masuk
- setelah instalasi - jalankan program
./runme.sh
Langkah 15: Memeriksa Koneksi
Mari kembali ke
Pada tab perangkat kita akan melihat RPi kita yang terhubung (ikon tautan hijau berarti RPi terhubung sekarang)
Langkah 16: Menambahkan Skrip Python
Sekarang kita akan menambahkan script python yang sudah ada di template jadi kita tidak perlu memprogram apapun.
Pada tab perangkat buka menu RasbperryPi dan pilih "Tambahkan skrip eksternal".
Ketika jendela baru muncul berikan informasi seperti pada gambar di atas
Jangan lupa untuk memilih template "car4wd". Setelah langkah ini, remoteme.org akan menambahkan skrip python ke RasbperryPi kami dan memulai kembali
Langkah 17: Memeriksa Apakah Skrip Python Berhasil Ditambahkan
Pada tab perangkat perangkat skrip python baru harus ditambahkan, dan deviceId-nya adalah 2. Ke halaman web Id perangkat ini akan mengirim pesan ke mobil kontrol
Langkah 18: Menambahkan Halaman Web ke Mobil Kontrol
di tab perangkat klik "Baru" lalu "Halaman Web". Kami hanya menambahkan perangkat lain - Halaman web kami akan menggunakannya untuk mengontrol mobil kami. Dan karena kami menggunakan template "car4wdDesktop" di halaman web, file sudah hampir siap digunakan
Langkah 19: Konfigurasikan Perangkat Halaman Web untuk Mengontrol Mobil 1/2
Perluas Halaman Web di tab perangkat dan klik index.html lalu Buka
Langkah 20: Konfigurasikan Perangkat Halaman Web untuk Mengontrol Mobil 2/2
Jendela muncul maka kita perlu memberikan deviceId dari skrip python kita pada kasus kita deviceId adalah 2. Mari kita ubah tempat yang ditunjukkan pada gambar
Langkah 21: Buka Pusat Kontrol Mobil
Sekarang saatnya untuk membuka halaman kami dan melihat cara kerjanya. Pada tab perangkat klik index.html dan kemudian "Buka di tab baru" Untuk mendapatkan pratinjau video Anda harus menggunakan browser chrome atau firefox browser lain tidak mendukung webRTC sepenuhnya
Langkah 22: Konfigurasi Kamera 1/2
Saat kita menggerakkan mouse di area video, kamera harus berubah posisi, dan seharusnya berfungsi persis seperti di game FPS. Itu mungkin tidak akan bergerak dengan benar
Langkah 23: Konfigurasi Kamera 2/2
Buka script.js (tab perangkat perluas halaman web lalu klik di script.js lalu buka) dan temukan tempat yang saya tunjukkan di layar
di posisi pusat kasus saya adalah 560 dan 430 dan jangkauan gerakan untuk kedua sumbu 200
Anda harus bereksperimen dengan angka-angka ini sehingga Anda mendapatkan pusat posisi kamera dan gerakan halus, Jika Anda menggunakan tutorial ini cukup salin nilai yang diberikan
Langkah 24: Mengemudi 1/2
Jika Anda menekan panah ke atas pada keyboard, pengukur harus berubah posisi dan mobil harus mengemudi. Jika Anda menekan panah "atas" dan mobil berputar maka Anda harus menambah/menghapus minus di beberapa tempat di layar.
Setelah operasi ini setelah menabrak panah "atas" mobil harus melaju ke depan dan mobil panah bawah harus melaju mundur.
Langkah 25: Mengemudi 2/2
Sekarang belok – tekan panah kiri jika mobil belok kanan Anda harus membalik kabel (periksa gambar di atas)
Jika Anda menyolder kabel ini, Anda dapat mengubahnya di script.jshanya mengubah urutan kecepatan pengiriman motor, sebelum:
pos=putByte(ret, pos, carController.getMotorMode(carController.getRightSideSpeed())); pos=putByte(ret, pos, Math.abs(carController.getRightSideSpeed()*255));
pos=putByte(ret, pos, carController.getMotorMode(-carController.getLeftSideSpeed()));
pos=putByte(ret, pos, Math.abs(carController.getLeftSideSpeed()*255));
setelah:
pos=putByte(ret, pos, carController.getMotorMode(-carController.getLeftSideSpeed()));
pos=putByte(ret, pos, Math.abs(carController.getLeftSideSpeed()*255));
pos=putByte(ret, pos, carController.getMotorMode(carController.getRightSideSpeed()));
pos=putByte(ret, pos, Math.abs(carController.getRightSideSpeed()*255));
dan sekarang Anda harus bermain dengan minus seperti satu langkah sebelumnya untuk membuatnya bekerja dengan benar;). Seperti yang mungkin Anda perhatikan setelah menabrak panah mobil tidak mengemudi dengan kecepatan penuh untuk membuat mobil bergerak lebih cepat hanya melepaskan panah ke atas saat dalam posisi maksimum dan tekan dan tahan lagi
Langkah 26: Bagaimana Cara Kerjanya
Halaman web mengirim pesan pesan byte ke-9 ke skrip python dalam format:
- 1 byte satu byte nilai integer 1
- 2 byte integer X posisi kamera
- 2 byte integer posisi kamera Y
- 1 byte integer mode motor kiri (3= mundur, 1= maju, 2=berhenti)
- 1 byte integer kiri kecepatan motor
- 1 byte integer mode motor kanan (3= mundur, 1= maju, 2=berhenti)
- 1 byte integer kecepatan motor kanan
pengiriman pesan dilakukan pada file script.js pada fungsi "sendNow()"
di RasbperryPi python.py mendapatkan pesan ini dalam fungsi "onUserMessage"
Anda dapat memeriksanya dan bermain sedikit sehingga Anda tahu apa yang sedang terjadi.
deskripsi fungsi kelas di sini
Langkah 27: Tablet, Kemudi Seluler
Kami menambahkan halaman web baru persis seperti yang kami lakukan sebelumnya tetapi sekarang kami memilih template "car4wdMobile"
Selanjutnya, kami mengonfigurasi semuanya di script.js seperti yang kami lakukan untuk halaman web kontrol desktop. Format pesannya persis sama sehingga kami tidak perlu mengubah skrip python.py.
Langkah 28: Buka Halaman di Ponsel
Alih-alih masuk ke akun Anda dari ponsel, cukup pindai url QR anymous.
detail QR di sini
Jika kontrol ponsel Anda berfungsi ketika RPi dan ponsel berada di wifi yang sama tetapi tidak jika Anda menggunakan internet seluler maka Anda harus menambahkan server giliran, cara melakukannya sudah saya tulis di sini
Langkah 29: Menambahkan Turn Server
Terkadang (ketika Anda berada di belakang NAT atau beberapa pengaturan firewall) Anda tidak dapat menghubungkan robot Anda dari jaringan lain maka robot Anda terhubung. Ini bukan masalah besar dan kemudian Anda harus menambahkan server giliran.
Saya telah menguji server dari perusahaan XIRSYS (gratis untuk penggunaan pengembang) dan saya akan menunjukkan cara mengkonfigurasi turn server menggunakan sistem XIRSYS
daftar:
global.xirsys.net/dashboard/signup
lalu klik "plus" untuk menambahkan aplikasi
di sebelah kanan di bawah "status turn creditentials" Anda memiliki semua data yang Anda butuhkan. Salin ke file webrtc_streamer.conf untuk melakukannya, buka
perluas perangkat RaspberryPi
klik file webrtc_streamer.conf
klik buka
dan tambahkan informasi
turn_server=turn_namapengguna=
turn_credential=
setelah Anda selesai mengedit Anda harus memiliki sesuatu seperti di layar.
lalu klik Save and restart You Rpi, dengan cara klik menu di device RasbperryPi dan pilih restart
Setelah program RPi dimulai ulang Anda dapat melihat pratinjau video di ponsel Anda bahkan Jika Anda menggunakan internet seluler.
Langkah 30: Kemudi Seluler
di lingkaran 1 kita letakkan jempol kiri, di 2 kanan – tidak harus tepat di titik ini – halaman web akan mengatur posisi nol tepat setelah Anda menyentuh layar, dan dengan menggerakkan jempol Anda (mengemudi kiri, posisi kamera kanan) Anda dapat mengontrol mobilmu
Langkah 31: Ringkasan
Saya harap Anda menyukai tutorial ini, seperti yang saya tulis sebelumnya di tutorial ini lebih detail tentang cara kerjanya di bawah tenda.
beberapa tautan:
remoteme.org - halaman utama remoteme.org disana Anda dapat menemukan dokumentasi dan tutorial
FB fanpage - Facebook fanpage informasi terbaru tentang remoteme.org
Youtube - beberapa video proyek, tutorial
Bersulang, Maciek
Direkomendasikan:
Kontrol Tirai Dengan ESP8266, Integrasi Google Home dan Openhab dan Kontrol Web: 5 Langkah (dengan Gambar)
Kontrol Tirai Dengan ESP8266, Integrasi Google Home dan Openhab dan Kontrol Web: Dalam Instruksi ini saya menunjukkan kepada Anda bagaimana saya menambahkan otomatisasi ke tirai saya. Saya ingin dapat menambah dan menghapus otomatisasi itu, jadi semua instalasi adalah clip on. Bagian utama adalah: Motor stepper Driver stepper dikendalikan bij ESP-01 Gear dan pemasangan
Mobil DIY oleh Anak Usia 7 Tahun: 5 Langkah (dengan Gambar)
Mobil DIY untuk Anak Usia 7 Tahun: Mengapa tidak membuat mainan sendiri dan belajar sambil bermain? Belajar melakukannya sendiri (DIY) saat Abzy yang berusia 7 tahun mengajari Anda cara membuat Mobil Motor DC sederhana yang ditenagai oleh baterai sepenuhnya sendiri. Ada banyak sampah elektronik saat mainan dibuang. ab
Jam Animasi LED SMART yang Terhubung ke Web Dengan Panel Kontrol Berbasis Web, Server Waktu Disinkronkan: 11 Langkah (dengan Gambar)
Jam Animasi LED SMART yang Terhubung ke Web Dengan Panel Kontrol Berbasis Web, Server Waktu Disinkronkan: Kisah jam ini kembali ke masa lalu - lebih dari 30 tahun. Ayah saya mempelopori ide ini ketika saya baru berusia 10 tahun, jauh sebelum revolusi LED - kembali ketika LED di mana 1/1000 kecerahan kecemerlangan menyilaukan mereka saat ini. Benar
Robot Pengemis Dengan Pelacakan dan Kontrol Wajah oleh Xbox Controller - Arduino: 9 Langkah (dengan Gambar)
Robot Pengemis Dengan Pelacakan dan Kontrol Wajah oleh Xbox Controller - Arduino: Kami akan membuat robot pengemis. Robot ini akan berusaha mengganggu atau menarik perhatian orang yang lewat. Ini akan mendeteksi wajah mereka dan mencoba menembakkan laser ke arah mereka. Jika Anda memberi robot koin, ia akan menyanyikan sebuah lagu dan menari. Robot membutuhkan
ROOMBA Didorong oleh ARDUINO YUN Melalui Aplikasi Wifi oleh STEFANO DALL'OLIO: 4 Langkah (dengan Gambar)
ROOMBA Didorong oleh ARDUINO YUN Melalui Aplikasi Wifi oleh STEFANO DALL'OLIO: Dengan panduan ini saya membagikan kode untuk menghubungkan ARDUINO YUN ke Roomba untuk mengemudikan Roomba melalui Wifi. Kode dan aplikasi sepenuhnya dibuat dan dikembangkan oleh saya sendiri Stefano Dall' Olio.My Roomba adalah Roomba 620 tetapi Anda dapat menggunakan kode yang sama untuk Roomba lainnya