Rpibot – Tentang Belajar Robotika
Ini adalah platform robot seluler sederhana dan murah yang dirancang untuk pembelajaran dan perluasan. Saya menjelaskan konsep saya dan juga masalah yang saya selesaikan.
Saya seorang insinyur perangkat lunak tertanam di sebuah perusahaan otomotif Jerman. Saya memulai proyek ini sebagai platform pembelajaran untuk sistem tertanam. Proyek ini dibatalkan lebih awal tetapi saya sangat menikmatinya sehingga saya melanjutkan di waktu luang saya. Ini hasilnya…
Saya memiliki persyaratan berikut:
- Perangkat keras sederhana (fokus adalah perangkat lunaknya)
- Perangkat keras murah (sekitar 100€)
- Dapat diperluas (beberapa opsi sudah menjadi bagian dari deskripsi)
- Supply voltage untuk semua komponen dari satu sumber 5V (powerbank)
Sebenarnya tidak ada tujuan selain belajar. Platform ini dapat digunakan untuk pembelajaran, pengawasan, kontes robot, …
Ini bukan tutorial pemula. Anda memerlukan beberapa pengetahuan dasar tentang:
- Pemrograman (Python)
- Elektronik dasar (untuk menghubungkan modul dengan voltase yang tepat)
- Teori kontrol dasar (PID)
Akhirnya Anda mungkin akan menghadapi masalah seperti yang saya alami. Dengan rasa ingin tahu dan daya tahan, Anda akan melalui proyek dan memecahkan tantangan. Kode saya sesederhana mungkin dan baris kode kritis diberi komentar untuk memberikan petunjuk.
Kode sumber dan file lengkap tersedia di sini: https://github.com/makerobotics/RPIbot
Persediaan:
Mekanika
- 1x Papan kayu lapis (ukuran A4, tebal 4 mm)
- 3x M4 x 80 Sekrup dan mur
- 2x Gear motor dengan poros keluaran sekunder untuk encoder. Roda.
- 1x Roda Gratis
- 1x Pemasangan kamera geser dan miring (opsional)
Elektronik
- 1x Raspberry Pi Zero dengan header dan kamera
- 1x kontrol servo PCA 9685
- 2x Roda dan sirkuit encoder optik
- 1x kabel jumper wanita
- 1x USB powerbank
- 1x driver motor ganda DRV8833
- 2x Micro servos SG90 untuk menggeser dan memiringkan kamera (opsional)
- 1x MPU9250 IMU (opsional)
- 1x sensor jarak ultrasonik HC-SR04 (opsional)
- 1x papan berlubang dan kawat solder, header, …
Langkah 1:Bangun Sasis
Saya bukan perancang mekanik yang baik. Juga tujuan proyek tidak menghabiskan terlalu banyak waktu di sasis. Pokoknya saya menetapkan persyaratan berikut:
- Material murah
- Perakitan dan pembongkaran cepat
- Dapat diperluas (mis. ruang untuk sensor tambahan)
- Bahan ringan untuk menghemat energi elektronik
Sasis yang mudah dan murah dapat dibuat dari kayu lapis. Sangat mudah untuk mesin dengan fretsaw dan bor tangan. Anda dapat merekatkan bagian kayu kecil untuk membuat pegangan sensor dan motor.
Pikirkan tentang penggantian komponen cacat atau debugging listrik. Bagian utama harus diperbaiki dengan sekrup agar dapat diganti. Pistol lem panas mungkin sederhana, tetapi mungkin bukan cara terbaik untuk membuat sasis… Saya membutuhkan banyak waktu untuk memikirkan konsep yang mudah untuk membongkar bagian-bagiannya dengan mudah. Pencetakan 3D adalah alternatif yang baik, tetapi bisa sangat mahal atau memakan waktu.
Roda bebas akhirnya sangat ringan dan mudah dipasang. Alternatifnya semuanya berat atau penuh gesekan (saya mencoba beberapa dari mereka sebelum menemukan yang terakhir). Saya hanya perlu memotong spacer kayu untuk meratakan roda bebas ekor setelah memasang roda utama.
Properti roda (untuk perhitungan perangkat lunak)
Lingkar:21,5 cm
Pulsa:20 pulsa/putaran
Resolusi:1,075 cm (akhirnya 1 pulsa sekitar 1 cm, yang mudah untuk perhitungan perangkat lunak)
Langkah 2:Elektronik dan Pengkabelan
Proyek ini menggunakan modul yang berbeda seperti yang ditunjukkan pada diagram.
The Raspberry Pi Zero merupakan pengendali utama. Ini membaca sensor dan mengendalikan motor dengan sinyal PWM. Terhubung ke PC jarak jauh melalui wifi.
DRV8833 adalah jembatan H motor ganda. Ini memberikan arus yang cukup ke motor (yang tidak dapat dilakukan oleh Raspberry Pi karena outputnya hanya dapat mengirimkan beberapa mA).
Encoder optik memberikan sinyal berbentuk persegi setiap kali cahaya melewati roda encoder. Kami akan menggunakan interupsi HW dari Raspberry Pi untuk mendapatkan informasi setiap kali sinyal beralih.
pca9695 adalah papan kontrol servo. Ini berkomunikasi dengan bus serial I2C. Board ini menyediakan sinyal PWM dan tegangan suplai yang mengontrol servo untuk pan dan tilt cam.
MPU9265 adalah percepatan 3-sumbu, kecepatan rotasi sudut 3-sumbu, dan sensor fluks magnet 3-sumbu. Kami akan menggunakannya terutama untuk mendapatkan heading kompas.
Modul yang berbeda semuanya terhubung bersama oleh kabel jumper. Sebuah papan tempat memotong roti bertindak sebagai operator dan menyediakan tegangan suplai (5V dan 3.3V) dan ground. Semua koneksi dijelaskan dalam tabel koneksi (lihat lampiran). Menghubungkan 5V ke input 3.3V mungkin akan merusak chip Anda. Berhati-hatilah dan periksa semua kabel Anda dua kali sebelum memasok (di sini khususnya encoder harus dipertimbangkan). Anda harus mengukur tegangan suplai utama pada papan pengiriman dengan multimeter sebelum menghubungkan semua papan. Modul dipasang dengan sekrup nilon ke dalam sasis. Juga di sini saya senang memperbaikinya tetapi juga dapat dilepas jika terjadi malfungsi.
Satu-satunya penyolderan akhirnya adalah motor dan papan tempat memotong roti dan header. Sejujurnya, saya suka kabel jumper tetapi dapat menyebabkan koneksi longgar. Dalam beberapa situasi, beberapa pemantauan perangkat lunak mungkin mendukung Anda dalam menganalisis koneksi.
Sumber:Rpibot – Tentang Belajar Robotika