LEGO-EV3-Pemindai Gambar
Pemindai gambar dibuat menggunakan set LEGO Mindstorms EV3 Education dan roda tambahan. Termasuk sumber dari Perangkat Lunak Mindstorms EV3 dan instruksi pembuatan. Memindai kertas selebar 8,5 inci tetapi dapat disesuaikan dengan ukuran halaman serupa.
Masukan
- Tombol bata – Untuk mengontrol menu konfigurasi
- Ultrasonografi – Mendeteksi saat kertas dimasukkan
- Sensor sentuh – Mengatur ulang posisi sensor warna secara tabrakan
- Sensor cahaya – Pindai piksel untuk membuat gambar
Keluaran
- Gambar skala abu-abu 44 kali 32 piksel 8 bit
- File CSV mewakili nilai data bitmap 8-bit skala abu-abu
- Gambar ragu-ragu di layar
Bagian
Pembuatan ini memerlukan suku cadang dari satu set LEGO MINDSTORMS EV3 dan roda besar tambahan, yang dapat diperoleh dari set lain yang sama atau set mobil.
Detail pembuatan dan sensor
- Robot ini mengimplementasikan dua konfigurasi force gear, satu untuk menggerakkan sensor cahaya pada sumbu horizontal, melalui monorel, yang kedua untuk menyediakan mekanisme spooling pada kertas berisi gambar yang akan dipindai.
- Baik mekanisme spooling maupun monorelnya menggunakan motor besar.
- Sebuah penyeimbang digunakan untuk menyelaraskan roda monorel melawan gaya normal yang diberikan oleh permukaan monorel.
- Di dekat spool terdapat sensor infra merah yang memungkinkan mendeteksi kapan kertas dimasukkan.
- Dua sensor sentuh ditempatkan di setiap sudut pemindai. Mereka digunakan untuk mendeteksi ketika monorel telah mencapai tikungan. Hanya sensor di sisi kanan yang sedang digunakan.
Catatan Perangkat Lunak
Program ini terdiri dari empat tahap: UI, Scan, Print Image, Save Image. UI dibangun dengan mengadaptasi paradigma MVC ke pemrograman bata sekuensial. Ini memungkinkan n layar konfigurasi, dengan satu nilai untuk dikonfigurasi per layar. Variabel yang digunakan nanti dalam program sesuai dengan pengaturannya masing-masing.
Layar konfigurasi
- uiPrintScreen : bool – Jika benar, gambar 1-bit yang ragu-ragu akan dicetak pada Layar EV3, menyerupai gambar skala abu-abu di RAM.
- uiSaveState : bool – Jika benar, file CSV akan dihasilkan dari data di RAM. File ini menyerupai file bitmap dan dapat diubah menjadi bitmap menggunakan program eksternal seperti A-VEKT Image CSV Converter.
- XSstartPos : numerik – Menunjukkan posisi awal dalam inci, pada sumbu X.
- YStartPos : numerik – Menunjukkan posisi awal dalam inci, pada sumbu Y.
- width : numerik – Menunjukkan lebar gambar dalam inci.
- height : numerik – Menunjukkan tinggi gambar dalam inci.
Fase Pemindaian
- Sebelum melakukan pemindaian, pengguna diminta memasukkan kertas yang akan dipindai dan posisi sensor cahaya diatur ulang ke posisi awal.
- Pemindaian terdiri dari memindahkan sensor gambar melintasi monorel dan kertas melintasi spool, untuk membuat matriks titik-titik yang dipindai secara independen.
- Saat memindai, satu baris dipindai dari kanan ke kiri dan baris berikutnya dipindai dari kiri ke kanan. Ini mengurangi waktu pemindaian.
- Setelah pemindaian selesai, sisa kertas akan tergulung dari bagian belakang pemindai.
Fase Cetak
- Fase ini bersifat opsional dan diaktifkan secara default. Ini terdiri dari mencetak gambar di layar.
- Gambar yang dipindai berisi data skala abu-abu, tetapi layar EV3 1-bit hitam putih. Sebagai kompensasinya, setiap piksel yang dipindai diubah menjadi pola piksel 4 kali 4 menggunakan dithering Pesanan (Bayer), yang kemudian dicetak pada layar.
Fase Penghematan
- Fase ini bersifat opsional.
- Karena blok file EV3 terbatas hanya untuk menyimpan karakter yang dapat dicetak, gambar bitmap tidak dapat dihasilkan secara terprogram. Sebagai gantinya, file CSV digunakan.
- CSV dapat diubah menjadi bitmap menggunakan “A-VEKT Image CSV Converter” dengan pengaturan saluran alfa 8-bit.
- Saat membuat CSV, baris yang dipindai secara terbalik disusun ulang dalam larik kedua.
Perbaikan
- Ketepatan pemindai dapat ditingkatkan dengan set kedua, yang dapat digunakan untuk membuat sumbu x dua rel, bukan monorel.
- Karena gaya yang diberikan oleh kabel, monorel terkadang tidak stabil, sehingga menyebabkan fokus bervariasi saat menangkap beberapa piksel.
- Perangkat lunak dapat ditingkatkan. Saya melepaskannya seperti saat saya berhenti mengerjakannya.
- Saya tidak memiliki rencana untuk terus mengembangkan proyek ini sampai LEGO merilis versi LEGO MINDSTORMS EV3 untuk Sistem Operasi Linux atau saya menemukan alasan kuat lainnya untuk membeli set Mindstorms EV3 milik saya sendiri.
Lisensi dan Hak Cipta
- File sumber dibagikan di bawah GNU General Public License 2.0
- Gambar instruksi dan konten tambahan dibagikan di bawah Creative Commons License Attribution 4.0 International
- Hak cipta dimiliki bersama antara Universitas Puerto Riko di Arecibo dan saya sendiri.
Penafian
- Saya mengembangkan ini untuk bersenang-senang sebagai bagian dari kelas Pengantar Robotika dari Universitas Puerto Rico di Arecibo.
- Pemindai ini secara longgar didasarkan pada printer dari “Panduan Inventor LEGO MINDSTORMS NXT 2.0 Tidak Resmi”.
- LEGO, MINDSTORMS, MINDSTORMS EV3, MINDSTORMS NXT adalah merek dagang dan/atau hak cipta dari LEGO Group. Penggunaannya tidak berarti afiliasi atau dukungan apa pun dari mereka.