- Menginstal Paket yang Diperlukan untuk Komunikasi Bluetooth:
- Memasangkan Perangkat dengan Raspberry Pi melalui Bluetooth:
- Memilih Mobil Mainan:
- Diagram Sirkuit dan Penjelasan:
- Mengontrol Mobil dari Jarak Jauh dengan Aplikasi Android BlueTerm:
- Pemrograman Python:
Raspberry Pi sangat populer untuk proyek IoT karena kemampuannya yang mulus untuk komunikasi nirkabel melalui internet. Raspberry Pi 3 memiliki Wi-Fi dan Bluetooth bawaan, dan Bluetooth adalah Protokol komunikasi nirkabel yang sangat populer. Hari ini kita akan membangun Mobil Remote Controlled menggunakan Raspberry Pi 3 dan Bluetooth, disini kita akan menggunakan Smart Phone sebagai remote untuk mengontrol mobil. Kami sebelumnya telah membuat mobil RC ini menggunakan Arduino.
Di sini kami menggunakan Raspberry Pi 3 yang memiliki Bluetooth bawaan, jadi kami tidak perlu menggunakan dongle Bluetooth USB eksternal. Di sini kami menggunakan protokol Bluetooth RFCOMM untuk komunikasi nirkabel.
Pemrograman untuk Bluetooth dengan Python mengikuti model pemrograman soket dan komunikasi antara perangkat Bluetooth dilakukan melalui soket RFCOMM. RFCOMM (Radio Frequency Communication) adalah Bluetooth Protocol yang menyediakan port serial RS-232 yang diemulasi dan disebut juga Serial Port Emulation. Profil port serial Bluetooth didasarkan pada protokol ini. RFCOMM sangat populer di aplikasi Bluetooth karena dukungannya yang luas dan API yang tersedia untuk umum. Itu terikat pada protokol L2CAP.
Jika Anda memiliki Raspberry Pi 2, maka Anda perlu menggunakan dongle Bluetooth eksternal atau modul Bluetooth HC-06. Periksa proyek kami sebelumnya untuk menggunakan perangkat Bluetooth eksternal ini: Mengontrol Raspberry Pi GPIO menggunakan Aplikasi Android melalui Bluetooth dan Peralatan Rumah Tangga yang dikontrol Raspberry Pi.
Menginstal Paket yang Diperlukan untuk Komunikasi Bluetooth:
Sebelum memulai, kita perlu menginstal beberapa perangkat lunak untuk mengatur komunikasi Bluetooth di Raspberry Pi. Anda harus memiliki kartu memori terpasang Raspbian Jessie yang siap dengan Raspberry Pi. Periksa artikel ini untuk menginstal Raspbian OS dan memulai Raspberry Pi. Jadi sekarang pertama-tama kita perlu memperbarui Raspbian menggunakan perintah di bawah ini:
sudo apt-get update sudo apt-get upgrade
Kemudian kita perlu menginstal beberapa paket terkait Bluetooth:
sudo apt-get install bluetooth blueman bluez
Kemudian reboot Raspberry Pi:
sudo reboot
BlueZ adalah proyek open source dan stack protokol Bluetooth Linux resmi. Ini mendukung semua protokol Bluetooth inti dan sekarang menjadi bagian dari Kernel Linux resmi.
Blueman menyediakan antarmuka Desktop untuk mengelola dan mengontrol perangkat Bluetooth.
Terakhir kita membutuhkan pustaka python untuk komunikasi Bluetooth agar kita dapat mengirim dan menerima data melalui RFCOMM menggunakan bahasa Python:
sudo apt-get install python-bluetooth
Instal juga pustaka dukungan GPIO untuk Raspberry Pi:
sudo apt-get install python-rpi.gpio
Sekarang kita selesai dengan menginstal paket yang diperlukan untuk komunikasi Bluetooth di Raspberry Pi.
Memasangkan Perangkat dengan Raspberry Pi melalui Bluetooth:
Memasangkan Perangkat Bluetooth, seperti ponsel, dengan Raspberry Pi sangatlah mudah. Di sini kami telah memasangkan ponsel pintar Android kami dengan Raspberry Pi. Kami sebelumnya telah menginstal BlueZ di Pi, yang menyediakan utilitas baris perintah yang disebut "bluetoothctl" untuk mengelola perangkat Bluetooth kami.
Sekarang buka utilitas bluetoothctl dengan perintah di bawah ini:
sudo bluetoothctl
Anda dapat memeriksa semua perintah utilitas bluetoothctl dengan mengetik 'bantuan' . Untuk saat ini kita perlu memasukkan perintah di bawah ini dengan urutan yang diberikan:
# hidupkan # agen pada # dapat ditemukan pada # dapat dipasangkan pada # pemindaian aktif
Setelah perintah terakhir "scan on", Anda akan melihat perangkat Bluetooth Anda (Ponsel) dalam daftar. Pastikan bahwa ponsel Anda telah mengaktifkan Bluetooth dan terlihat oleh perangkat terdekat. Kemudian salin alamat MAC perangkat Anda dan pasangkan dengan menggunakan perintah yang diberikan:
pasangan
Kemudian Anda akan diminta untuk Passcode atau Pin di konsol Terminal Anda kemudian ketik kode sandi di sana dan tekan enter. Kemudian ketikkan kode sandi yang sama di ponsel Anda ketika diminta dan Anda sekarang berhasil dipasangkan dengan Raspberry Pi. Kami juga telah menjelaskan seluruh proses ini dalam Video yang diberikan di Tutorial pengendalian GPIO sebelumnya. Ini tautan langsung YouTube.
Seperti yang diceritakan sebelumnya, Anda juga dapat menggunakan antarmuka Desktop untuk memasangkan ponsel. Setelah menginstal Blueman, Anda akan melihat ikon Bluetooth di sisi kanan desktop Raspberry Pi Anda seperti yang ditunjukkan di bawah ini, yang dengannya Anda dapat dengan mudah melakukan pairing.
Memilih Mobil Mainan:
Dalam proyek Mobil Terkendali Raspberry Pi ini kami telah menggunakan mobil mainan untuk demonstrasi. Di sini kami telah memilih mobil mainan RF dengan fitur kemudi kiri-kanan bergerak. Setelah membeli mobil ini kami mengganti sirkuit RF-nya dengan sirkuit Raspberry kami. Mobil ini memiliki dua buah motor DC, satu untuk memutar dua roda depan dan satu lagi untuk memutar dua roda belakang. Motor depan digunakan untuk memberi arah pada mobil berarti berbelok ke kiri atau ke kanan (seperti fitur kemudi mobil sungguhan). Dan motor samping belakang digunakan untuk menggerakkan mobil ke arah depan dan belakang. Bluetooth dari Raspberry digunakan untuk menerima perintah secara nirkabel dari ponsel android untuk mengontrol mobil.
Anda dapat menggunakan mobil mainan apa pun yang memiliki dua Motor DC untuk memutar Roda depan dan Belakang.
Diagram Sirkuit dan Penjelasan:
Di Mobil Remote Controlled ini, kita hanya perlu menghubungkan Raspberry Pi dengan dua buah motor menggunakan modul L293D. Untuk menyalakan Raspberry Pi dan mobil kami telah menggunakan bank daya seluler. Power bank mobile cukup untuk menggerakkan Raspberry Pi dan motor mobil tetapi ketika kita meletakkan power bank di atas mobil maka karena beban yang berat maka mobil power bank mobile tidak akan dapat bergerak dengan baik. Jadi kami merekomendasikan untuk menggunakan catu daya ringan atau baterai Lithium untuk menyalakan sistem. Semua koneksi ditunjukkan pada diagram sirkuit di bawah ini. Periksa juga bagian Robotika kami untuk mempelajari lebih lanjut tentang mengendalikan Motor dengan berbagai teknologi.
Catatan: jangan menaruh lebih dari 5v ke raspberry pi.
Sirkuit ini telah dibuat di Perf Board untuk proyek ini, sehingga bobot mobil berkurang.
Mengontrol Mobil dari Jarak Jauh dengan Aplikasi Android BlueTerm:
Sekarang setelah mengatur semua hal dan berhasil mencoba mengupas Ponsel Cerdas melalui bluetooth, kita perlu menginstal Aplikasi Android untuk berkomunikasi dengan Raspberry Pi menggunakan Adaptor Serial Bluetooth, sehingga kita dapat mengontrol pin GPIO dari Raspberry Pi. Seperti yang diceritakan sebelumnya, protokol RFCOMM / SPP mengemulasi komunikasi serial melalui Bluetooth, jadi kami menginstal Aplikasi BlueTerm di sini yang mendukung protokol ini.
Anda juga dapat menggunakan Aplikasi Terminal Bluetooth lain yang mendukung komunikasi melalui soket RFCOMM.
Sekarang setelah mengunduh dan menginstal Aplikasi BlueTerm, jalankan Program Python yang diberikan di bawah ini dari terminal dan hubungkan perangkat raspberrypi yang dipasangkan dari Aplikasi BlueTerm pada saat yang sama.
Setelah koneksi berhasil, Anda akan melihat terhubung: raspberrypi di sudut kanan atas Aplikasi seperti yang ditunjukkan di bawah ini:
Sekarang Anda cukup memasukkan perintah berikut dari aplikasi BlueTerm untuk membuat mobil bergerak ke arah yang diinginkan. Tekan 'q' untuk keluar dari program. Anda dapat menggunakan Keyboard Mengetik Suara Google untuk mengontrol mobil ini menggunakan Suara Anda. Periksa demo lengkap di Video yang diberikan di bagian akhir.
Perintah:
F - Maju Maju
B - Pindah Mundur
S - Berhenti
L - Gerakan Maju Kiri
R - Gerakan Kanan Maju
A - Pindah Kiri Mundur
P - Pindah Kanan Mundur
Q - Berhenti
Pemrograman Python:
Program Python untuk Mengontrol Raspberry Pi GPIO dengan Aplikasi Android sangat sederhana dan cukup jelas. Hanya saja kita perlu belajar sedikit tentang kode yang berhubungan dengan komunikasi Bluetooth RFCOMM. Sebaliknya sama seperti mengendalikan robot atau mobil dengan membuat pin motor tinggi atau rendah. Program lengkap diberikan di bawah ini di bagian Kode.
Pertama, kita perlu mengimpor pustaka soket Bluetooth yang memungkinkan kita mengontrol Bluetooth dengan bahasa Python; kami telah menginstal perpustakaan yang sama di bagian sebelumnya.
impor Bluetooth
Kemudian kami menyertakan beberapa file header lagi dan menentukan pin untuk motor, taruh default-nya rendah.
impor waktu impor bluetooth, impor RPi.GPIO sebagai GPIO m11 = 18 m12 = 23 m21 = 24 m22 = 25 GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) GPIO.setup (m11, GPIO.OUT) GPIO.setup (m12, GPIO.OUT) GPIO.setup (m21, GPIO.OUT) GPIO.setup (m22, GPIO.OUT) GPIO.output (m11, 0) GPIO.output (m12, 0) GPIO.output (m21, 0) GPIO.output (m22, 0)
Di bawah ini adalah kode yang bertanggung jawab untuk komunikasi Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Koneksi diterima dari", alamat
Di sini kita bisa memahaminya baris demi baris:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Membuat soket untuk komunikasi Bluetooth RFCOMM.
server_socket.bind (("", port): - Server mengikat skrip pada host '' ke port.
server_socket.listen (1): Server mendengarkan untuk menerima satu koneksi dalam satu waktu.
client_socket, address = server_socket.accept (): Server menerima permintaan koneksi klien dan menetapkan alamat mac ke alamat variabel, client_socket adalah soket klien
Setelah ini kita telah membuat beberapa fungsi yang bertanggung jawab untuk menggerakkan mobil ke arah yang diinginkan: def left_side_forward (), def right_side_forward (), def forward (), def left_side_reverse (), def right_side_reverse (), def reverse () def stop (). Fungsi-fungsi ini akan dipanggil masing-masing saat kita menekan L, R, F, A, P, B, S dari aplikasi Mobile blueTerm dan mobil akan bergerak sesuai dengan itu.
data = "" while 1: data = client_socket.recv (1024) print "Diterima:% s"% data if (data == "F"): forward () elif (data == "L"): left_side_forward () elif (data == "R"): right_side_forward () elif (data == "B"): reverse () elif (data == "A"): left_side_reverse () elif (data == "P"): right_side_reverse () elif data == "S": stop () elif (data == "Q"): print ("Quit") hancurkan client_socket.close () server_socket.close ()
data = client_socket.recv (1024): Menerima data melalui soket klien client_socket dan menetapkannya ke data variabel. Maksimum 1024 karakter dapat diterima dalam satu waktu.
Akhirnya, setelah semua pemrograman, tutup koneksi klien dan server menggunakan kode di bawah ini:
client_socket.close () server_socket.close ()