Saya ingin berbicara tentang pekerjaan saya dan proyek hewan peliharaan kolektif kami - robot dalam ruang bergerak berdasarkan sekelompok papan mikroprosesor ARDUINO (ATMEGA328 - seperti yang Anda lihat lebih baik), ESP8266 dan Raspberry Pi. Teman-teman saya dan saya memanggilnya MIRO - dari "Mobile Intelligent RObot".

Daftar Isi:
Bagian 1 ,
Bagian 2 ,
Bagian 3 ,
Bagian 4 ,
Bagian 5 .
Saya adalah kepala Pusat Pelatihan dan Penelitian untuk Robotika di Pacific State University dan pada saat yang sama EastMaker hackspace kecil lokal kami. Pusat universitas kami telah ada untuk tahun kelima. Secara formal, kami adalah unit struktural universitas yang memiliki dua vektor aktivitas utama (tidak terduga): akademik dan ilmiah. Aktivitas ilmiah sejauh ini terutama terkait dengan bagasi yang tersedia - sistem navigasi dan komunikasi untuk robotika bawah air. Bahkan sebelum kemunculan pusat kami, Laboratorium Teknologi dan Sistem Cerdas (LITiS) ada di Departemen Teknik Komputer, sebuah laboratorium bersama dengan Institut Masalah Teknologi Kelautan, Cabang Timur Jauh dari Akademi Ilmu Pengetahuan Rusia. Dan itu masih ada. Ketika pusat dibuat, kepala laboratorium ini menjadi penyelia ilmiahnya, dan Pusat Robotika menjadi basis sumber daya untuk LITiS.
Komponen kedua dari kegiatan ini adalah pendidikan. Proses pendidikan di Pusat sedang dibangun sebagai bagian dari kegiatan proyek siswa dan anak sekolah (kami melibatkan anak sekolah dalam sejumlah proyek). Mahasiswa sarjana dan pascasarjana dari hampir semua bidang teknis sedang mengerjakan proyek.


Pusat kami adalah antar departemen, tidak terikat pada departemen apa pun. Proyek, penelitian dan pengembangan di pangkalan teknis kami dapat dilakukan oleh mahasiswa dan karyawan dari seluruh universitas. Kalau saja ada keinginan dan pangkalan ini sudah cukup.
Bersamaan dengan kegiatan ini, saya dan teman-teman saya membuat sekolah robotika swasta dan menerapkan pengetahuan teknik untuk anak-anak di Khabarovsk. Dan untuk kegiatan pendidikan di sekolah dan di Pusat Robotika, menjadi segera jelas bahwa beberapa jenis kursus pejuang muda diperlukan, mengungkapkan dasar-dasar di bidang berikut:
- dasar-dasar teknologi mikroprosesor;
- sensor sederhana (prinsip operasi, fitur penggunaan);
- dasar-dasar teknologi pemrosesan bahan (penggilingan, pemotongan laser, pencetakan 3D);
- mengontrol skenario dan algoritma sederhana dari bidang robotika seluler.
Kemudian bagi saya tampaknya benar bahwa objek dari kursus ini adalah semacam robot ARDUINO yang tidak mahal.
Kami mulai melihat apa yang ada di pasaran. Dan mereka menemukan keanehan berikut. Ada robot dan kit ARDUINO yang sangat bagus. Seringkali cukup mahal. Tetapi mereka biasanya memiliki dua minus besar:
- penggunaan besi "asli" tertentu (seringkali ARDUINO yang sama, tetapi dalam versi penulis, melibatkan pembelian papan secara eksklusif dari satu pabrik);
- kurangnya materi pendidikan (ini umumnya merupakan hal yang menarik - orang membuat peralatan dan perlengkapan yang sangat baik untuk pendidikan, tetapi tidak peduli sama sekali untuk melepaskan hal-hal dasar: manual, pelajaran, buku kerja (jika perlu)).
Jadi hampir empat tahun yang lalu, MIRO muncul. Tapi baru saja muncul. Seiring waktu, logika proyek ini telah sepenuhnya berubah.
Awalnya, kami menciptakan kompleks pendidikan berdasarkan robot kami. Dan tidak ada ESP dan Raspberry Pi di sana. Ada ARDUINO dan modul bluetooth. Ini troli pertama:

Dengan troli ini, kami tahu apa yang harus dilakukan dengan siswa. Ya, bahkan di festival ROBOMECH yang kami adakan di Khabarovsk, kami mengumpulkan bola robofootball kecil untuk pengunjung.

Setelah beberapa waktu, kami membuat versi kedua, yang tidak berbeda secara mendasar, kecuali untuk bentuk dan beberapa perbaikan dalam tata letak. Pada tahap ini, kami juga sepenuhnya meninggalkan pencetakan 3D - semua dudukan dan kurung terbuat dari dua bahan lembaran (akrilik dan kayu lapis) dengan pemotongan laser.

Kami sudah memiliki instruksi ilustrasi yang bagus untuk merakit kit, semacam program pendidikan dengan manual dan buku kerja, dan kami secara aktif melatih anak-anak sekolah dan siswa, mengadakan kelas master pada hari-hari terbuka dan liburan kota.
Sekitar waktu ini, pasar dibanjiri dengan keputusan berbeda tentang topik ini. Dan kemampuan ATMEGA328 dalam robotika sungguhan, bahkan untuk pendidikan, telah menjadi terlalu kecil. Kemudian lahirlah konsep MIRO indoor robot baru, yang merupakan solusi terbuka untuk pembuatan prototipe cepat dari robot seluler dalam dan luar ruangan dengan perangkat keras yang cukup fungsional yang memungkinkan Anda untuk terjun ke OpenCV dan ROS dan segala macam IOT.
Jadi, esensi dari konsep MIRO hari ini.
Pertama , MIRO adalah robot seluler kecil, dengan sumber terbuka sepenuhnya (hingga komponen dan papan serial siap pakai yang digunakan - jika pabrikan tidak menyediakan sumber, maka kami juga tidak memilikinya), didistribusikan di bawah lisensi CC Attribution Share Alike 4.0.
Tubuh robot dibuat oleh pencetakan 3D dan pemotongan laser. Setelah versi pertama dari robot, dalam upaya mengurangi biaya, kami umumnya tidak ingin menggunakan pencetakan 3D dalam teknologi produksi. Tetapi setelah menderita dengan material lembaran di versi kedua, saya sepenuhnya meninggalkan gagasan untuk mengurangi biaya sehingga merusak kualitas dan fungsionalitas. Dan hari ini, MIRO selesai 90% menggunakan pencetakan 3D. Jauh lebih dapat diandalkan secara mekanis dan menyenangkan untuk digunakan. Satu-satunya aspirasi yang kami dukung dalam proses mendesain bagian tubuh adalah kemudahan pencetakan. Saya ingin menghindari dukungan yang rumit dan bagian "bengkok" - sehingga bahkan pada printer 3D murah kami mendapatkan hasil yang baik. Ke depan, saya akan mengatakan bahwa kami telah mencapai ini - cetak kontrol tanpa modifikasi apa pun pada barang-barang konsumen ANET A6 yang mutlak telah mengkonfirmasi hal ini.
MIRO memiliki beberapa modularitas.

Modul sensor depan dapat diganti dengan mudah tanpa membongkar robot. Selain itu, desain robot dirancang agar hampir semua komponen mudah diakses dan mudah diganti. Mereka mencari kenyamanan operasi dan modifikasi. Saya akan membicarakannya nanti.
Kedua , MIRO adalah alat perangkat lunak yang dikembangkan:
- Robot Robot untuk ATMEGA328 dengan perpustakaan komunikasi dengan Raspberry Pi (masih dalam pengembangan) atau dengan host melalui UART (tetapi siap).
- Contoh pelajaran dan program dari rotasi motor yang paling sederhana hingga visi teknis dengan transmisi aliran video atau hasil pemrosesan video ke host. Dalam waktu dekat, buat banyak contoh di bawah ROS.
- Gambar Raspbian siap pakai dengan perpustakaan dan perangkat lunak yang sudah diinstal sebelumnya, mesin virtual VirtualBox juga dengan perangkat lunak pengembangan yang sudah diinstal sebelumnya.
Selain itu, kami menulis
peta terperinci
tentang produksi robot sehingga siapa pun dapat merakitnya di rumah / dalam lingkaran / CMIT / universitas.
Saat ini, dalam pengujian beta,
situs dengan kemampuan untuk mempublikasikan proyeknya untuk MIRO. Sejauh ini, hanya file kecil yang dapat di-host di sana, tetapi seiring waktu, saya pikir, kami akan membayar.
Sekarang akan ada serangkaian artikel tentang MIRO, di mana saya akan membicarakannya lebih detail, dengan semua detailnya.
Terus terang, volume materi sudah sedemikian rupa sehingga sulit bagi saya untuk mengikuti pembaruan repositori tepat waktu (ini masih bukan pekerjaan utama). Karena itu, mungkin ada kesalahan dan kelalaian dalam materi. Plus, saya sama sekali tidak punya pengalaman dalam mendukung proyek opensource. Saya berharap untuk segera mempelajari semua ini.
Juga, rencana untuk menerjemahkan semua bahan ke dalam bahasa Inggris. Ini adalah pekerjaan besar yang terpisah untuk kita dan masih belum sempat melakukannya.
Beberapa bahan dari seri artikel akan digandakan oleh instruksi saya dari repositori, tetapi di beberapa tempat mereka akan lebih detail.
Hari ini, mari kita membahas perangkat keras robot.Robot MIRO didasarkan pada sekelompok tiga sistem mikroprosesor populer:
- ARDUINO (berdasarkan Atmel ATMEGA328, AVR core)
- ESP8266
- Raspberry Pi (versi mana yang tidak penting saat ini).
Robot MIRO ditenagai oleh baterai dengan tegangan suplai terukur 7,4V (Li-Ion 2S). Untuk mendapatkan 5V yang dibutuhkan oleh sebagian besar perangkat mikroprosesor robot, konverter LM2596S digunakan.
Sebagai standar, semua sensor dan aktuator dikendalikan oleh ATMEGA328.
ESP8266 memungkinkan pemrograman nirkabel chip ATMEGA328 dari lingkungan IDE ARDUINO, dan juga berfungsi sebagai jembatan SERIAL-WIFI yang memungkinkan pertukaran data dengan port serial ATMEGA328 (UART) secara nirkabel menggunakan protokol TELNET. Jelas, ATMEGA328 dan ESP8266 terhubung melalui jalur RX / TX.
Selain itu, untuk mengimplementasikan chip ATMEGA328 secara nirkabel, garis RESET dari chip ini terhubung ke jalur GPIO2 dari mikrokontroler ESP8266.
Dengan demikian, bahkan tanpa Raspberry Pi, MIRO berisi arsitektur yang dikembangkan dan nyaman untuk pengembangan.
Dalam konfigurasi dasar robot dengan modul depan SENS1, sensor dan perangkat berikut terhubung ke mikrokontroler ATMEGA328:
- Sensor odometer digital (roda kiri dan kanan)
- Pengemudi mesin kiri dan kanan pada chip L9110S
- Sensor garis ultrasonik HC-SR04
- Sensor cahaya photoresistive (kiri dan kanan)
- Pemancar suara piezo
- LED untuk lampu depan (kiri dan kanan)
- Sensor Garis (Kiri, Kanan, dan Tengah)
- Kamera tilt motor servo
Perangkat 3-7 adalah opsional dan dapat diganti dengan sensor atau perangkat apa pun. Anda dapat merancang dan membuat modul depan Anda sendiri dengan imbalan modul yang diusulkan (disebut SENS1 dalam dokumen) dengan tugas dan perangkat Anda.
Perangkat 1, 2 dan 8 wajib untuk fungsi robot dan tidak melibatkan pematian. Dapat dimengerti - tanpa driver motor, robot tidak akan dapat bergerak, dan tanpa sensor odometri Anda tidak dapat mengatakan apa-apa tentang sifat gerakan robot dan Anda tidak akan dapat mengontrol pergerakannya secara akurat. Nah, suspensi kamera (jika Anda bisa menyebutnya begitu) mungkin juga merupakan bagian yang tidak terpisahkan.
Raspberry Pi terhubung ke ATMEGA328 via I2C (TWI). Kamera Raspberry Pi v1.3 terhubung ke papan Raspberry Pi.
Saya ingin memperhatikan komponen serial yang sekarang digunakan di MIRO. Pada dasarnya, kami fokus pada satu produsen Sino-Rusia (di peta produksi, dalam daftar komponen serial, Anda dapat melihat nama perusahaan). Ini sebagian dilakukan dengan sengaja. Orang Cina memiliki banyak modul tweeter, peluit dan barang-barang konsumen lainnya. Orang-orang yang sama ini mewakili setidaknya beberapa merek dengan sebutan nomenklatur. Dan Anda setidaknya dapat menunjukkan entah bagaimana seharusnya potongan besi itu berada di satu atau beberapa simpul robot. Meskipun mereka menjual barang-barang konsumen yang sama dengan sedikit uang. Saya memperhatikan mereka dengan seksama dan saya terkesan bahwa itu seperti perusahaan Rusia. Dan pesan yang mereka terbitkan di situs web mereka, dia menginspirasi harapan bahwa orang-orang "untuk semuanya cantik." Pada kenyataannya, ternyata, semuanya sedikit tidak begitu baik. Diagram sirkuit setidaknya papan UNO + WiFi dari pabrikan ini tidak tahan terhadap kritik.

Itu tidak lengkap dan dieksekusi dengan banyak kesalahan. Menurutnya, kita tidak bisa menentukan semua komponen papan, apa yang terhubung.
Di papan itu sendiri, desainer telah menjahit satu bug / fitur yang tidak berguna: satu rangkaian reset ATMEGA328 dan ESP8266. Ini berarti bahwa pada board ini tidak mungkin untuk mengatur firmware nirkabel ATMEGA328 melalui ESP8266 - ketika ESP8266 mencoba mengatur ulang ATMEGA, ia menarik garis reset-nya sendiri. Pada saat yang sama, board memiliki tombol terpisah untuk mengatur ulang ESP dan tombol reset umum untuk semua pengontrol sekaligus. Selain itu, saklar DIP untuk 8 jalur disolder di papan tulis. Dan saklar kedelapan tidak terlibat. Pada akhirnya, saya memutus jalur reset ESP dan memungkinkan untuk menghubungkannya ke rangkaian reset umum menggunakan saklar kedelapan ini menggunakan kabel pemasangan. Artinya, jika sakelar 8 dimatikan, ESP hanya dapat direset dengan menekan tombol ESP RESET, dan sinyal pada saluran RST yang umum atau menekan tombol reset umum tidak mengatur ulang ESP. Ketika saklar menyala, semuanya kembali ke keadaan seperti sebelum modifikasi papan.
Masih mencari cara untuk memutus rangkaian reset. Saya menemukan solusi yang paling tidak menyakitkan.
- Solder dioda D3 di dekat konektor untuk menghubungkan antena eksternal.
- Solder kapasitor antara kaki dioda yang disolder (3.3V di atasnya) dan tanah.
Sekarang, ketika Anda menekan tombol reset, ESP tidak diatur ulang.
Mengingat pesan di situs, saya menulis proposal untuk memperbaiki βfiturβ ini. Tetapi mereka bahkan tidak menjawab saya.
Saya tidak ingin membuat besi sama sekali, tetapi ternyata saya harus melakukannya. Juga di bawah lisensi terbuka.
Ada solusi alternatif - UNO Arduino biasa dan kartu ekspansi semacam itu (atau sesuatu seperti itu).

Tapi di sini agak tidak nyaman dengan firmware ESP. Namun, firmware ESP dalam perannya saat ini di MIRO adalah prosedur yang cukup langka.
Nah, dalam hal apa pun, Anda perlu menghubungkan GPIO2 ESP8266 ke garis Reset pada pengontrol ATMEGA328 untuk firmware nirkabel. Anda dapat memilih GPIO lain, tetapi GPIO2 yang terdaftar dalam kode MIRO (atau kode tersebut harus diperbaiki). Pada awalnya, karena tidak berpengalaman, mereka memilih hal pertama yang muncul, seperti yang mereka katakan, - GPIO0. Tetapi mereka dengan cepat menyadari kesalahan mereka - untuk firmware ESP, jumper ini harus diputus / tidak terjual, karena garis GPIO0 dalam ESP digunakan dalam prosedur firmware.
Kesimpulan umum: saat merakit MIRO, Anda dapat menggunakan kartu apa saja dari pabrikan yang memungkinkan Anda memenuhi persyaratan skema switching.
Diagram sirkuit lengkap dari robot MIRO disajikan dalam salah satu
repositori yang disebutkan.
Segera pertanyaan dangkal. Apakah ada solusi serupa di pasar? Tentu saja ada. Tapi mahal Dan omong-omong, orang-orang yang telah menerbitkan seluruh seri
artikel di sini tentang kereta ROS juga mencatat kurangnya solusi "besi" yang kurang lebih dapat diakses. Akan sangat bagus jika penulis dan saya mewujudkan hasil mereka di MIRO.
Sekarang, secara umum, tentang rencana. Untuk pengembangan segalanya dan segalanya sebelum versi ketiga, proyek menerima dukungan dari negara. pembiayaan. Yakni, Dana untuk Promosi Inovasi. Untuk itu banyak terima kasih padanya. Tanpa uang ini, kita mungkin akan meninggalkannya bersama kita dan dalam kualitas yang sama sekali berbeda. Saya benar-benar ingin robot menjadi platform untuk prototyping, pelatihan dan eksperimen, yang akan meletakkan dasar untuk beberapa interaksi nyata CMIT (FabLabs, retas) di negara kita. Itu menjadi poin khas upaya bersama, di mana kontribusi masing-masing menjadi keuntungan semua. Saya jelas mengerti bahwa saya mengandalkan unit tim, kepada siapa itu akan menjadi menarik. Tetapi bahkan interaksi seperti itu akan berhasil. Saya sangat terharu dengan bagaimana hal itu terjadi di Barat - seperti di tempat yang praktis kosong dan inisiatif dari beberapa orang yang bosan, sebuah ekosistem besar lahir. Bagaimana jika berhasil? Ada banyak poin penerapan usaha di dalamnya.
Roadmap pengembangan saat ini, seperti yang saya lihat, terletak di papan kanban di
GitHub .
Kami juga mengembangkan beberapa kebijakan pengembangan proyek. Platform apa pun menyiratkan batasan tertentu, "bendera". Tanpa mereka, semuanya berubah menjadi anarki, dan platform tidak muncul, dan jika itu terjadi, itu tidak akan hidup lama. Pada GitHub yang sama adalah
dokumen , sesuatu seperti manifesto pengembangan platform. Seiring waktu, hampir pasti akan berubah - pengalaman hanya akan menyesuaikan betapa nyamannya untuk semua orang (pengguna, pengembang).
Adapun potensi komersial, proyek pasti memilikinya, dan tim dan saya juga akan mencoba menggunakannya. Bagaimana? Yang paling sederhana adalah produksi dan penjualan kit perakitan. Pada akhirnya, ini juga merupakan cara untuk memperluas audiens pengguna yang tidak benar-benar ingin repot dengan produksi. Tanpa ragu-ragu, sekarang diputuskan untuk membuka pre-order robot siap pakai di situs.
Terima kasih atas perhatian Anda dan saya akan senang memiliki pertanyaan dan inisiatif konstruktif yang membantu dalam pengembangan proyek.
Artikel selanjutnya akan dikhususkan untuk mekanik, desain dan pembuatan lambung.
Beberapa foto robot.


PS Sepanjang jalan, proyek ini ditemani oleh orang-orang yang dekat dan saya sayangi, yang pada periode waktu yang berbeda menjadi bagian dari tim dan membantu mengembangkan proyek. Jalur profesional kami berbeda dengan seseorang, tetapi saya tidak bisa tidak memperhatikan kontribusi mereka. Biarkan nama mereka hampir tidak mengatakan apa-apa kepada siapa pun, tetapi saya berharap mereka akan senang. Ini adalah Yevgeny Ledkov, yang sekarang bekerja di FEFU di Direktorat Program Pendidikan, yang menulis rencana bisnis pertama tentang apa yang sebenarnya tidak ada, dan menenggelamkan seluruh jiwa untuk proyek tersebut. Dan Pavel Efimov, yang juga pindah ke FEFU, ke laboratorium robotika, yang melakukan banyak hal secara langsung atau tidak langsung terkait dengan proyek tersebut. Dan Bair Dambaev, yang kembali ke tanah kelahirannya di Ulan-Ude dan sekarang mengajar anak-anak ke pusat anak-anak yang ia dirikan. Dan beberapa orang lagi yang baru saja melakukan pekerjaannya dengan baik.