Isi kandungan:

Kereta RasbperryPi Dengan Kamera FPV. Kawal dengan Penyemak Imbas Web: 31 Langkah (dengan Gambar)
Kereta RasbperryPi Dengan Kamera FPV. Kawal dengan Penyemak Imbas Web: 31 Langkah (dengan Gambar)

Video: Kereta RasbperryPi Dengan Kamera FPV. Kawal dengan Penyemak Imbas Web: 31 Langkah (dengan Gambar)

Video: Kereta RasbperryPi Dengan Kamera FPV. Kawal dengan Penyemak Imbas Web: 31 Langkah (dengan Gambar)
Video: RC DRIFT CARS IN GREAT PERFORMANCE!! RC MODEL RACE CARS IN MOTION, REMOTE CONTROL DRIFT 2024, November
Anonim
Image
Image

Kami akan membina kereta 4wd - stereng akan serupa seperti di tangki - untuk memutar satu sisi roda akan berputar dengan kelajuan yang berbeza daripada yang lain. Di kereta akan diletakkan kamera pada pemegang khas di mana kita dapat mengubah kedudukan kamera. Robot akan dikendalikan oleh penyemak imbas web (chrome atau firefox di desktop, atau firefox di telefon bimbit), di penyemak imbas, Kami akan mendapatkan video kamera (dengan latensi hanya 200ms), dan dari penyemak imbas, kami dapat mengawal pergerakan kereta dan kedudukan kamera. Untuk mempermudah komunikasi saya telah menggunakan sistem app.remoteme.org, ada juga yang berfungsi di luar kotak mengendalikan kereta jenis ini, Oleh itu, Anda tidak perlu menulis kod anda sendiri, tetapi tentu saja Anda boleh mengubah skrip menambah kemungkinan baru dll.

Sebelum menyambungkan kuasa ke PCB anda, periksa semua sambungan

Langkah 1: Beberapa Maklumat Mengenai App.remoteme.org

Sistem ini mempunyai tiga bahagian

  • aplikasi web - apabila anda menghoskan laman web kawalan anda dan ia menghubungkan semua komunikasi
  • program rasbperryPi - program yang menghantar video, menguruskan skrip python anda
  • perpustakaan di mana Anda dapati definisi kelas, fungsi

Remoteme.org cepat sistem Anda menghubungkan semua peranti anda bersama-sama, Anda boleh menjadi tuan rumah di sana Laman web anda, melihat peranti anda yang tersambung. Sistem Remoteme.org dibuat untuk membantu Anda mulai membuat projek anda, tanpa khawatir tentang komunikasi protokol, idea utama adalah untuk menghantar mesej binari di antara pelbagai peranti seperti halaman web, RasbeprryPI, arduino, dan skrip.

Dari sisi lain Remoteme.org memberikan Anda kawalan penuh terhadap fail anda, Anda boleh mengubahnya menggunakan fungsi anda sendiri

Pada tutorial ini saya akan menunjukkan kepada anda bagaimana membuat beberapa projek yang hebat tanpa menulis sebarang kod.

Pada akhir tutorial ini saya telah meletakkan pautan berguna yang akan membantu Anda memahami sistem remoteme.org.

Langkah 2: Apa yang Diperlukan:

Apa yang Diperlukan
Apa yang Diperlukan
Apa yang Diperlukan
Apa yang Diperlukan
  • Raspberry PI Zero W
  • Kamera khas
  • Adafruit 16-Channel 12-bit PWM / Servo Driver - antara muka I2C - PCA9685 atau klonnya
  • Dua mekanisme servo yang serasi dengan pemegang kamera
  • Pemegang kamera
  • Bateri - Dalam tutorial dua kemungkinan sambungan
  • H jambatan TB6612FNG, untuk mengawal speer roda
  • Fail elang PCB Mudah menjadikannya kaedah pemindahan habaDC-DC
  • Modul Penukar Step Down DC
  • Kes robot

Langkah 3: Sambungan

Sambungan
Sambungan

Mekanisme servo kawalan Raspberry pi melalui modul PWM dan kelajuan motor oleh jambatan H yang disambungkan ke pin RasbperryPi, input PWM ke jambatan H dihasilkan oleh modul yang sama yang saya gunakan untuk servos (bahagian mana yang saya sebutkan di atas tidak diperlukan penukar logik)

Langkah 4: PCB

PCB
PCB
PCB
PCB

Anda boleh memuat turun fail helang PCB dari sini Jalannya gemuk sehingga mudah dibuat dengan kaedah pemindahan haba

Langkah 5: Keluaran PCB

Keluaran PCB
Keluaran PCB
Keluaran PCB
Keluaran PCB
  1. Input PWM untuk motor pemacu Harus disambungkan ke modul PWM pin 15 dan 16 (periksa segi empat hijau pada gambar modul PWM)
  2. Input kuasa untuk motor pemacu (periksa voltan maksimum yang dapat digunakan motor anda)
  3. Kuasa untuk modul RasbperryPi dan PWM - mestilah tepat
  4. Memacu output motor (ada dua output kerana kita akan memasangkan motor pemacu)
  5. Kuasa Mekanisme Servo - juga Anda harus memeriksa voltan apa yang baik untuknya
  6. Jumper kekuatannya sekarang dari input ke-5 juga akan menggerakkan motor sehingga tidak perlu menyambungkan apa pun ke input 2
  7. Jumper jika ada RasbperryPi akan menjadi kuasa dari input ke-3 - sebelum meletakkan jumper di sini periksa sama ada sambungannya OK - Anda tidak mahu membakar RPi anda
  8. Mari solder di sini kabel kerana kita tidak memerlukan penukar logik

Langkah 6: Bagaimana Ia Berfungsi

Di RasbperryPi terdapat skrip python yang menggunakan dua perpustakaan

  • import RPi. GPIO sebagai GPIO - untuk pin 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (notasi BCM) yang disambungkan ke jambatan H
  • import Adafruit_PCA9685 untuk modul PWM

Pin Rp dihubungkan seperti berikut 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) dan mod kawalan jambatan H (maju, mundur, berhenti, rehat pendek). Jambatan H memerlukan dua isyarat PWM supaya kita dapat mengawal kelajuan atau putaran motor. Kerana di projek ini kita sudah mempunyai pengawal PWM (digunakan untuk servo) kita akan menggunakannya juga untuk menghasilkan PWM untuk jambatan H.

Modul PWM menggunakan protokol komunikasi I2C. Saya sudah biasa bekerja di luar kotak Adafruit_PCA9685. perpustakaan

Langkah 7: Pemasangan Kereta - Roda

Perhimpunan Kereta - Roda
Perhimpunan Kereta - Roda
Perhimpunan Kereta - Roda
Perhimpunan Kereta - Roda

Kami akan bermula dari menyambungkan motor pemacu ke casing kereta. Motor sisi kiri / sisi bersambung bersama, dan kedua-duanya berpasangan, bersambung ke beberapa kabel kuasa yang kemudiannya akan disambungkan ke PCB. Nota penting semasa menyambungkan roda motor di setiap sisi harus berputar pada arah yang sama.

Langkah 8: Pilihan (Bateri Pengisian Semula AA) 1/2

Pilihan (Bateri Pengisian Semula AA) 1/2
Pilihan (Bateri Pengisian Semula AA) 1/2
Pilihan (Bateri Pengisian Semula AA) 1/2
Pilihan (Bateri Pengisian Semula AA) 1/2
Pilihan (Bateri Pengisian Semula AA) 1/2
Pilihan (Bateri Pengisian Semula AA) 1/2
Pilihan (Bateri Pengisian Semula AA) 1/2
Pilihan (Bateri Pengisian Semula AA) 1/2

Saya akan menulis dua kemungkinan kuasa yang pertama Car adalah dari bateri pengisian semula 10xAA. Pada gambar terakhir saya telah dilukis oleh jumper warna merah yang mesti diletakkan.

Langkah 9: Kuasa (Bateri Li-Po 7.2V) Pilihan 2/2

Kuasa (Bateri Li-Po 7.2V) Pilihan 2/2
Kuasa (Bateri Li-Po 7.2V) Pilihan 2/2
Kuasa (Bateri Li-Po 7.2V) Pilihan 2/2
Kuasa (Bateri Li-Po 7.2V) Pilihan 2/2

Dan pilihan kedua ialah bateri 7.2 LI-PO. Dalam kes ini kita mendapat 3 voltan - 5v Untuk Rpi dan modul, 6V untuk servos dan langsung dari bateri 7.2 volt untuk motor pemacu. Saya terpaksa menggunakan modul step down dua

