Remote control sederhana robot dari komputer. Robot otonom berbasis Arduino dengan kemampuan kendali jarak jauh Robot kendali jarak jauh

Mengontrol robot adalah tugas yang menantang. Definisi yang kami pilih mengharuskan perangkat untuk menyadari lingkungannya. Kemudian membuat keputusan dan mengambil tindakan yang tepat. Robot bisa otonom atau semi-otonom.

  1. Robot otonom bekerja sesuai dengan algoritma yang diberikan berdasarkan data yang diterima dari sensor.
  2. Robot semi-otonom memiliki tugas yang dikendalikan oleh manusia. Dan selain itu ada tugas lain yang dilakukannya sendiri...

Robot semi-otonom

Contoh yang baik dari robot semi-otonom adalah robot bawah air yang kompleks. Manusia mengontrol gerakan dasar robot. Dan saat ini, prosesor onboard mengukur dan merespons arus bawah air. Ini memungkinkan Anda untuk menjaga robot di posisi yang sama tanpa melayang. Sebuah kamera di atas robot mengirimkan video kembali ke manusia. Selain itu, sensor onboard dapat memantau suhu air, tekanan, dan banyak lagi.

Jika robot kehilangan kontak dengan permukaan, maka program otomatis akan menyala dan mengangkat robot bawah air ke permukaan. Agar dapat mengontrol robot Anda, Anda perlu menentukan tingkat otonominya. Mungkin Anda ingin robot dikendalikan dengan kabel, nirkabel, atau sepenuhnya otonom.

Manajemen kabel

Cara termudah untuk mengendalikan robot adalah dengan pengontrol tangan yang terhubung secara fisik dengannya dengan kabel. Sakelar, kenop, tuas, joystick, dan tombol pada pengontrol ini memungkinkan pengguna untuk mengontrol robot tanpa harus menyalakan elektronik yang rumit.

Dalam situasi ini, motor dan catu daya dapat dihubungkan langsung ke sakelar. Oleh karena itu, rotasi maju/mundurnya dapat dikontrol. Biasa digunakan pada kendaraan.

Mereka tidak memiliki kecerdasan dan dianggap sebagai "mesin yang dikendalikan dari jarak jauh" daripada "robot".


  • Keuntungan utama dari koneksi ini adalah robot tidak dibatasi oleh waktu operasi. Karena dapat terhubung langsung ke jaringan. Tidak perlu khawatir kehilangan sinyal. Robot, sebagai suatu peraturan, memiliki elektronik minimum dan tidak terlalu rumit. Robot itu sendiri bisa ringan atau memiliki muatan ekstra. Robot dapat diambil secara fisik dengan tambatan yang terpasang pada kabel jika terjadi kesalahan. Ini terutama berlaku untuk robot bawah air.
  • Kerugian utamanya adalah kabel bisa kusut, tersangkut sesuatu, atau putus. Jarak yang dapat dikirimkan robot dibatasi oleh panjang tali. Menyeret tambatan yang panjang menambah gesekan dan dapat memperlambat atau bahkan menghentikan gerakan robot.

Kontrol robot melalui kabel dan mikrokontroler bawaan

Langkah selanjutnya adalah memasang mikrokontroler pada robot, namun tetap menggunakan kabel. Menghubungkan mikrokontroler ke salah satu port I/O komputer Anda (seperti port USB) memungkinkan Anda mengontrol tindakan Anda. Kontrol dilakukan menggunakan keyboard, joystick, atau perangkat periferal lainnya. Menambahkan mikrokontroler ke proyek mungkin juga mengharuskan Anda memprogram robot dengan sinyal input.


  • Keuntungan utama sama dengan kontrol kabel langsung. Perilaku dan reaksi robot yang lebih kompleks terhadap tombol atau perintah individual dapat diprogram. Ada banyak pilihan kontrol pengontrol (mouse, keyboard, joystick, dll.). Mikrokontroler yang ditambahkan memiliki algoritma bawaan. Ini berarti bahwa ia dapat berinteraksi dengan sensor dan membuat keputusan tertentu sendiri.
  • Kerugiannya termasuk biaya yang lebih tinggi karena adanya elektronik tambahan. Kelemahan lainnya sama dengan kontrol langsung robot dengan kabel.

