İçindekiler:
- Adım 1: Yapıyı İnşa Etme
- Adım 2: Donanım Değerlerinizi Bilin
- Adım 3: İleri Kinematik
- Adım 4: Ters Kinematik
Video: Dokunsal Çizim Robotu: 5 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Dep'teki yüksek lisans mezuniyetimin bir parçası olarak. Eindhoven Üniversitesi'nde Endüstriyel Tasarım, trafikte yarı otonom bir arabada gezinmek için kullanılabilecek dokunsal bir çizim cihazı yarattım. Arayüz karalama olarak adlandırılır ve kullanıcının değişken bir kuvvet ve konum aracılığıyla 2 boyutlu bir alanda dokunsal fikstürleri deneyimlemesini sağlar. Konsept bu talimatın konusu olmasa da, Scribble hakkında daha fazla bilgiyi burada bulabilirsiniz:
Karalama, iki yanal serbestlik derecesini (DoF) hareket ettirmesine izin veren 5 çubuklu bir bağlantı konfigürasyonu kullanır. Bu kurulum, çizim robotları oluşturmak için prototipciler arasında oldukça popülerdir, işte bazı örnekler:
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
Mekanik olarak bu robotları yapmak kolaydır. Sadece temel eklemlere ihtiyaç duyarlar ve oldukça akıcı hareketler yaratabilen iki aktüatöre sahiptirler. Bu yapı, hareketli yapı yapmakla ilgilenen tasarımcılar için ideal, ancak makine mühendisi olmadığım için kinematiği koda çevirmek oldukça zor. Bu nedenle, ileri ve ters kinematiği hesaplayan temel Arduino kodunu sağlayacağım, böylece bunu gelecekteki tasarımlarınızda kolayca kullanabilirsiniz!;-)
Lütfen aşağıdaki kodu indirin!
* EDIT: benzer bir proje için https://haply.co'ya bir göz atın *
Adım 1: Yapıyı İnşa Etme
Aklınızdaki amaca bağlı olarak, önce 5 bağlantılı bir yapı tasarlamanız gerekir. Kullanmak istediğiniz ölçümleri, aktüatörleri ve yumuşak hareketler için eklemleri nasıl bağlayacağınızı düşünün.
Prototipim için kodumu, Mac'imde Open Frameworks'te yapılmış bir program tarafından seri olarak kontrol edilen bir Arduino DUE üzerinde çalıştırıyorum. Program, Unity 3D tabanlı bir sürüş simülatörü ile iletişim kurmak için bir UDP bağlantısı kullanır.
Scribble prototipi 5 mm rulmanlar kullanır ve 5 mm lazer kesim akrilikten yapılmıştır. Aktüatörler, Frank van Valeknhoef'un harekete geçirmeye, pozisyonu okumaya ve değişken bir kuvvet çıkışına izin veren Haptik Motorlarıdır. Bu, onları Scribble'ın istenen dokunsal özellikleri için ideal hale getirdi. Aktüatörleri hakkında daha fazla bilgiyi burada bulabilirsiniz:
Adım 2: Donanım Değerlerinizi Bilin
İleri kinematik, SAP'nin Plot saat hava istasyonuna dayanmaktadır:
Kendi konfigürasyonunda gösterildiği gibi, kol için bir işaretleyici çizmek için uzatılır. Bu, karalama prototipi için hiçbir amaca hizmet etmediği için kaldırılmıştır. Bu bileşeni tekrar eklemek istiyorsanız kodlarını kontrol edin. Resimdeki isimler konfigürasyonumda aynı tutuluyor.
Donanımınıza bağlı olarak, algoritmanın donanım özelliklerinizi bilmesi gerekir:
int solAktüatör, sağAktüatör; // aktüatöre derece cinsinden yazma açısı, daha fazla doğruluk istiyorsanız yüzer olarak değiştirin
int konumX, konum; // işaretçinin konumunun koordinatları
Giriş değerlerinizin çözünürlüğünü ayarlayın
int posStepsX = 2000;
int posAdımlarY = 1000;
Kurulumunuzun boyutları, değerler mm cinsindendir (bkz. SAP resmi)
#define L1 73 // motor kolu uzunluğu, SAP resmine bakın (sol ve sağ aynı)
#define L2 95 // uzunluk uzatma kolu, SAP resmine bakın (sol ve sağ aynı)
#define rangeX 250 // hareket edecek nokta için X yönünde maksimum aralık (soldan sağa, 0 - maxVal)
#define rangeY 165 // noktanın hareket etmesi için Y yönünde maksimum aralık (merkezde kalırken 0'dan maksimum erişime)
#define OriginL 90 //en küçük X değerinden aktüatör merkez konumuna uzaklık uzaklığı
#define OriginR 145 //en küçük X değerinden aktüatör merkez konumuna ofset mesafesi, bu durumda iki motor arasındaki mesafe
Adım 3: İleri Kinematik
Önceki adımda belirtildiği gibi, ileri kinematik SAP'nin algoritmasına dayanmaktadır.
Boşluk, sol ve sağ aktüatörün daha önce tanımlanan istenen açı değerlerini günceller. Takılı olan X ve Y değerlerine dayanarak, işaretçiyi bu konuma getirmek için doğru açıları hesaplayacaktır.
void set_XY(double Tx, double Ty) //X ve Y değerinizi girin{ // ihtiyacımız olan ancak uzun double dx, dy, c, a1, a2, Hx, Hy için kaydetmek istemediğimiz bazı değerler; // inpit çözünürlüğünü gerçek dünyadaki konfigürasyonunuzun aralığına eşleyin int realX = map(Tx, 0, posStepsX, 0, rangeX); // eşleme ters ise değiş tokuş int realY = map(Ty, posStepsX, 0, 0, rangeY); // eşleme ters ise takas // sol aktüatör için açıyı hesapla // kartezyen dx/dy dx = realX - orijinL; // offset dahil dy = realY; // kutup uzunluğu (c) ve açı (a1) c = sqrt(dx * dx + dy * dy); a1 = atan2(dy, dx); a2 = dönüş_açı(L1, L2, c); solAktüatör = kat(((M_PI - (a2 + a1)) * 4068) / 71); //son açı ve rad'den dereceye dönüştürme // sağ aktüatör için açıyı hesapla dx = realX - orijinR; // offset dahil dy = realY; c = sqrt(dx * dx + dy * dy); a1 = atan2(dy, dx); a2 = dönüş_açı(L1, L2, c); sağAktüatör = kat(((a1 - a2) * 4068) / 71); //son açı ve rad'den dereceye çevir }
Açı hesaplaması için ek boşluk:
double return_angle(double a, double b, double c) { // c ile dönüş arasındaki açı için kosinüs kuralı acos((a * a + c * c - b * b) / (2 * a * c)); }
Adım 4: Ters Kinematik
Ters kinematik ise tam tersi şekilde çalışır. Aktüatörlerinizin dönüşünü derece olarak takarsanız boşluk daha önce tanımlanan konumu günceller.
Lütfen, kolun açısını okuyabilen aktüatörlere veya ayrı bir sensöre ihtiyacınız olacağını unutmayın. Benim durumumda, konumlarını aynı anda hem okuyabilen hem de yazabilen aktüatörler kullandım. Bunu denemekten çekinmeyin ve açınızın doğru okunduğundan emin olmak için bir çeşit kalibrasyon eklemeyi düşünün.
Önerilen:
Adafruit Kalkanlı Çizim Robotu (Hareket Ettir Yarışması): 10 Adım (Resimlerle)
Adafruit Kalkanlı Çizim Robotu (Make It Move Yarışması): Merhaba ben Jacob ve ben İngiltere'de yaşıyoruz. Bu projede sizin için çizen bir robot yapacağım. *Eminim çoğunuz bunu görmek isteyecektir, bu yüzden bilmek istiyorsanız lütfen ikinci adımdan son adıma atlayın, ancak görmek için buraya geri döndüğünüzden emin olun
5'i 1 Arada Arduino Robotu - Beni Takip Et - Satır Takip - sumo - Çizim - Engelden Kaçınma: 6 Adım
5'i 1 Arada Arduino Robotu | Beni Takip Et | Satır Takip | sumo | Çizim | Engelden Kaçınma: Bu robot kontrol panosu, bir ATmega328P mikro denetleyici ve bir L293D motor sürücüsü içerir. Elbette bir Arduino Uno kartından farkı yok ama motoru sürmek için başka bir kalkana ihtiyaç duymadığı için daha kullanışlı! Zıplamaktan muaftır
MESH Kullanan Avatar Çizim Robotu: 6 Adım (Resimli)
MESH Kullanan Avatar Çizim Robotu: Fiziksel aktivitenin sizi daha yaratıcı yapabileceğini duydunuz mu? Aktif olmak, düşüncelerinizi geliştirmenize ve yaratıcı fikirler üretmenize yardımcı olur. Sık sık egzersiz yapmıyorsanız ancak yaratıcılığınızı artırmak istiyorsanız endişelenmeyin - İşte size bir şey! Bu '
LED Işıklı Çizim Kalemleri: Işıklı Doodles Çizim Araçları: 6 Adım (Resimlerle)
LED Işıklı Çizim Kalemleri: Işıklı Doodles Çizim Araçları: Karım Lori aralıksız bir doodle'cı ve yıllardır uzun pozlama fotoğrafçılığı ile oynadım. PikaPika light artistry grubundan ve dijital kameraların kolaylığından esinlenerek, neler yapabileceğimizi görmek için ışıkla çizim sanat formunu aldık
Sarhoş Çizim Robotu !: 4 Adım (Resimli)
Sarhoş Çizim Robotu !: Cepten sarhoş robottan esinlenerek robota bir iş vermek istedim. Sarhoş robotun bazı çizimler yapmasına izin vermeye karar verdim. Kendinizinkini yapmak için aşağıdakilere ihtiyacınız olacak: malzemeler:3 keçeli kalem düğme pilli bir yapışkan