
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:48
A mesterképzésem részeként a dep. Az Eindhoven Egyetem ipari formatervezésében létrehoztam egy haptikus rajzeszközt, amellyel navigálni lehet egy félig autonóm autóban a forgalomban. Az interfészt scribble -nek hívják, és lehetővé teszi a felhasználó számára, hogy 2D -s térben haptikus rögzítéseket tapasztaljon, változó erőn és helyen keresztül. Bár a koncepció nem erről szól, ez az oktatható, a Scribble -ről itt olvashat bővebben:
A Scribble 5 bar összekötő konfigurációt használ, amely lehetővé teszi két oldalsó szabadsági fok (DoF) mozgatását. Ez a beállítás meglehetősen népszerű a prototípusok körében rajzrobotok készítéséhez, íme néhány példa:
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
Mechanikusan ezeket a robotokat könnyű elkészíteni. Csak alapcsuklókra van szükségük, és két működtetőszerkezettel rendelkeznek, amelyek némi folyékony mozgást képesek létrehozni. Ez a szerkezet ideális azoknak a tervezőknek, akik érdeklődnek a mozgó szerkezetek készítése iránt. Mivel azonban nem voltam gépészmérnök, a kinematikát meglehetősen nehéz kódra fordítani. Ezért megadom az alapvető Arduino kódot, amely kiszámítja az előremenő és az inverz kinematikát, így könnyedén használhatja ezt a jövőbeni tervekben!;-)
Kérjük, töltse le az alábbi kódot!
* SZERKESZTÉS: hasonló projekt esetén nézze meg a https://haply.co címet *
1. lépés: A szerkezet felépítése

Attól függően, hogy milyen célra gondol, először tervezzen meg egy 5 kötésű szerkezetet. Gondoljon a mérésekre, a hajtóművekre, amelyeket használni szeretne, és hogyan rögzítse az ízületeket a sima mozgás érdekében.
A prototípusomhoz a kódomat egy Arduino DUE -n futtatom, amelyet soros vezérlésű, a Mac rendszeren futó program, amely nyílt keretrendszerekben készült. A program UDP kapcsolatot használ a Unity 3D alapú vezetési szimulátorral való kommunikációhoz.
A Scribble prototípus 5 mm-es csapágyakat használ, és 5 mm-es lézerrel vágott akrilból készül. A hajtóművek Frank van Valeknhoef Haptic motorjai, amelyek lehetővé teszik a működtetést, a pozíció kiolvasását és a változó erő leadását. Ez ideálissá tette őket Scribble kívánt haptikus tulajdonságaihoz. A hajtóműveiről bővebben itt olvashat:
2. lépés: Ismerje meg a hardver értékeit

Az előremenő kinematika az SAP Plot clock időjárásállomásán alapul:
Amint az a konfigurációjukban látható, a kar ki van húzva, hogy tartsa a jelölőt a rajzoláshoz. Ezt eltávolították, mivel nem volt célja a firkálás prototípusának. Ellenőrizze a kódot, ha újra fel szeretné venni ezt az összetevőt. A képen látható nevek változatlanok maradnak a konfigurációmban.
A hardvertől függően az algoritmusnak ismernie kell a hardver tulajdonságait:
int leftActuator, rightActuator; // szög a hajtóműhöz írásban, de fokozzon úszóra, ha nagyobb pontosságra vágyik
int posX, posY; // a mutató helyének koordinátái
Állítsa be a bemeneti értékek felbontását
int posStepsX = 2000;
int posStepsY = 1000;
A beállítás méretei, az értékek mm -ben vannak megadva (lásd az SAP képet)
#define L1 73 // hosszúságú motorkar, lásd az SAP képet (bal és jobb ugyanaz)
#define L2 95 // hosszúságú meghosszabbító kar, lásd az SAP képet (bal és jobb ugyanaz)
#define rangeX 250 // maximális tartomány X irányban a pont mozgatásához (balról jobbra, 0 - maxVal)
#define rangeY 165 // maximális tartomány Y irányban a pont mozgatásához (0 -tól a maximális elérésig, miközben középen marad)
#define originL 90 // eltolás távolság a legtöbb minimális X értéktől a hajtómű középső pozíciójáig
#define originR 145 // eltolva a távolságot a legtöbb minimális X értéktől a hajtómű középső pozíciójáig, a két motor közötti távolság ebben az esetben
3. lépés: Előre kinematika