Kontrol Ethernet

digunakan penyambung Ethernet RJ45. Koneksi Ethernet diperlukan untuk kontrol. Robot secara fisik terhubung ke router. Oleh karena itu, dapat dikontrol melalui Internet. Ini juga memungkinkan (meskipun tidak terlalu praktis) untuk robot seluler.

Menyiapkan robot yang dapat berkomunikasi melalui Internet bisa sangat rumit. Pertama-tama, koneksi WiFi (internet nirkabel) lebih disukai. Kombinasi kabel dan nirkabel juga merupakan pilihan di mana ada transceiver (transmit dan accept). Transceiver secara fisik terhubung ke Internet, dan data yang diterima melalui Internet kemudian ditransmisikan secara nirkabel ke robot.


  • Keuntungannya adalah robot dapat dikendalikan melalui Internet dari mana saja di dunia. Robot tidak memiliki batas waktu karena dapat menggunakan Power over Ethernet. PoE. Ini adalah teknologi yang memungkinkan transmisi energi listrik bersama dengan data ke perangkat jarak jauh melalui kabel twisted pair standar melalui jaringan Ethernet. Penggunaan Internet Protocol (IP) dapat menyederhanakan dan meningkatkan skema komunikasi. Keuntungannya sama dengan kontrol komputer kabel langsung.
  • Kerugiannya adalah pemrograman yang lebih kompleks dan kerugian yang sama dengan kontrol kabel.

Kontrol jarak jauh IR

Pemancar dan penerima inframerah menghilangkan kabel yang menghubungkan robot ke operator. Ini biasanya digunakan oleh pemula. Kontrol inframerah membutuhkan "garis pandang" untuk berfungsi. Penerima harus dapat "melihat" pemancar setiap saat untuk menerima data.

Remote control inframerah (seperti remote control universal untuk televisi) digunakan untuk mengirim perintah ke penerima inframerah yang terhubung ke mikrokontroler. Kemudian menafsirkan sinyal-sinyal ini dan mengontrol tindakan robot.


  • Keuntungannya adalah biaya rendah. Remote control TV sederhana dapat digunakan untuk mengontrol robot.
  • Kerugiannya adalah membutuhkan garis pandang untuk mengontrol.

kontrol radio

Kontrol frekuensi radio memerlukan pemancar dan penerima dengan mikrokontroler kecil untuk mengirim, menerima, dan menafsirkan data frekuensi radio (RF). Ada papan sirkuit tercetak (PCB) di kotak penerima, yang berisi unit penerima dan pengontrol motor servo kecil. Komunikasi radio membutuhkan pemancar yang dicocokkan/dipasangkan dengan penerima. Dimungkinkan untuk menggunakan transceiver yang dapat mengirim dan menerima data antara dua lingkungan sistem komunikasi yang berbeda secara fisik.

Kontrol radio tidak memerlukan garis pandang langsung dan dapat dilakukan jarak jauh. Perangkat RF standar dapat mengirimkan data antar perangkat melalui jarak hingga beberapa kilometer. Sementara perangkat RF yang lebih profesional dapat memberikan kontrol robot di hampir semua jarak.


Banyak perancang robot lebih suka membuat robot semi-otonom yang dikendalikan radio. Hal ini memungkinkan robot untuk menjadi otonom mungkin dan memberikan umpan balik kepada pengguna. Dan itu dapat memberi pengguna kendali atas beberapa fungsinya jika perlu.

  • Kelebihannya adalah kemampuan untuk mengendalikan robot dengan jarak yang cukup jauh, dapat dengan mudah dikonfigurasi. Komunikasi bersifat omnidirectional, tetapi mungkin tidak sepenuhnya terhalang oleh tembok atau rintangan.
  • Kerugiannya adalah kecepatan transfer data yang sangat rendah (hanya perintah sederhana). Selain itu, Anda perlu memperhatikan frekuensi.

Kontrol Bluetooth

Bluetooth adalah sinyal radio (RF) dan ditransmisikan melalui protokol tertentu untuk mengirim dan menerima data. Jangkauan Bluetooth normal seringkali dibatasi hingga sekitar 10m, meskipun memiliki keuntungan memungkinkan pengguna untuk mengontrol robot mereka melalui perangkat berkemampuan Bluetooth. Ini terutama ponsel, PDA, dan laptop (walaupun pemrograman khusus mungkin diperlukan untuk membuat antarmuka). Sama seperti radio control, Bluetooth menawarkan komunikasi dua arah.


  • Manfaat: Dikelola dari perangkat berkemampuan Bluetooth apa pun. Tetapi, sebagai aturan, pemrograman tambahan diperlukan. Ini adalah smartphone, laptop, dll. Kecepatan data yang lebih tinggi dapat bersifat omnidirectional. Oleh karena itu, garis pandang tidak diperlukan dan sinyal dapat melewati dinding sedikit.
  • Kekurangan. Harus bekerja berpasangan. Jaraknya biasanya sekitar 10m (tanpa rintangan).

Kontrol Wi-Fi

Kontrol WiFi seringkali merupakan tambahan opsional untuk robot. Kemampuan untuk mengontrol robot secara nirkabel melalui Internet memberikan beberapa keuntungan yang signifikan (dan beberapa kerugian) untuk kontrol nirkabel. Untuk mengatur kontrol Wi-Fi robot, Anda memerlukan router nirkabel yang terhubung ke Internet dan unit WiFi pada robot itu sendiri. Untuk robot, Anda dapat menggunakan perangkat yang mendukung protokol TCP/IP.


  • Keuntungannya adalah kemampuan untuk mengendalikan robot dari mana saja di dunia. Untuk melakukan ini, itu harus berada dalam jangkauan router nirkabel. Kecepatan transfer data yang tinggi dimungkinkan.
  • Kerugiannya adalah bahwa pemrograman diperlukan. Jarak maksimum biasanya ditentukan oleh pilihan router nirkabel.

Kontrol ponsel

Teknologi nirkabel lain yang awalnya dikembangkan untuk komunikasi antarmanusia, telepon seluler, kini digunakan untuk mengendalikan robot. Karena frekuensi ponsel dapat disesuaikan, mengaktifkan modul seluler pada robot biasanya memerlukan pemrograman tambahan. Itu juga tidak memerlukan pemahaman tentang sistem dan aturan jaringan seluler.


  • Kelebihan: robot dapat dikendalikan dimana saja selama ada sinyal seluler. Komunikasi satelit dimungkinkan.
  • Kekurangan; Menyiapkan kontrol seluler bisa jadi rumit - tidak untuk pemula. Setiap jaringan seluler memiliki persyaratan dan batasannya sendiri. Layanan online tidak gratis. Biasanya, semakin banyak data yang Anda transfer, semakin banyak uang yang harus Anda bayar. Sistem belum dikonfigurasi untuk digunakan dalam robotika.

Langkah selanjutnya adalah memanfaatkan mikrokontroler di robot Anda sepenuhnya. Dan pertama-tama, memprogram algoritmanya untuk memasukkan data dari sensornya. Kontrol otonom dapat dilakukan dalam berbagai bentuk:

  1. diprogram sebelumnya tanpa umpan balik dari lingkungan
  2. dengan umpan balik terbatas dari sensor
  3. dengan umpan balik sensor yang kompleks

Kontrol otonom sejati mencakup banyak sensor dan algoritma. Mereka memungkinkan robot untuk secara mandiri menentukan tindakan terbaik dalam situasi tertentu. Metode kontrol paling canggih yang saat ini diterapkan pada robot otonom adalah perintah visual dan pendengaran. Untuk kontrol visual, robot melihat orang atau objek untuk menerima perintahnya.


Mengontrol robot untuk berbelok ke kiri dengan membaca panah yang menunjuk ke kiri dari selembar kertas jauh lebih sulit daripada yang dibayangkan. Perintah layanan seperti "belok kiri" juga memerlukan sedikit pemrograman. Memprogram banyak perintah rumit seperti "Bawakan aku sandal" bukan lagi fantasi. Meskipun membutuhkan tingkat pemrograman yang sangat tinggi dan banyak waktu.

  • Manfaatnya adalah robotika "nyata". Tugas dapat sesederhana mengedipkan lampu berdasarkan pembacaan dari satu sensor, hingga mendaratkan pesawat ruang angkasa di planet yang jauh.
  • Kerugiannya hanya bergantung pada programmer. Jika robot melakukan sesuatu yang tidak Anda inginkan, maka Anda hanya memiliki satu pilihan. Ini untuk memeriksa kode Anda, mengubahnya, dan mengunggah perubahan ke robot.

Bagian praktis

Tujuan proyek kami adalah menciptakan platform otonom yang mampu membuat keputusan berdasarkan sinyal eksternal dari sensor. Kami akan menggunakan mikrokontroler Lego EV3. Ini memungkinkan kami menjadikannya sebagai platform yang sepenuhnya otonom. Jadi semi-otonom, dikendalikan melalui Bluetooth atau menggunakan remote control inframerah.


LEGO EV3 Bata yang Dapat Diprogram

Hari ini Anda tidak akan mengejutkan siapa pun dengan radio yang dikendalikan buatan sendiri. Tetapi Anda harus mengakui, entah bagaimana "dengan cara kuno" untuk menekan tombol kontrol ... Jauh lebih menarik untuk dikelola kerajinan dengan sapuan kuas, bukan? Artikel ini menunjukkan contoh bagaimana Anda dapat mengatur remote control menggunakan papan Arduino dan beberapa sensor tikungan. PHIRO Pro akan bertindak sebagai subjek uji

Langkah 1: Apa yang Anda butuhkan

  • Sensor lentur;
  • Arduino UNO;

  • Modul Bluetooth HC-05;

  • Sarung tangan;

  • pelompat;

  • baterai 9B;

  • Aplikasi Kode Saku.

Langkah 2: Memuat Standar Firma di Arduino

Diperlukan untuk memuat standar firmata pada papan Arduino untuk menghubungkannya dengan Kode Saku. Dalam proyek ini kami menggunakan Arduino UNO, namun papan Arduino apa pun dapat digunakan.

  • Kami menghubungkan papan Arduino ke komputer / laptop.
  • Di Arduino ID, pilih COM Port. Alat -> Port Serial -> Port COM yang Sesuai
  • Selanjutnya, pilih jenis papan. Alat -> Papan -> Papan Arduino Anda
  • Kemudian kita pilih standar Firma. Contoh -> Firma -> Firma Standar
  • Klik "Unggah" dan unggah kode ke papan.

Langkah 3: Hubungkan sensor ke papan dan pasang ke sarung tangan

Sensor flex adalah perangkat resistif yang dapat digunakan untuk mendeteksi flex atau tilt. Di bawah ini adalah diagram pengkabelan untuk sensor pada Arduino. Saya menggunakan braket stapler yang ditekuk untuk memasang sensor ke sarung tangan dengan aman, tetapi Anda dapat menggunakan ikatan ritsleting plastik jika Anda mau.

Langkah 4: Menghubungkan Modul Bluetooth HC-05 ke Arduino

Kami menghubungkan output modul bluetooth dan papan Arduino sebagai berikut:

  • HC05 Tx - Arduino Rx
  • HC05 Rx - Arduino Tx
  • Vcc - 5V
  • GND-GND

Langkah 5: Menghubungkan Arduino ke Baterai

Kami menggunakan baterai 9V untuk memberi daya pada papan Arduino dengan modul Bluetooth. Jenis pengaturan ini dijelaskan oleh kemungkinan pemasangan yang mudah di pergelangan tangan/gelang. Semakin kompak semakin baik.

Langkah 6: Program Kode Saku

Di bawah ini adalah contoh penggunaan program. Pertama-tama, pastikan PHIRO Pro dalam Mode 3 (Bluetooth Mode). Tekan tombol Mode pada PHIRO sebelum LED biru di sebelah layar di atas menyala.