Pilihan 2 dengan LI-PO lebih baik:

  • Bateri mempunyai kapasiti yang lebih besar - kereta akan memandu lebih lama
  • Voltan yang lebih besar untuk motor pemacu - kereta akan memandu dengan lebih pantas
  • Kurang kebarangkalian bahawa setelah motor pemacu mula mengesan kita dapat mengalami penurunan voltan besar dan RPI dimulakan semula.

Langkah 10: Pematerian

Pematerian
Pematerian
Pematerian
Pematerian
Pematerian
Pematerian
Pematerian
Pematerian

Saya telah meletakkan beberapa spacer untuk modul PWM di PCB. Tidak ada apa-apa yang perlu ditulis, lihat gambar bagaimana menyatukan semuanya

Langkah 11: Kamera

Kamera
Kamera

kami menyambungkan kamera, berikut ditulis cara memusatkan mekanisme servo sebelum dipasang ke dudukan kamera, tetapi cara terpendeknya adalah dengan manual memeriksa posisi putaran maksimum secara manual dan mengatur servo pada posisi tengah. Mekanisme servo berpusat ini kita masukkan ke dalam pemegang kamera di kedudukan tengah (kamera menunjuk lurus ke depan seperti pada foto)

Langkah 12: Memasang Bahagian Kereta Bersama

Menggabungkan Bahagian Kereta
Menggabungkan Bahagian Kereta
Memasang Bahagian Kereta Bersama
Memasang Bahagian Kereta Bersama
Menggabungkan Bahagian Kereta
Menggabungkan Bahagian Kereta

Untuk PCB saya telah membuat meja plexiglass kecil

Langkah 13: Konfigurasi App.remoteme.org

Konfigurasi App.remoteme.org
Konfigurasi App.remoteme.org

Saya telah menggunakan sistem app.remoteme.org percuma, ia membantu Anda membuat sambungan, dan ia sudah mempunyai skrip yang kami perlukan

Pada arahan ini, saya hanya akan menunjukkan langkah demi langkah apa yang harus dilakukan untuk membuat pemanduan kereta (di sini Anda akan mendapat lebih banyak maklumat)

  • Bernyanyi di https://app.remoteme.org selepas mendaftar Anda akan log masuk secara automatik
  • buka tab Token di sebelah kiri, kemudian klik "token baru" memberikan beberapa nama dan klik OK, Kami baru saja membuat token baru (gambar di skrin)
  • dalam contoh ini, nilai token adalah: ~ 1_ & p @ + BNnZ @ A + x8 (milik anda akan berbeza;))

Langkah 14: Konfigurasi RasbperryPi

Konfigurasi RasbperryPi
Konfigurasi RasbperryPi

di putty console (di sini cara mengatur RPi menghidupkan komunikasi kamera I2c)

git klon git: //github.com/remoteme/remoteme.git

remotem cd

python3.5 install.py

  • Instalator akan menanyakan kepada kami beberapa soalan untuk semua yang kami balas [Y] dan mengesahkan dengan [masukkan]
  • ketika pemasangan akan meminta token kita tampal (shift + insert) token yang disalin dari aplikasi dan Enter
  • nama misalnya Rpi
  • deviceId 1 Enter
  • selepas pemasangan - jalankan program

./runme.sh

Langkah 15: Memeriksa Sambungan

Memeriksa Sambungan
Memeriksa Sambungan

Mari kembali ke

Pada tab peranti kita akan melihat RPi kita yang terhubung (ikon pautan hijau bermaksud RPi disambungkan sekarang)

Langkah 16: Menambah Skrip Python

Menambah Skrip Python
Menambah Skrip Python
Menambah Skrip Python
Menambah Skrip Python

Sekarang kita akan menambah skrip python, yang sudah ada di templat sehingga kita tidak perlu memprogramkan apa-apa.

Pada tab peranti, buka menu RasbperryPi dan pilih "Tambahkan skrip luaran".

Apabila tetingkap baru muncul berikan maklumat seperti gambar di atas

Jangan lupa memilih templat "car4wd". Selepas langkah ini, remoteme.org akan menambahkan skrip python ke RasbperryPi kami dan memulakannya semula

Langkah 17: Memeriksa Jika Skrip Python Ditambah dengan Jimat

Memeriksa Jika Skrip Python Ditambah dengan Sungguh
Memeriksa Jika Skrip Python Ditambah dengan Sungguh

