Lego EV3. gerakan garis hitam

Beginilah cara seseorang melihat garis:

Beginilah cara robot melihatnya:


Kami akan menggunakan fitur ini saat merancang dan memprogram robot untuk kategori kompetisi "Trajektori".

Ada banyak cara untuk mengajari robot melihat garis dan bergerak di sepanjang garis itu. Ada program yang kompleks dan program yang sangat sederhana.

Saya ingin berbicara tentang metode pemrograman yang bahkan anak-anak di kelas 2-3 akan menguasainya. Pada usia ini, jauh lebih mudah bagi mereka untuk merakit struktur sesuai dengan instruksi, dan memprogram robot adalah tugas yang sulit bagi mereka. Tetapi metode ini akan memungkinkan anak untuk memprogram robot pada rute trek mana pun dalam 15-30 menit (dengan mempertimbangkan verifikasi bertahap dan penyesuaian beberapa fitur lintasan).

Metode ini diuji di kompetisi kota dan regional dalam robotika di wilayah Surgut dan Otonomi Khanty-Mansi Okrug-Yugra dan membawa sekolah kami menjadi juara pertama. Di sana saya yakin bahwa topik ini sangat relevan untuk banyak tim.

Baiklah, mari kita mulai.

Saat mempersiapkan kompetisi jenis ini, pemrograman hanyalah bagian dari solusi untuk masalah tersebut. Anda harus mulai dengan merancang robot untuk trek tertentu. Di artikel berikutnya, saya akan menunjukkan cara melakukannya. Nah, karena pergerakan sepanjang garis sangat umum, saya akan mulai dengan pemrograman.

Pertimbangkan versi robot dengan dua sensor cahaya, karena lebih mudah dipahami oleh siswa sekolah dasar.

Sensor cahaya terhubung ke port 2 dan 3. Motor ke port B dan C.
Sensor ditempatkan di tepi garis (coba bereksperimen dengan menempatkan sensor pada jarak yang berbeda satu sama lain dan pada ketinggian yang berbeda).
Sebuah poin penting. Untuk operasi terbaik dari sirkuit seperti itu, diinginkan untuk memilih sepasang sensor sesuai dengan parameter. Jika tidak, perlu untuk memperkenalkan blok untuk mengoreksi nilai sensor.
Pemasangan sensor pada sasis sesuai dengan skema klasik (segitiga), kira-kira seperti pada gambar.

Program ini akan terdiri dari sejumlah kecil blok:


1. Dua blok sensor cahaya;
2. Empat blok "Matematika";
3. Dua blok motor.

Robot dikendalikan oleh dua motor. Kekuatan masing-masing adalah 100 unit. Untuk skema kami, kami akan mengambil nilai rata-rata daya motor sama dengan 50. Artinya, kecepatan rata-rata saat bergerak dalam garis lurus akan sama dengan 50 unit. Ketika menyimpang dari gerak lurus, kekuatan motor akan meningkat atau menurun secara proporsional, tergantung pada sudut deviasi.

Sekarang mari kita cari tahu bagaimana menghubungkan semua blok, mengatur program dan apa yang akan terjadi di dalamnya.
Mari kita mengekspos dua sensor cahaya dan menetapkan mereka port 2 dan 3.
Kami mengambil blok matematika dan memilih "Pengurangan".
Mari hubungkan sensor cahaya dari output "Intensitas" dengan ban ke blok matematika ke input "A" dan "B".
Jika sensor robot dipasang secara simetris dari pusat garis lintasan, maka nilai kedua sensor akan sama. Setelah dikurangi, kami mendapatkan nilai - 0.
Blok matematika berikutnya akan digunakan sebagai koefisien dan Anda perlu mengatur "Kalikan" di dalamnya.
Untuk menghitung koefisien, Anda perlu mengukur level "putih" dan "hitam" menggunakan unit NXT.
Misalkan: putih -70, hitam -50.
Selanjutnya, kami menghitung: 70-50=20 (selisih antara putih dan hitam), 50/20=2,5 ​​(kami menetapkan nilai daya rata-rata ketika bergerak dalam garis lurus di blok matematika menjadi 50. Nilai ini ditambah kekuatan tambahan saat menyesuaikan gerakan harus sama dengan 100)
Coba atur nilainya menjadi 2,5 pada input "A", lalu ambil dengan lebih akurat.
Hubungkan output "Hasil" dari blok matematika "Pengurangan" sebelumnya ke input "B" dari blok matematika "Perkalian".
Berikutnya adalah pasangan - blok matematika (Penambahan) dan motor B.
Pengaturan blok matematika:
Input "A" diatur ke 50 (setengah daya motor).
Output dari blok "Hasil" dihubungkan oleh bus ke input "Daya" motor B.
Mengikuti uap adalah blok matematika (Pengurangan) dan motor C.
Pengaturan blok matematika:
Masukan "A" diatur ke 50.
Input "B" dihubungkan oleh bus ke output "Hasil" dari blok matematika "Perkalian".
Output dari blok "Hasil" dihubungkan oleh bus ke input "Daya" dari motor C.

Sebagai hasil dari semua tindakan ini, Anda akan menerima program berikut:

Karena semua ini akan bekerja dalam satu siklus, kami menambahkan "Siklus", pilih dan transfer semuanya ke "Siklus".

Sekarang mari kita coba mencari tahu bagaimana program akan bekerja dan bagaimana mengkonfigurasinya.


Saat robot bergerak dalam garis lurus, nilai sensornya sama, yang berarti output dari blok "Kurangi" akan bernilai 0. Keluaran dari blok "Perkalian" juga memberikan nilai 0. Nilai ini diumpankan secara paralel ke pasangan kontrol motor. Karena nilai 50 diatur dalam blok-blok ini, penambahan atau pengurangan 0 tidak mempengaruhi daya motor. Kedua motor berjalan pada daya yang sama yaitu 50 dan robot berguling dalam garis lurus.

Misalkan trek berbelok atau robot menyimpang dari garis lurus. Apa yang akan terjadi?

Gambar tersebut menunjukkan bahwa iluminasi sensor yang terhubung ke port 2 (selanjutnya disebut sebagai sensor 2 dan 3) meningkat, karena bergerak ke bidang putih, dan iluminasi sensor 3 berkurang. Misalkan nilai sensor ini menjadi: sensor 2 - 55 unit, dan sensor 3 - 45 unit.
Blok "Pengurangan" akan menentukan perbedaan antara nilai kedua sensor (10) dan memasukkannya ke blok koreksi (perkalian dengan faktor (10 * 2,5 = 25)) dan kemudian ke blok kontrol
motor.
Dalam blok matematika (Penambahan) kontrol motor B ke nilai kecepatan rata-rata 50
25 akan ditambahkan dan nilai daya 75 akan diterapkan ke motor B.
Dalam blok matematika (Pengurangan) motor pengontrol C, 25 akan dikurangi dari nilai kecepatan rata-rata 50 dan nilai daya 25 akan diterapkan ke motor C.
Dengan demikian, penyimpangan dari garis lurus akan diperbaiki.

Jika trek berbelok tajam ke samping dan sensor 2 menyala putih dan sensor 3 menyala hitam. Nilai iluminasi dari sensor ini menjadi: sensor 2 - 70 unit, dan sensor 3 - 50 unit.
Blok "Pengurangan" akan menentukan perbedaan antara nilai dua sensor (20) dan memasukkannya ke blok koreksi (20 * 2,5 = 50) dan kemudian ke blok kontrol motor.
Sekarang di blok matematika (Penambahan) mengendalikan motor B, nilai daya 50 +50 =100 akan diterapkan ke motor B.
Dalam blok matematika (Pengurangan) kontrol motor C, nilai daya 50 - 50 = 0 akan diterapkan ke motor C.
Dan robot akan berbelok tajam.

Pada bidang putih dan hitam, robot harus bergerak dalam garis lurus. Jika ini tidak terjadi, coba cocokkan sensor dengan nilai yang sama.

Sekarang mari buat blok baru dan gunakan untuk memindahkan robot di sepanjang trek apa pun.
Pilih siklus, lalu di menu "Edit", pilih perintah "Buat blok saya".

Pada kotak dialog "Block Builder", beri nama blok kita, misalnya "Go", pilih ikon untuk blok tersebut dan klik "DONE".

Sekarang kami memiliki blok yang dapat digunakan dalam kasus di mana kami perlu bergerak di sepanjang garis.

Untuk membuat robot bergerak mulus di sepanjang garis hitam, Anda harus menghitung kecepatan gerakan itu sendiri.

Seseorang melihat garis hitam dan batasnya yang jelas. Sensor cahaya bekerja sedikit berbeda.

Properti sensor cahaya inilah - ketidakmampuan untuk membedakan dengan jelas batas antara putih dan hitam - yang akan kita gunakan untuk menghitung kecepatan gerakan.

Pertama, mari kita memperkenalkan gagasan "Titik ideal lintasan".

Pembacaan sensor cahaya berkisar dari 20 hingga 80, paling sering putih, bacaannya sekitar 65, hitam, sekitar 40.

Titik ideal adalah titik kondisional kira-kira di tengah warna putih dan hitam, setelah itu robot akan bergerak di sepanjang garis hitam.

Di sini, lokasi titik sangat mendasar - antara putih dan hitam. Tidak mungkin untuk mengaturnya tepat pada putih atau hitam karena alasan matematis, mengapa - itu akan menjadi jelas nanti.

Secara empiris, kami telah menghitung bahwa titik ideal dapat dihitung menggunakan rumus berikut:

Robot harus bergerak secara ketat di sepanjang titik ideal. Jika terjadi penyimpangan di kedua arah, robot harus kembali ke titik itu.

Mari menulis deskripsi matematis dari masalah tersebut.

data awal.

Titik sempurna.

Pembacaan sensor cahaya saat ini.

Hasil.

Tenaga motorB.

Daya putaran motorC.

Keputusan.

Mari kita pertimbangkan dua situasi. Pertama: robot melenceng dari garis hitam menuju putih.

Dalam hal ini, robot harus meningkatkan daya putaran motor B dan menurunkan daya motor C.

Dalam situasi di mana robot melaju ke garis hitam, yang terjadi adalah kebalikannya.

Semakin robot menyimpang dari titik ideal, semakin cepat ia harus kembali ke sana.

Tetapi pembuatan regulator semacam itu adalah tugas yang agak sulit, dan tidak selalu diperlukan secara keseluruhan.

Oleh karena itu, kami memutuskan untuk membatasi diri pada P-regulator yang cukup merespons penyimpangan dari garis hitam.

Dalam bahasa matematika, ini akan ditulis sebagai:

di mana Hb dan Hc adalah kekuatan total motor B dan C, masing-masing,

Hbase - kekuatan dasar tertentu dari motor, yang menentukan kecepatan robot. Itu dipilih secara eksperimental, tergantung pada desain robot dan ketajaman belokan.

Itech - pembacaan sensor cahaya saat ini.

I id - menghitung titik ideal.

k adalah koefisien proporsionalitas, dipilih secara eksperimental.

Di bagian ketiga, kita akan melihat bagaimana memprogram ini di lingkungan NXT-G.

Algoritme kontrol untuk robot LEGO seluler. Pelacakan garis dengan dua sensor cahaya

Guru pendidikan tambahan

Kazakova Lyubov Alexandrovna


Gerakan garis

  • Dua sensor cahaya
  • Pengontrol proporsional (pengontrol P)

Algoritma untuk bergerak di sepanjang garis hitam tanpa pengontrol proporsional

  • Kedua motor berputar dengan kekuatan yang sama
  • Jika sensor lampu kanan mengenai garis hitam, maka daya motor kiri (misalnya B) berkurang atau berhenti
  • Jika sensor lampu kiri mengenai garis hitam, maka kekuatan motor lainnya (misalnya, C) berkurang (kembali ke garis), berkurang atau berhenti
  • Jika kedua sensor menyala putih atau hitam, maka ada gerakan bujursangkar

Gerakan diatur dengan mengubah kekuatan salah satu motor


Contoh program untuk bergerak di sepanjang garis hitam tanpa pengontrol-P

Gerakan diatur dengan mengubah sudut rotasi


  • Pengontrol proporsional (P-controller) memungkinkan Anda untuk menyesuaikan perilaku robot, tergantung pada seberapa jauh perilakunya berbeda dari yang diinginkan.
  • Semakin robot menyimpang dari target, semakin banyak kekuatan yang dibutuhkan untuk kembali ke sana.

  • P-controller digunakan untuk menjaga robot dalam keadaan tertentu:
  • Tahan posisi manipulator Bergerak di sepanjang garis (sensor cahaya) Bergerak di sepanjang dinding (sensor jarak)
  • Memegang posisi manipulator
  • Gerakan garis (sensor cahaya)
  • Bergerak di sepanjang dinding (sensor jarak)

Pelacakan garis dengan satu sensor

  • Tujuannya adalah untuk bergerak di sepanjang perbatasan "putih-hitam"
  • Seseorang dapat membedakan batas putih dan hitam. Robotnya tidak bisa.
  • Target robot ada di warna abu-abu

penyeberangan

Saat menggunakan dua sensor cahaya, dimungkinkan untuk mengatur lalu lintas di rute yang lebih sulit



Algoritma untuk mengemudi di sepanjang jalan raya dengan persimpangan

  • Kedua sensor berwarna putih - robot bergerak dalam garis lurus (kedua motor berputar dengan kekuatan yang sama)
  • Jika sensor cahaya kanan mengenai garis hitam, dan sensor kiri pada garis putih, maka belok kanan
  • Jika sensor cahaya kiri mengenai garis hitam, dan sensor kanan mengenai garis putih, maka berbelok ke kiri
  • Jika kedua sensor menyala hitam, maka terjadi gerakan bujursangkar. Anda dapat menghitung persimpangan atau melakukan semacam tindakan


Prinsip pengoperasian P-regulator

Posisi sensor

O=O1-O2


Algoritma untuk bergerak di sepanjang garis hitam dengan pengontrol proporsional

SW \u003d K * (C-T)

  • C - nilai target (ambil bacaan dari sensor cahaya putih dan hitam, hitung rata-rata)
  • T - nilai saat ini - diterima dari sensor
  • K adalah koefisien sensitivitas. Semakin banyak, semakin tinggi sensitivitasnya.



Untuk melihat presentasi dengan gambar, desain, dan slide, unduh filenya dan buka di PowerPoint di komputer Anda.
Isi teks slide presentasi:
"Algoritma untuk bergerak di sepanjang garis hitam dengan satu sensor warna" Lingkari pada Guru "Robotik" di depan Yezidov Ahmed Elievich Di MBU DO "Shelkovskaya CTT" Untuk mempelajari algoritme untuk bergerak di sepanjang garis hitam, robot Lego Mindstorms EV3 dengan satu sensor warna akan digunakan Sensor warna Sensor warna membedakan 7 warna dan dapat mendeteksi adanya warna. Seperti pada NXT, ia dapat bekerja sebagai sensor cahaya Lapangan Kompetisi Robot Garis S Jalur berbentuk "S" yang diusulkan akan memungkinkan Anda untuk melakukan tes menarik lainnya dari robot yang dibuat untuk kecepatan dan reaksi. Mari kita pertimbangkan algoritma paling sederhana untuk bergerak di sepanjang garis hitam pada satu sensor warna pada EV3. Algoritma ini adalah yang paling lambat, tetapi paling stabil. Robot tidak akan bergerak secara ketat di sepanjang garis hitam, tetapi di sepanjang perbatasannya, berbelok ke kiri dan kanan dan bertahap bergerak maju Algoritmanya sangat sederhana : jika sensor melihat hitam, maka robot berputar ke satu arah, jika melihat putih - ke arah lain. Menelusuri Garis dalam Mode Cahaya Terpantul dengan Dua SensorKadang-kadang sensor warna mungkin tidak dapat membedakan antara hitam dan putih dengan baik. Solusi untuk masalah ini adalah dengan menggunakan sensor tidak dalam mode deteksi warna, tetapi dalam mode deteksi kecerahan cahaya yang dipantulkan. Dalam mode ini, mengetahui nilai sensor pada permukaan yang gelap dan terang, kita dapat secara mandiri mengatakan apa yang akan dianggap putih dan apa yang akan menjadi hitam. Sekarang mari kita tentukan nilai kecerahan pada permukaan putih dan hitam. Untuk melakukan ini, di menu Brick EV3 kami menemukan tab "Aplikasi Brick". Sekarang Anda berada di jendela tampilan port dan Anda dapat melihat pembacaan semua sensor pada saat ini. sensor kami harus bersinar merah, yang berarti mereka berada dalam mode deteksi cahaya yang dipantulkan. Jika bersinar biru, di jendela tampilan port pada port yang diinginkan, tekan tombol tengah dan pilih mode COL-REFLECT Sekarang kita akan menempatkan robot sehingga kedua sensor berada di atas permukaan putih. Kami melihat angka di port 1 dan 4. Dalam kasus kami, nilainya masing-masing adalah 66 dan 71. Ini akan menjadi nilai putih dari sensor. Sekarang mari kita tempatkan robot sehingga sensor berada di atas permukaan hitam. Sekali lagi, mari kita lihat nilai port 1 dan 4. Kami masing-masing memiliki 5 dan 6. Berikut adalah arti dari kata hitam. Selanjutnya kita akan memodifikasi program sebelumnya. Yaitu, kami mengubah pengaturan sakelar. Selama mereka memiliki Sensor Warna -> Pengukuran -> Warna terpasang. Kita perlu mengatur Color Sensor -> Comparison -> Reflected Light Intensity Sekarang kita harus mengatur "comparison type" dan "threshold value". Nilai ambang batas adalah nilai beberapa "abu-abu", nilai di bawah ini yang akan kami anggap hitam, dan lebih banyak lagi - putih. Untuk pendekatan pertama, akan lebih mudah untuk menggunakan nilai rata-rata antara putih dan hitam dari setiap sensor. Jadi, nilai ambang sensor pertama (port #1) adalah (66+5)/2=35.5. Bulatkan hingga 35. Nilai ambang sensor kedua (port #4): (71+6)/2 = 38,5. Mari kita bulatkan menjadi 38. Sekarang kita atur nilai-nilai ini di setiap sakelar, masing-masing. Itu saja, blok dengan gerakan tetap di tempatnya tidak berubah, karena jika kita meletakkan tanda " di "jenis perbandingan"<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

Teks karya ditempatkan tanpa gambar dan rumus.
Versi lengkap dari karya tersebut tersedia di tab "File Pekerjaan" dalam format PDF

Lego Mindstorms EV3

Tahap persiapan

Membuat dan mengkalibrasi program

Kesimpulan

literatur

1. Perkenalan.

Robotika adalah salah satu bidang terpenting dari kemajuan ilmiah dan teknologi, di mana masalah mekanika dan teknologi baru bersentuhan dengan masalah kecerdasan buatan.

Dalam beberapa tahun terakhir, kemajuan dalam robotika dan sistem otomatis telah mengubah area pribadi dan bisnis dalam kehidupan kita. Robot banyak digunakan dalam transportasi, eksplorasi bumi dan ruang angkasa, operasi, industri militer, penelitian laboratorium, keamanan, produksi massal barang-barang industri dan konsumen. Banyak perangkat yang membuat keputusan berdasarkan data yang diterima dari sensor juga dapat dianggap sebagai robot - seperti, misalnya, elevator, yang tanpanya hidup kita tidak terpikirkan.

Konstruktor Mindstorms EV3 mengundang kita untuk memasuki dunia robot yang mempesona, membenamkan diri dalam lingkungan teknologi informasi yang kompleks.

Tujuan: Mempelajari cara memprogram robot untuk bergerak lurus.

    Kenali konstruktor Mindstorms EV3 dan lingkungan pemrogramannya.

    Buatlah program gerak robot pada garis lurus sepanjang 30 cm, 1 m 30 cm dan 2 m 17 cm.

    Konstruktor Mindstorms EV3.

Bagian desainer - 601 buah, motor servo - 3 buah, sensor warna, sensor gerak, sensor inframerah dan sensor sentuh. Blok mikroprosesor EV3 adalah otak dari LEGO Mindstorms.

Motor servo besar bertanggung jawab atas pergerakan robot, yang terhubung ke EV3 Brick dan membuat robot bergerak: maju dan mundur, berbalik dan mengemudi di sepanjang lintasan tertentu. Servomotor ini memiliki sensor rotasi bawaan, yang memungkinkan Anda mengontrol pergerakan robot dan kecepatannya dengan sangat akurat.

Anda dapat membuat robot melakukan suatu tindakan menggunakan perangkat lunak EV3. Program ini terdiri dari berbagai blok kontrol. Kami akan bekerja dengan blok gerakan.

Blok gerak mengontrol motor robot, menyalakan, mematikan, membuatnya bekerja sesuai dengan tugas. Anda dapat memprogram gerakan ke sejumlah putaran, atau derajat tertentu.

    Tahap persiapan.

    Pembuatan bidang teknis.

Kami akan menandai bidang kerja robot, menggunakan pita listrik dan penggaris kami akan membuat tiga garis panjang 30 cm - garis hijau, 1 m 15 cm - merah dan 2 m 17 cm - garis hitam.

    Perhitungan yang diperlukan:

Diameter roda robot - 5 cm 7 mm = 5,7 cm.

Satu putaran roda robot sama dengan keliling lingkaran dengan diameter 5,7 cm. Keliling ditemukan dengan rumus

Dimana r adalah jari-jari roda, d adalah diameter, = 3,14

aku = 5,7 * 3,14 = 17,898 = 17,9.

Itu. Untuk satu putaran roda, robot menempuh jarak 17,9 cm.

Hitung jumlah putaran yang diperlukan untuk melewati:

N=30: 17,9=1,68.

    1m 30cm = 130cm

N=130: 17,9=7,26.

    2 m 17 cm = 217 cm.

N = 217: 17,9 = 12,12.

    Pembuatan dan kalibrasi program.

Kami akan membuat program sesuai dengan algoritma berikut:

Algoritma:

    Pilih blok gerakan di perangkat lunak Mindstorms EV3.

    Nyalakan kedua motor ke arah yang ditentukan.

    Tunggu pembacaan sensor putaran salah satu motor berubah ke nilai yang ditentukan.

    Matikan motor.

Program yang telah selesai dimuat ke dalam unit kontrol robot. Kami menempatkan robot di lapangan dan menekan tombol start. EV3 berkendara melintasi lapangan dan berhenti di akhir garis tertentu. Tetapi untuk mencapai hasil akhir yang akurat, Anda harus mengkalibrasi, karena faktor eksternal memengaruhi gerakan.

    Lapangan dipasang di meja siswa, sehingga sedikit defleksi permukaan mungkin terjadi.

    Permukaan lapangan halus, sehingga adhesi roda robot yang buruk ke lapangan tidak dikesampingkan.

    Dalam menghitung jumlah putaran, kami harus membulatkan angka, dan oleh karena itu, dengan mengubah seperseratus putaran, kami mencapai hasil yang diperlukan.

5. Kesimpulan.

Kemampuan memprogram robot untuk bergerak dalam garis lurus akan berguna untuk membuat program yang lebih kompleks. Sebagai aturan, semua dimensi gerakan ditunjukkan dalam kerangka acuan untuk kompetisi robotika. Mereka diperlukan agar program tidak kelebihan beban dengan kondisi logis, loop, dan blok kontrol kompleks lainnya.

Pada tahap pengenalan selanjutnya dengan robot Lego Mindstorms EV3, Anda akan belajar cara memprogram belokan pada sudut tertentu, gerakan dalam lingkaran, spiral.

Sangat menarik untuk bekerja dengan desainer. Mempelajari lebih banyak tentang kemampuannya, Anda dapat memecahkan masalah teknis apa pun. Dan di masa depan, mungkin, buat model robot Lego Mindstorms EV3 Anda sendiri yang menarik.

Literatur.

    Koposov D. G. "Langkah pertama menuju robotika untuk kelas 5-6." - M.: Binom. Laboratorium Pengetahuan, 2012 - 286 hal.

    Filippov S.A. "Robotika untuk anak-anak dan orang tua" - "Sains" 2010

    sumber daya internet

    http://lego. rkc-74.ru/

    http://www.9151394.ru/projects/lego/lego6/beliovskaya/

    http://www. Lego. com/pendidikan/

Memuat...Memuat...