Untuk program, ada 7 mode secara umum.

  • Jari telunjuk diperpanjang. Lampu depan menyala merah. Program menunjukkan STOP.
  • Jari telunjuk dan tengah diluruskan. Lampu depan menyala hijau. Program menunjukkan STOP.
  • Jari telunjuk, tengah dan manis diluruskan. Lampu depan menyala biru. Program menunjukkan STOP.
  • Telapak tangan terbuka. PHIRO bergerak maju. Lampu depan menyala putih. Program menunjukkan FORWARD (maju).
  • Telapak tangan terkepal menjadi kepalan tangan. PHIRO berhenti. Lampu depan mati. Program menunjukkan STOP.
  • Telapak tangan dikepalkan dan dimiringkan ke kiri (ponsel dimiringkan ke kiri). PHIRO belok kiri. Lampu depan kiri menyala kuning. Program menunjukkan KIRI (ke kiri).
  • Telapak tangan dikepalkan dan dimiringkan ke kanan (ponsel dimiringkan ke kanan). PHIRO berbelok ke kanan. Lampu depan kanan menyala kuning. Program menunjukkan KANAN (kanan).

Langkah 7: Kami melakukan instalasi akhir

Untuk memasang telepon di lengan Anda, Anda dapat menggunakan gelang atau melakukan seperti yang saya lakukan.

Saya membeli penutup murah untuk ponsel saya, memotong lubang dan meregangkan pita Velcro. Gelang dengan telepon sudah siap.

Itu saja!) Terima kasih atas perhatian Anda)

Untuk mendapatkan pengalaman dalam bekerja dengan papan Arduino, dapat dikatakan, sebagai pengalaman belajar dan hanya untuk bersenang-senang, proyek ini dibuat. Tujuan dari proyek ini adalah untuk membuat mobil yang dapat bergerak secara mandiri di berbagai rintangan tanpa bertabrakan dengannya.

Langkah 1: Daftar komponen dan biaya proyek

1. Mobil mainan dengan kontrol radio (radio dikendalikan).

Benda ini berharga sekitar 20 dolar, jika Anda memiliki kesempatan untuk menghabiskan lebih banyak, Anda dapat menggunakan lebih baik.

2. Mikrokontroler Arduino Uno - $25

3. Pelindung motor untuk mengontrol motor listrik - $20

4. GPS untuk navigasi. Adafruit Ultimate GPS Shield - $50

5. Magnetometer sebagai kompas untuk navigasi. Adafruit HMC5883 Magnetometer - $10

6. Sensor jarak ultrasonik untuk menghindari rintangan. HC-SR04 - $6

7. Layar LCD untuk menunjukkan status dan informasi kendaraan. Layar LCD Biru 1602 IIC, I2C TWI - $6 (Anda dapat menggunakan yang lain)

8. Sensor inframerah dan remote control.

9. Sketsa Arduino (program C++).

10. Papan kayu tipis sebagai platform pemasangan.

11. Papan tempat memotong roti. Satu panjang dan sempit, dan yang lainnya kecil untuk memasang magnetometer secara terpisah di atasnya dari elemen lain.

12. Pelompat.

13. Kit Pemasangan Sensor Ultrasonik - $12

14. Besi solder dan solder.

Jadi, secara keseluruhan dibutuhkan sekitar $150, dengan asumsi Anda membeli semua komponen ini, karena Anda mungkin sudah memiliki sebagian dari itu.

Langkah 2: Pemasangan sasis dan platform

Kontrol radio telah dihapus dari mainan yang tidak diinginkan yang berharga 15 dolar.

Mobil ini memiliki dua mesin. Dengan bantuan satu mesin, kendali jarak jauh mengontrol kecepatan robot, dan dengan bantuan mesin lainnya, kemudi dikendalikan.

Papan tipis digunakan sebagai permukaan pemasangan, di mana papan tempat memotong roti, Arduino, LCD, dll. dipasang. Baterai ditempatkan di bawah papan dan kabel dilewatkan melalui lubang yang dibor.

Langkah 3: Program

Arduino dikendalikan melalui program C++.

Sumber

RC_Car_Test_2014_07_20_001.ino

Langkah 4: Layar LCD

Selama pengoperasian, layar menampilkan informasi berikut:

Baris 1:

1. TH - Target, arah ke titik arah saat ini

2. CH - Arah robot saat ini

Baris 2:

3. Err - Kompas arah, menunjukkan ke arah mana robot bergerak (kiri atau kanan)

4. Dist - Jarak fokus (dalam meter) ke titik jalan saat ini

Baris 3:

5. SNR - Jarak sonar, yaitu jarak ke objek apa pun di depan robot

6. Spd - Kecepatan robot

Baris 4:

7. Mem - Memori (dalam byte). Memori Arduino memiliki 2 KB