Pada tab peranti, peranti skrip python baru harus ditambahkan, dan perantinya adalah 2. Ke dalam peranti ini halaman web Id akan menghantar mesej untuk mengawal kereta

Langkah 18: Menambah Halaman Web untuk Mengawal Kereta

Menambah Halaman Web untuk Mengawal Kereta
Menambah Halaman Web untuk Mengawal Kereta

pada tab peranti klik "Baru" kemudian "Halaman Web". Kami hanya menambah peranti lain - laman web yang akan kami gunakan untuk mengawal kereta kami. Dan kerana kami menggunakan templat "car4wdDesktop" di laman web sudah ada fail yang hampir siap digunakan

Langkah 19: Konfigurasikan Peranti Halaman Web untuk Mengawal Kereta 1/2

Konfigurasikan Peranti Halaman Web untuk Mengawal Kereta 1/2
Konfigurasikan Peranti Halaman Web untuk Mengawal Kereta 1/2

Kembangkan Halaman Web di tab peranti dan klik index.html kemudian Buka

Langkah 20: Konfigurasikan Peranti Halaman Web untuk Mengawal Kereta 2/2

Konfigurasikan Peranti Halaman Web untuk Mengawal Kereta 2/2
Konfigurasikan Peranti Halaman Web untuk Mengawal Kereta 2/2

Tingkap muncul maka kita perlu menyediakan deviceId skrip python kita di case caseId kita adalah 2. Mari ubah tempat yang ditunjukkan dalam gambar

Langkah 21: Buka Pusat Kawalan Kereta

Buka Pusat Kawalan Kereta
Buka Pusat Kawalan Kereta
Buka Pusat Kawalan Kereta
Buka Pusat Kawalan Kereta

Sekarang masanya untuk membuka halaman kami dan melihat bagaimana ia berfungsi. Pada tab peranti, klik index.html dan kemudian "Buka di tab baru" Untuk mendapatkan pratonton video Anda harus menggunakan penyemak imbas chrome atau firefox penyemak imbas lain tidak menyokong webRTC sepenuhnya

Langkah 22: Konfigurasi Kamera 1/2

Konfigurasi Kamera 1/2
Konfigurasi Kamera 1/2

Ketika kita menggerakkan tetikus di kawasan video, kamera harus berubah posisi, dan harus berfungsi sama seperti dalam permainan FPS. Mungkin tidak akan bergerak dengan betul

Langkah 23: Konfigurasi Kamera 2/2

Konfigurasi Kamera 2/2
Konfigurasi Kamera 2/2

Buka script.js (tab peranti meluaskan laman web kemudian klik pada script.js kemudian buka) dan cari tempat yang saya tunjukkan di skrin

pada kedudukan pusat kes saya adalah 560 dan 430 dan jarak pergerakan adalah untuk kedua-dua paksi 200

Anda harus bereksperimen dengan nombor ini sehingga anda mendapat pusat kedudukan kamera dan pergerakan yang lancar, Jika Anda menggunakan tutorial ini, salin sahaja nilai yang ditampal

Langkah 24: Memandu 1/2

Memandu 1/2
Memandu 1/2

Sekiranya anda menekan anak panah ke atas pada papan kekunci, alat pengukur harus menukar kedudukan dan kereta harus memandu. Sekiranya Anda menekan anak panah “atas” dan kereta berpusing maka Anda harus menambah / membuang tolak di tempat-tempat di layar.

Selepas operasi ini, tekan anak panah “atas” harus memandu ke depan dan kereta panah bawah harus memandu ke belakang.

Langkah 25: Memandu 2/2

Memandu 2/2
Memandu 2/2

Sekarang berpusing - tekan anak panah kiri jika kereta membelok ke kanan Anda harus membalikkan kabel (periksa gambar di atas)

Sekiranya anda menyolder kabel ini, anda boleh menukarnya pada script.j hanya menukar susunan kelajuan 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));

selepas:

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 berfungsi dengan betul;). Seperti yang anda mungkin perhatikan setelah tekan panah kereta tidak memandu dengan kelajuan penuh untuk membuat kereta bergerak lebih cepat hanya melepaskan anak panah ke atas dengan cepat ketika berada di posisi maksimum dan tekan dan tahan lagi

Langkah 26: Bagaimana Ia Berfungsi