Amint az előző lépésben említettük, az előremenő kinematika az SAP algoritmusán alapul.
Az üresség frissíti a bal és jobb állítómű korábban meghatározott szögértékeit. A csatlakoztatott X és Y értékek alapján kiszámítja a derékszögeket, hogy a mutató ebbe a helyzetbe kerüljön.
void set_XY (dupla Tx, dupla Ty) // írja be X és Y értékét {// néhány val, amire szükségünk van, de nem akarunk hosszú dupla dx, dy, c, a1, a2, Hx, Hy hosszú időre menteni; // az inpit felbontásának leképezése a valós világ konfigurációjának tartományába int realX = map (Tx, 0, posStepsX, 0, rangeX); // csere, ha leképezés, ha megfordítva int realY = map (Ty, posStepsX, 0, 0, rangeY); // csere, ha leképezés, ha meg van fordítva // bal szelep számítási szöge // derékszögű dx/dy dx = realX - originL; // offset beillesztése dy = realY; // poláris hossz (c) és szög (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = visszatérési_szög (L1, L2, c); leftActuator = emelet ((((M_PI - (a2 + a1)) * 4068) / 71); // végső szög és átalakítás rad -ból deg -ig // számítási szög a jobboldali működtető számára dx = realX - originR; // offset beillesztése dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = visszatérési_szög (L1, L2, c); rightActuator = emelet ((((a1 - a2) * 4068) / 71); // végső szög és rad -ból deg -ba konvertálás}
További üresség a szög kiszámításához:
double return_angle (double a, double b, double c) {// koszinusz szabály a c és a return acos közötti szögre ((a * a + c * c - b * b) / (2 * a * c)); }
4. lépés: Fordított kinematika

A fordított kinematika fordítva működik. Bekapcsolja a hajtóművek forgatását fokban, és az üresség frissíti a korábban meghatározott pozíciót.
Kérjük, vegye figyelembe, hogy működtetőelemekre vagy külön érzékelőre lesz szüksége, amely le tudja olvasni a kar szögét. Az én esetemben olyan hajtóműveket használtam, amelyek egyszerre olvashatják és írhatják pozíciójukat. Bátran kísérletezzen ezzel, és fontolja meg valamilyen kalibrálás hozzáadását, hogy biztos lehessen abban, hogy a szög helyesen olvasható.
Ajánlott:
Haptikus iránytű: 9 lépés

Haptic Iránytű öv: Arduino hajtású öv, amely észak felé rezeg. Az emberi érzékelés mindig a biológiai érzékeinkre korlátozódott, de mi lenne, ha ezen változtathatnánk? A természetben léteznek olyan állatok, amelyek képesek érzékelni a mágneses mezőket, a légköri nyomást, az ambi
Rajzoló robot használata az Arduino számára órás kódokkal kapcsolatos oktatóanyagokkal: 3 lépés

Rajzoló robot használata az Arduino számára a kód órájával kapcsolatos oktatóanyagokkal: Létrehoztam egy Arduino rajzrobotot egy műhely számára, hogy segítsen a tizenéves lányoknak érdeklődni a STEM témák iránt (lásd: https://www.instructables.com/id/Arduino-Drawing-Robot/ ). A robotot Turtle-stílusú programozási parancsok használatára tervezték, például előre (distanc
XY rajzoló robot: 12 lépés

XY rajzoló robot: Ma egy mechatronikai projektről tárgyalok. Ez a projekt valójában egy videó származéka, amelyet már itt tettem közzé: ROUTER ÉS PLOTTER WIFI WEBSZERVERrel ESP32 -ben. Azt tanácsolom, hogy először ezt nézze meg, mivel elmagyarázza a GRBL program működését
Olcsó, Arduino-kompatibilis rajzoló robot: 15 lépés (képekkel)

Olcsó, Arduino-kompatibilis rajzolórobot: Megjegyzés: Van egy új verziója ennek a robotnak, amely nyomtatott áramkört használ, könnyebben megépíthető és IR akadályérzékelővel rendelkezik! Nézze meg a következő címen: http://bit.ly/OSTurtle Ezt a projektet egy 10 órás workshopra terveztem a ChickTech.org számára, amelynek célja a
Részeg rajzoló robot!: 4 lépés (képekkel)

Részeg rajzoló robot!: A zsebrészeg robot által inspirálva feladatot akartam adni a robotnak. Úgy döntöttem, hagyom, hogy a részeg robot néhány rajzot készítsen. Saját készítéséhez a következőkre lesz szüksége: anyagok: 3 filchegyes jelölő egy gombelemes akkumulátor