8. WPT n OF x - Menunjukkan di mana robot berada dalam daftar waypoint

Langkah 5: Hindari Tabrakan Dengan Objek

Agar robot dapat menghindari rintangan, sensor "Ping" ultrasonik digunakan di sini. Diputuskan untuk menggabungkannya dengan perpustakaan Arduino NewPing, karena lebih baik daripada perpustakaan Ping sederhana.

Perpustakaan diambil dari sini: https://github.com/fmbfla/Arduino/tree/master/NewPing

Sensor dipasang pada bumper robot.

Pengendali Jarak Jauh, ver. 0.1.1

(kontrol robot dari jarak jauh melalui Wi-Fi dari tablet dalam mode manual)

program serbaguna untuk mod OpenComputers

Program ini memungkinkan Anda untuk mendapatkan kontrol penuh atas robot, melakukan banyak tindakan dari jarak jauh, sambil melihat robot itu sendiri dan parameternya.

Misalnya, Anda bisa memasukkan robot ke tempat-tempat yang sulit dijangkau, membongkar uranium dari reaktor tanpa disinari, membangun struktur sederhana yang belum bisa Anda jangkau sendiri, atau sebaliknya, membawa sesuatu. Robot berada di bawah kendali penuh Anda.

Aplikasi lucu dari program ini adalah untuk menyerang pemain. Menurut pengaturan konfigurasi, robot dapat melakukan tindakan yang terkait dengan penggunaan objek, menghidupkan dan mematikan tombol, tuas dan mekanisme dan alat di pribadi orang lain, meskipun mereka tidak merusak pribadi. Dimungkinkan untuk melakukan serangan dan menghancurkan semua penyuling, bahan bakar diesel, dan kincir angin pemain, jika dia tidak ada dalam permainan dan tidak menyembunyikan semuanya dari atap, atau tidak memasang penjaga dan tidak mendeteksi penyerang.

Anda dapat mengencangkan ruang reaktor ke dinding korban, mendorong batang 4-uranium ke sana, menyalakan batu merah di robot dan meledakkan dinding di beberapa blok, jika pemain-korban yang ceroboh telah mengunci rumah tyutelka di tyutelka di sepanjang tepi dinding, seperti yang biasanya dilakukan pemain =).

Reaktor di IT dalam pengaturan menghancurkan blok dalam radius 2-4 blok. Ada kemungkinan Anda akan menyelinap ke rumah korban, saat Anda bersembunyi dan tidak terlihat sama sekali.

Kode program (terbaru):

TABLET:(pastebin dapatkan b8nz3PrH tabletRC.lua)

ROBOT:(pastebin dapatkan 7V2fvm7L robotRC.lua)

Versi lama (lama):

Persyaratan untuk konfigurasi robot dan tablet ( berdasarkan peta yang ditautkan, diperlukan, pengontrol inventaris juga diperlukan di robot, sisanya opsional. Anda dapat membuang tanda-tanda dan mengisi pengontrol ember, menambahkan sedikit garis dan menggosok cairan dan sebagainya. ChL belum digunakan dalam program. Untuk leher, papan merah, magnet, inventaris besar sangat diinginkan):

Tablet (hard take segera dengan OS yang diinstal):

Robot (untuk saat ini, Anda dapat menolak CL dan mendorong pengontrol-ekspander papan. Kemudian Anda dapat mendorong robot dengan cepat, jika perlu, kartu WF atau kartu INET):

Halo Habrahabr! Saya sedang duduk di malam tanggal 11 Juni, menonton film. Tanpa diduga untuk diri saya sendiri, saya menemukan bahwa seorang wanita yang tidak saya kenal sebelumnya menulis kepada saya dengan proposal untuk membuat robot untuk pencarian baru mereka. Intinya adalah bahwa Anda perlu memecahkan teka-teki, menjelajahi cache, menerapkan petunjuk dengan benar, menggunakan hal-hal yang tersedia dan akhirnya mendapatkan kunci dan membuka pintu ... Saya diminta untuk membuat robot yang dikendalikan dari komputer menggunakan program terpisah. Saya sempat ragu dengan beberapa masalah, misalnya: apakah saya akan punya waktu dan bagaimana tepatnya melakukan transfer data nirkabel (sebelumnya saya hanya berurusan dengan transfer data nirkabel di NXT)? Setelah menimbang pro dan kontra, saya setuju. Setelah itu, saya mulai berpikir tentang transfer data. Karena perlu membuat robot dengan cepat, tidak ada waktu untuk mengingat dan menguasai, misalnya Delphi, maka muncullah ide untuk membuat modul yang akan mengirimkan perintah. Komputer hanya perlu mengirim data ke port COM. Metode ini aneh, tetapi tercepat. Saya ingin menggambarkannya di sini. Saya juga akan melampirkan 3 program yang akan membantu Anda membuat mobil yang dikendalikan radio.
Perakitan pemancar dan programnya.
Saya membuat modul untuk komputer dari FTDI Basic Breakout 5 / 3.3V dari DFrobot, mikrokontroler ATMEGA 328P-PU yang cukup umum dengan bootloader Arduino dan modul radio berdasarkan chip nRF24L01. Sebenarnya, itu hanya Arduino Uno dengan modul radio. Ini adalah apa itu. Modul radio memiliki fitur yang tidak langsung saya perhatikan: tegangan input harus berkisar antara 3 hingga 3,6 volt (walaupun menerapkan 5 volt padanya tidak akan mematikannya, tetapi tidak akan berfungsi), batas atas unit logis adalah 5V. Ini berarti bahwa untuk menghubungkan modul radio ke mega, Anda tidak memerlukan konverter level antara 3.3V dan 5V, tetapi Anda perlu memasang stabilizer 3.3V. FTDI memiliki stabilizer bawaan, dari mana saya memberi makan modul radio.

Beginilah tampilan modul itu sendiri (di dalam dan di dalam rakitan):

Program ini terdiri dari inisialisasi, pesan awal dan pemrosesan perintah dari program kontrol. Jadi itu dalam kasus saya. Perintah utama perpustakaan Mirf:

#termasuk
#termasuk
#termasuk
#termasuk
#termasuk
Pustaka ini diperlukan untuk pengoperasian modul radio

Mirf.csnPin = 4 - mengatur nomor pin yang bertanggung jawab untuk "izin berkomunikasi" modul radio dan MC
Mirf.cePin = 6 - mengatur jumlah pin yang bertanggung jawab untuk mode pengoperasian modul radio (penerima / pemancar)
Mirf.spi = &MirfHardwareSpi - menetapkan garis SPI
Mirf.init() - menginisialisasi modul radio
Mirf.payload = 1 - ukuran dalam byte dari satu pesan (default 16, maksimum 32)
Mirf.channel = 19 - mengatur saluran (0 - 127, default 0)
Mirf.config() - mengatur parameter transfer


Mirf.setTADDR((byte *)"serv1") - mengalihkan modul radio ke mode pemancar
Mirf.setRADDR((byte *)"serv1") - mengalihkan modul radio ke mode penerima

Mirf.send(data) - mengirimkan array tipe byte
Mirf.dataReady() - melaporkan akhir pemrosesan data yang diterima
Mirf.getData(data) - tulis data yang diterima ke array data

Saya melampirkan kode pemancar.

program pemancar

#termasuk
#termasuk
#termasuk
#termasuk
#termasuk

Char aktif;
bytedata;

Penyiapan batal()
{
Serial.begin(19200);

Mirf.csnPin = 4;
Mirf.cePin = 6;

Mirf.init();
Mirf.payload = 1;
Mirf.channel = 19;
Mirf.config();

Mirf.setTADDR((byte *)"serv1");

// memberi isyarat pesan tentang dimulainya pekerjaan
data=7;
Mirf.send(data);
penundaan (200);
}

lingkaran kosong()
{
if (Serial.available()) //Jika data siap dibaca
{
aktif=Serial.baca(); // Menulis data ke variabel
}

Jika (aktif = "2")
{
data=2;
}

Jika (aktif = "3")
{
data=3;
}

Jika (aktif = "4")
{
data=4;
}

Jika (aktif = "5")
{
data=5;
}

Jika (aktif = "6")
{
data=6;
}

Mirf.send(data); // Kirim data
while(Mirf.isSending()); // Tunggu data terkirim
}

Program kontrol.

Ada satu hal yang menarik - Pengolahan. Sintaksnya sama seperti di Arduino, hanya saja sebagai pengganti void loop() ada void draw(). Tetapi menjadi lebih menarik dalam situasi saya dengan perpustakaan Serial pemrosesan, yang memungkinkan Anda untuk bekerja dengan port serial. Setelah membaca pelajaran di situs web Sparkfun, saya bermain dengan kedipan LED pada arduino yang terhubung ke komputer dengan mengklik mouse. Setelah itu, saya menulis program untuk mengontrol robot dari keyboard. Saya melampirkan kode kontrol menggunakan panah. Pada prinsipnya, tidak ada yang aneh di dalamnya.

Program kontrol mesin

import processing.serial.*;
impor cc.arduino.*;

Port saya serial;
PFont f=createFont("LetterGothicStd-32.vlw", 24);

Penyiapan batal()
{
ukuran (360, 160);
pukulan (255);
latar belakang(0);
teksFont(f);

String portName = "XXXX"; // Di sini Anda perlu menulis nama port Anda
myPort = Serial baru (ini, portName, 19200);
}

Undian batal() (
jika (tombol Ditekan == salah)
{
jernih();
myPort.write("6");
println("6");
}
}

Tombol kosong Ditekan()
{
// 10 - masuk
// 32 - spasi
// 37/38/39/40 - kunci
jernih();

isi(255);
textAlign(PUSAT);
//teks(Kode kunci, 180, 80);

Beralih (Kode kunci)
{
kasus 37:
teks("Edem vlevo", 180, 80);
myPort.write("1");
merusak;

Kasus 38:
teks("Edem pryamo", 180, 80);
myPort.write("2");
merusak;

Kasus 39:
teks("Edem vpravo", 180, 80);
myPort.write("3");
merusak;

Kasus 40:
teks("Edem nazad", 180, 80);
myPort.write("4");
merusak;

bawaan:
teks("Takoy kommandi net", 180, 80);
myPort.write("6");
merusak;
}
}

program penerima.

Inisialisasi program ini berbeda dengan inisialisasi program pemancar hanya dalam satu baris. Perintah kunci dalam loop tak berujung adalah Mirf.getData(data). Selanjutnya, perintah yang diterima dibandingkan dengan angka-angka yang sesuai dengan tindakan robot apa pun. Nah, maka robot itu bertindak tepat pada perintah. Saya melampirkan kode program dari penerima mesin.

Program mesin

#termasuk
#termasuk
#termasuk
#termasuk
#termasuk

Penyiapan batal()
{
Serial.begin(9600);

PinMode(13, OUTPUT); //LED

Mirf.csnPin = 10;
Mirf.cePin = 9;
Mirf.spi=
Mirf.init();
Mirf.payload = 1;
Mirf.channel = 19;
Mirf.config();
Mirf.setRADDR((byte *)"serv1");
}

lingkaran kosong()
{
bytedata;

Jika(!Mirf.isSending() && Mirf.dataReady())
{
Mirf.getData(data);
Serial println(data);
}

Beralih (data)
{
kasus 1:
motor (-100, 100); // belok kiri
merusak;

Kasus 2:
motor(100, 100); // jalan lurus
merusak;

Kasus 3:
motor(100, -100); // belok kanan
merusak;

Kasus 4:
motor (-100, -100); // kembali
merusak;

bawaan:
motor (0, 0); // berdiri
merusak;
}

penundaan (50);
}

Kesimpulan.

Apa yang keluar dari itu semua:

Saya membuat robot ini untuk Claustrophobia. Mereka melakukan pencarian dalam kenyataan di kota yang berbeda, dan hanya untuk salah satu pencarian ini, penyelenggara membutuhkan robot pencari ranjau yang dikendalikan radio. Saya suka itu. Hal ini tentu merugikan, karena dengan latar belakang kontrol menggunakan sarana komunikasi yang terpasang di laptop, tetapi di sisi lain, itu dilakukan dengan sangat cepat dan tanpa masalah. Saya harap artikel ini akan membantu untuk melakukan hal serupa, dan mungkin bahkan lebih sulit. Di sini, siapa pun yang menginginkannya.

Tag: Tambahkan tag