Halaman web menghantar mesej pesanan byte ke-9 ke skrip python dalam format:

  • 1 bait satu bait nilai integer 1
  • 2 kamera byte integer X kedudukan kamera
  • 2 bait kedudukan kamera Y integer
  • Mod motor kiri 1 bait integer (3 = mundur, 1 = maju, 2 = berhenti)
  • Kelajuan motor kiri integer 1 bait
  • Mod motor kanan 1 byte integer (3 = mundur, 1 = maju, 2 = berhenti)
  • 1 byte kelajuan motor betul

mengirim mesej dibuat pada file script.js pada fungsi "sendNow ()"

di RasbperryPi python.py mendapatkan mesej ini berfungsi "onUserMessage"

Anda boleh melihatnya dan bermain sebentar sehingga Anda tahu apa yang sedang berlaku.

penerangan fungsi kelas di sini

Langkah 27: Tablet, Pemandu Bergerak

Tablet, Pemandu Bergerak
Tablet, Pemandu Bergerak

Kami menambah laman web baru dengan pantas seperti yang kami lakukan sebelumnya tetapi sekarang kami memilih templat "car4wdMobile"

Seterusnya, kami mengkonfigurasi segala-galanya dalam script.js seperti yang kami lakukan untuk halaman web kawalan desktop Format mesej sama persis sehingga kami tidak perlu mengubah skrip python.py.

Langkah 28: Buka Halaman di Telefon Bimbit

Buka Halaman di Telefon Mudah Alih
Buka Halaman di Telefon Mudah Alih
Buka Halaman di Telefon Mudah Alih
Buka Halaman di Telefon Mudah Alih

Daripada log masuk ke akaun anda dari telefon bimbit, cuma imbas url QR.

perincian QR di sini

Sekiranya kawalan mudah alih Anda berfungsi ketika RPi dan telefon bimbit berada di wifi yang sama tetapi tidak jika Anda menggunakan internet mudah alih, maka anda perlu menambah pelayan giliran, bagaimana cara yang saya tulis di sini

Langkah 29: Menambah Turn Server

Menambah Turn Server
Menambah Turn Server
Menambah Turn Server
Menambah Turn Server
Menambah Turn Server
Menambah Turn Server

Kadang kala (ketika anda berada di belakang NAT atau beberapa tetapan firewall) Anda tidak dapat menghubungkan robot anda dari rangkaian lain maka robot anda disambungkan. Ini bukan masalah besar dan kemudian Anda harus menambah pelayan giliran.

Saya telah menguji pelayan dari syarikat XIRSYS (percuma untuk kegunaan pembangun) dan saya akan menunjukkan cara mengkonfigurasi pelayan giliran menggunakan sistem XIRSYS

daftar:

global.xirsys.net/dashboard/signup

kemudian klik "tambah" untuk menambah aplikasi

di sebelah kanan di bawah "bukti kelayakan statik" Anda mempunyai semua data yang anda perlukan. Salin ke dalam fail webrtc_streamer.conf untuk melakukannya pergi ke

mengembangkan RaspberryPi deivces

klik fail webrtc_streamer.conf

klik terbuka

dan tambah maklumat

turn_server = turn_username =

turn_credential =

setelah anda mengedit Anda mesti mempunyai sesuatu seperti di skrin.

kemudian klik Simpan dan mulakan semula Anda Rpi, dengan mengklik menu di peranti RasbperryPi dan pilih mulakan semula

Selepas program RPi dimulakan semula Anda dapat melihat pratonton video di telefon bimbit anda walaupun Anda menggunakan internet mudah alih.

Langkah 30: Pemandu Bergerak

Pemandu Mudah Alih
Pemandu Mudah Alih

pada bulatan 1 kami meletakkan ibu jari kiri, di 2 kanan - tidak harus tepat pada titik ini - halaman web akan menetapkan kedudukan sifar tepat setelah anda menyentuh skrin, dan dengan menggerakkan ibu jari anda (pemanduan kiri, posisi kamera kanan) Anda dapat mengawal kereta awak

Langkah 31: Ringkasan

Saya harap Anda menyukai tutorial ini, seperti yang saya tulis sebelumnya di tutorial ini adalah lebih terperinci mengenai cara ia berfungsi di bawahnya.

beberapa pautan:

remoteme.org - laman utama remoteme.org di sana Anda dapati dokumentasi dan tutorial

FB fanpage - Facebook fanpage maklumat terkini mengenai remoteme.org

Youtube - beberapa video projek, tutorial

Bersorak, Maciek

Disyorkan: