Isi kandungan:

Robot Lukisan Haptik: 5 Langkah (dengan Gambar)
Robot Lukisan Haptik: 5 Langkah (dengan Gambar)

Video: Robot Lukisan Haptik: 5 Langkah (dengan Gambar)

Video: Robot Lukisan Haptik: 5 Langkah (dengan Gambar)
Video: Painting haptic type 1 2024, Julai
Anonim

Sebagai sebahagian daripada kelulusan master saya di dep. Reka Bentuk Perindustrian di Universiti Eindhoven, saya membuat alat lukisan haptik yang boleh digunakan untuk menavigasi sebuah kereta separa autonomi melalui lalu lintas. Antaramuka disebut coretan dan membolehkan pengguna mengalami lekapan haptik di ruang 2D melalui kekuatan dan lokasi yang berubah-ubah. Walaupun konsepnya tidak sesuai dengan arahan ini, anda boleh membaca lebih lanjut mengenai Scribble di sini:

Scribble menggunakan konfigurasi penghubung 5 bar yang membolehkannya bergerak dua darjah kebebasan lateral (DoF). Persediaan ini cukup popular di kalangan prototaip untuk membuat robot lukisan, berikut adalah beberapa contoh:

www.projehocam.com/arduino-saati-yazan-kol-…

blogs.sap.com/2015/09/17/plot-clock-weathe…

www.heise.de/make/meldung/Sanduhr-2-0-als-Bausatz-im-heise-shop-erhaeltlich-3744205.html

Secara mekanik robot ini mudah dibuat. Mereka hanya memerlukan sambungan asas dan mempunyai dua penggerak yang dapat membuat sedikit pergerakan cecair. Struktur ini sangat sesuai untuk pereka yang berminat untuk membuat struktur bergerak. Walaupun saya bukan jurutera mekanikal, saya mendapati kinematik agak sukar untuk diterjemahkan ke kod. Oleh itu saya akan memberikan kod Arduino asas yang menentukan kinematik maju dan terbalik supaya anda dapat menggunakannya dengan mudah dalam reka bentuk masa depan anda!;-)

Sila muat turun kod di bawah!

* EDIT: untuk projek serupa, lihat https://haply.co *

Langkah 1: Membina Struktur

Membina Struktur
Membina Struktur

Bergantung pada tujuan yang anda fikirkan, anda harus terlebih dahulu merancang struktur 5-penghubung. Fikirkan tentang ukuran, penggerak yang ingin anda gunakan, dan cara melekatkan sendi untuk pergerakan yang lancar.

Untuk prototaip saya, saya menjalankan kod saya pada Arduino DUE yang dikendalikan secara bersiri oleh program di Mac saya yang dibuat dalam Open Frameworks. Program ini menggunakan sambungan UDP untuk berkomunikasi dengan simulator memandu berasaskan Unity 3D.

Prototaip Scribble menggunakan galas 5mm dan terbuat dari akrilik potongan laser 5 mm. Penggeraknya adalah Mesin Haptik Frank van Valeknhoef yang memungkinkan pengaktifan, membaca kedudukan, dan mengeluarkan daya berubah. Ini menjadikan mereka sesuai untuk sifat haptik Scribble yang diinginkan. Maklumat lanjut mengenai penggeraknya boleh didapati di sini:

Langkah 2: Ketahui Nilai Perkakasan Anda

Ketahui Nilai Perkakasan Anda
Ketahui Nilai Perkakasan Anda

Kinematik maju berdasarkan stesen cuaca jam Plot oleh SAP:

Seperti yang ditunjukkan dalam konfigurasi mereka dilanjutkan untuk lengan memegang penanda untuk menarik. Ini telah dihapus kerana tidak berfungsi untuk prototaip coretan. Periksa kod mereka jika anda mahu menambahkan komponen ini kembali. Nama-nama dalam gambar tetap sama dalam konfigurasi saya.

Bergantung pada perkakasan anda, algoritma perlu mengetahui sifat perkakasan anda:

int leftActuator, rightActuator; // sudut untuk menulis ke penggerak dalam deg, ubah menjadi terapung jika anda mahukan lebih tepat

int posX, posY; // koordinat lokasi penunjuk

Tetapkan ketetapan nilai input anda

int posStepsX = 2000;

int posStepsY = 1000;

Dimensi persediaan anda, nilai dalam mm (lihat gambar SAP)

#define L1 73 // lengan motor panjang, lihat gambar SAP (kiri dan kanan sama)

#define L2 95 // lengan panjang, lihat gambar SAP (kiri dan kanan sama)

#define rangeX 250 // julat maksimum dalam arah X untuk titik bergerak (dari kiri ke kanan, 0 - maxVal)

#define rangeY 165 // julat maksimum dalam arah Y untuk titik bergerak (dari 0 ke jangkauan maksimum sambil tetap berpusat)

#define originL 90 // mengimbangi jarak dari kebanyakan nilai X minimum ke kedudukan pusat penggerak

#define originR 145 // mengimbangi jarak dari kebanyakan nilai X minimum ke kedudukan pusat penggerak, jarak antara kedua-dua motor adalah dalam kes ini

Langkah 3: Maju Kinematik

Kinematik Maju
Kinematik Maju

Seperti disebutkan pada langkah sebelumnya, kinematik maju berdasarkan algoritma SAP.

Kekosongan mengemas kini nilai sudut yang diinginkan penggerak kiri dan kanan yang ditentukan sebelumnya. Berdasarkan nilai X dan Y yang terpasang di dalamnya akan mengira sudut tepat untuk mendapatkan penunjuk ke kedudukan ini.

void set_XY (double Tx, double Ty) // masukkan nilai X dan Y anda {// beberapa nilai yang kami perlukan tetapi tidak mahu menyimpan untuk double dx, dy, c, a1, a2, Hx, Hy; // resolusi inpit peta untuk rangkaian konfigurasi anda di dunia nyata int realX = peta (Tx, 0, posStepsX, 0, rangeX); // tukar jika pemetaan jika terbalik int realY = peta (Ty, posStepsX, 0, 0, rangeY); // tukar jika pemetaan jika terbalik // sudut kalk untuk penggerak kiri // kartesian dx / dy dx = realX - originL; // sertakan offset dy = realY; // panjang kutub (c) dan sudut (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = return_angle (L1, L2, c); leftActuator = lantai (((M_PI - (a2 + a1)) * 4068) / 71); // sudut akhir dan ubah dari rad ke deg // sudut calc untuk penggerak kanan dx = realX - originR; // sertakan offset dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = return_angle (L1, L2, c); rightActuator = lantai (((a1 - a2) * 4068) / 71); // sudut akhir dan ubah dari rad ke deg}

Kekosongan tambahan untuk pengiraan sudut:

double return_angle (double a, double b, double c) {// peraturan kosinus untuk sudut antara c dan return acos ((a * a + c * c - b * b) / (2 * a * c)); }

Langkah 4: Kinematik songsang

Kinematik songsang
Kinematik songsang

Kinematik terbalik berfungsi sebaliknya. Anda memasukkan putaran penggerak anda dalam darjah dan kekosongan akan mengemas kini kedudukan yang ditentukan sebelumnya.

Harap maklum bahawa anda memerlukan penggerak atau sensor berasingan yang dapat membaca sudut lengan. Dalam kes saya, saya menggunakan penggerak yang boleh membaca dan menulis kedudukan mereka secara serentak. Jangan ragu untuk bereksperimen dengan ini dan pertimbangkan untuk menambahkan beberapa penentukuran sehingga anda yakin sudut anda dibaca dengan betul.

Disyorkan: