
Სარჩევი:
2025 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2025-01-23 14:50
როგორც მაგისტრატურის დამთავრების ნაწილი დეპ. ეინდჰოვენის უნივერსიტეტის სამრეწველო დიზაინი, მე შევქმენი ჰაპტიკური ხატვის მოწყობილობა, რომლის საშუალებითაც შესაძლებელი იქნება ნახევრად ავტონომიური მანქანის მოძრაობა ტრაფიკის საშუალებით. ინტერფეისი ეწოდება scribble და საშუალებას აძლევს მომხმარებელს განიცადოს ჰაპტიკური მოწყობილობები 2D სივრცეში ცვლადი ძალისა და ადგილმდებარეობის საშუალებით. მიუხედავად იმისა, რომ კონცეფცია არ არის ის, რაც ამ ინსტრუქციას ეხება, შეგიძლიათ მეტი წაიკითხოთ Scribble– ის შესახებ აქ:
Scribble იყენებს 5 ბარიანი კავშირის კონფიგურაციას, რაც მას თავისუფლების ორი გვერდითი ხარისხის (DoF) გადაადგილების საშუალებას აძლევს. ეს კონფიგურაცია საკმაოდ პოპულარულია პროტოტიპერებს შორის რობოტების შესაქმნელად, აქ არის რამოდენიმე მაგალითი:
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
მექანიკურად ამ რობოტების დამზადება ადვილია. მათ მხოლოდ ძირითადი სახსრები სჭირდებათ და აქვთ ორი გამაქტიურებელი, რომელსაც შეუძლია შექმნას საკმაოდ სითხის მოძრაობა. ეს სტრუქტურა იდეალურია დიზაინერებისთვის, რომლებიც დაინტერესებულნი არიან მოძრავი სტრუქტურის შექმნით. თუმცა მე არ ვარ მექანიკური ინჟინერი, მე კინემატიკა საკმაოდ რთული იყო კოდში თარგმნისთვის. აქედან გამომდინარე, მე მოგაწვდით არდუინოს ძირითად კოდს, რომელიც განსაზღვრავს წინ და უკუ კინემატიკას, ასე რომ თქვენ შეგიძლიათ მარტივად გამოიყენოთ ეს თქვენს მომავალ დიზაინში!;-)
გთხოვთ გადმოწეროთ ქვემოთ მოცემული კოდი!
* რედაქტირება: მსგავსი პროექტისთვის გადახედეთ https://haply.co *
ნაბიჯი 1: სტრუქტურის შექმნა

იმის გათვალისწინებით, თუ რა მიზანს ისახავთ მიზნად, თქვენ ჯერ უნდა შეიმუშაოთ 5-ბმულიანი სტრუქტურა. დაფიქრდით გაზომვებზე, გამტარებლებზე, რომელთა გამოყენება გსურთ და როგორ დააკავშიროთ სახსრები გლუვი მოძრაობებისთვის.
ჩემი პროტოტიპისთვის, მე ვუშვებ ჩემს კოდს Arduino DUE– ზე, რომელიც აკონტროლებს სერიალს პროგრამით ჩემს Mac– ზე, რომელიც დამზადებულია ღია ჩარჩოებში. პროგრამა იყენებს UDP კავშირს Unity 3D– ზე დაფუძნებული მართვის სიმულატორთან დასაკავშირებლად.
Scribble პროტოტიპი იყენებს 5 მმ საკისრებს და დამზადებულია 5 მმ ლაზერული აკრილისგან. ამორტიზატორები არიან ფრანკ ვან ვალენჰოეფის Haptic Engines, რომლებიც საშუალებას იძლევა გააქტიურდეს, წაიკითხოს პოზიცია და გამოუშვას ცვლადი ძალა. ამან ისინი იდეალური გახადა Scribble– ის სასურველი ჰაპტიკური თვისებებისთვის. უფრო მეტი მისი აქტუატორების შესახებ შეგიძლიათ იხილოთ აქ:
ნაბიჯი 2: იცოდეთ თქვენი აპარატურის ღირებულებები

შემდგომი კინემატიკა ემყარება SAP- ის ამინდის ამინდის სადგურს:
როგორც ნაჩვენებია მათ კონფიგურაციაში, მკლავი გაჭიმულია მარკერის დასახატად. ეს ამოღებულია მას შემდეგ, რაც არ ემსახურებოდა სკრიპტის პროტოტიპის მიზანს. შეამოწმეთ მათი კოდი, თუ გსურთ ამ კომპონენტის ხელახლა დამატება. სახელები სურათზე იგივეა დაცული ჩემს კონფიგურაციაში.
თქვენი ტექნიკის მიხედვით ალგორითმმა უნდა იცოდეს თქვენი აპარატურის თვისებები:
int leftActuator, rightActuator; // კუთხე, რომლითაც უნდა დაწეროთ გამტარებელი, შეცვალეთ მოძრავი, თუ გსურთ მეტი სიზუსტე
int posX, posY; // მაჩვენებლის ადგილმდებარეობის კოორდინატები
დააყენეთ თქვენი შეყვანის მნიშვნელობების გარჩევადობა
int posStepsX = 2000;
int posStepsY = 1000;
თქვენი კონფიგურაციის ზომები, მნიშვნელობები არის მმ -ში (იხ. SAP სურათი)
#განსაზღვრეთ L1 73 // სიგრძის ძრავა, იხილეთ SAP სურათი (მარცხენა და მარჯვენა ერთნაირია)
#განსაზღვრეთ L2 95 // სიგრძის გაფართოების მკლავი, იხილეთ SAP სურათი (მარცხენა და მარჯვენა ერთნაირია)
#განსაზღვრეთ დიაპაზონი X 250 // მაქსიმალური დიაპაზონი X მიმართულებით წერტილის გადასაადგილებლად (მარცხნიდან მარჯვნივ, 0 - maxVal)
#განსაზღვრეთ დიაპაზონი Y 165 // მაქსიმალური დიაპაზონი Y მიმართულებით წერტილის გადასაადგილებლად (0 -დან მაქსიმალურ მიღწევამდე ცენტრში ყოფნისას)
#განსაზღვრეთ წარმოშობა L 90 // ოფსეტური მანძილი უმცირესი X მნიშვნელობიდან აქტივატორის ცენტრის პოზიციამდე
#განსაზღვრეთ წარმოშობა R 145 // ოფსეტური მანძილი უმცირესი X მნიშვნელობიდან გამტარებლის ცენტრის პოზიციამდე, ამ ორ მანძილს შორის მანძილი ამ შემთხვევაშია
ნაბიჯი 3: წინსვლის კინემატიკა

როგორც წინა საფეხურზეა ნათქვამი, წინსვლის კინემატიკა ემყარება SAP- ის ალგორითმს.
სიცარიელე აახლებს მარცხენა და მარჯვენა გამტარებლის სასურველ კუთხის მნიშვნელობებს, რომლებიც ადრე იყო განსაზღვრული. X და Y მნიშვნელობების საფუძველზე, რომლებიც ჩართულია მასში, გამოითვლება სწორი კუთხეები, რომ მივიღოთ მაჩვენებელი ამ პოზიციაზე.
void set_XY (ორმაგი Tx, ორმაგი Ty) // შეიყვანეთ თქვენი X და Y მნიშვნელობა {// ზოგიერთი ვალსი ჩვენ გვჭირდება, მაგრამ არ გვინდა შენახვა ხანგრძლივი ორმაგი dx, dy, c, a1, a2, Hx, Hy; // რუქის შეყვანის რეზოლუცია რეალურ სამყაროში თქვენი კონფიგურაციის დიაპაზონში int realX = რუკა (Tx, 0, posStepsX, 0, rangeX); // swap if mapping if inversed int realY = map (Ty, posStepsX, 0, 0, rangeY); // swap if mapping if inversed // calc angle for left actuator // cartesian dx/dy dx = realX - originL; // მოიცავს ოფსეტური dy = realY; // პოლარული სიგრძე (გ) და კუთხე (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = დაბრუნების_კუთხედი (L1, L2, c); leftActuator = იატაკი (((M_PI - (a2 + a1)) * 4068) / 71); // საბოლოო კუთხე და გარდაქმნა რადიდან deg- მდე // კალკულაცია სწორი გამტარებლისთვის dx = realX - origR; // მოიცავს ოფსეტური dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = დაბრუნების_კუთხედი (L1, L2, c); rightActuator = სართული (((a1 - a2) * 4068) / 71); // საბოლოო კუთხე და გარდაქმნა რადიდან deg- ზე}
კუთხის გამოთვლის დამატებითი სიცარიელე:
ორმაგი დაბრუნების_კუთხედი (ორმაგი a, ორმაგი b, ორმაგი c) {// კოსინუსის წესი c და დაბრუნების acos შორის კუთხისათვის ((a * a + c * c - b * b) / (2 * a * c)); }
ნაბიჯი 4: ინვერსიული კინემატიკა

უკუ კინემატიკა პირიქით მუშაობს. თქვენ აერთებთ თქვენი აქტივატორების ბრუნვას გრადუსში და სიცარიელე განაახლებს ადრე განსაზღვრულ პოზიციას.
გთხოვთ გაითვალისწინოთ, რომ თქვენ დაგჭირდებათ აქტივატორები ან ცალკეული სენსორი, რომელსაც შეუძლია მკლავის კუთხის წაკითხვა. ჩემს შემთხვევაში, მე ვიყენებ აქტივატორებს, რომლებსაც შეუძლიათ ერთდროულად წაიკითხონ და დაწერონ თავიანთი პოზიცია. მოგერიდებათ ექსპერიმენტი ამით და განიხილეთ რაიმე სახის კალიბრაციის დამატება, რათა დარწმუნებული იყოთ, რომ თქვენი კუთხე სწორად არის წაკითხული.
გირჩევთ:
MXY Board - დაბალბიუჯეტიანი XY Plotter Drawing Robot Board: 8 ნაბიჯი (სურათებით)

MXY დაფა - დაბალბიუჯეტიანი XY Plotter Drawing Robot Board: ჩემი მიზანი იყო mXY დაფის შემუშავება, რათა დაბალი ბიუჯეტით გამომეყენებინა XY პლოტერის ხატვის მანქანა. ასე რომ, მე შევიმუშავე დაფა, რომელიც გაუადვილებს მათ, ვისაც სურს ამ პროექტის განხორციელება. წინა პროექტში, 2 ცალი Nema17 სტეპერიანი ძრავის გამოყენებისას, ეს დაფა თქვენ
Arduino– სთვის Drawing Robot– ის გამოყენება კოდის საათის გაკვეთილებით: 3 ნაბიჯი

Arduino– სთვის Drawing Robot– ის გამოყენება საათის კოდის გაკვეთილებით: მე შევქმენი Arduino ხატვის რობოტი სემინარისთვის, რათა დავეხმარო მოზარდ გოგონებს დაინტერესდნენ STEM თემებით (იხ. Https://www.instructables.com/id/Arduino-Drawing-Robot/ ). რობოტი შექმნილია იმისათვის, რომ გამოიყენოს კუს სტილის პროგრამირების ბრძანებები, როგორიცაა წინსვლა (დისტანცია
XY Drawing Robot: 12 ნაბიჯი

XY Drawing Robot: დღეს მე განვიხილავ მეჩატრონიკის პროექტს. ეს პროექტი არის რეალურად წარმოშობილი ვიდეო, რომელიც მე უკვე გამოვაქვეყნე აქ: ROUTER AND PLOTTER WIFI WEBSERVER ESP32- ში. მე გირჩევთ უყუროთ ამას ჯერ, რადგან ის განმარტავს, თუ როგორ მუშაობს GRBL პროგრამა
ნაგავში აშენებული BT Line Drawing Bot - ჩემი ბოტი: 13 ნაბიჯი (სურათებით)

ნაგავში აშენებული BT Line Drawing Bot - My Bot: Hai მეგობრებო დიდი ხნის შუალედის შემდეგ დაახლოებით 6 თვის განმავლობაში აქ მოვედი ახალი პროექტით. Cute Drawing Buddy V1, SCARA Robot - Arduino– ს დასრულებამდე ვგეგმავ კიდევ ერთ ნახატის ბოტს, მთავარი მიზანია ნახატისთვის დიდი სივრცის დაფარვა. ასე ფიქსირებული რობოტული იარაღი
Haptic Proximity მოდული - იაფი და მარტივი: 5 ნაბიჯი (სურათებით)

Haptic სიახლოვის მოდული - იაფი და მარტივი: ღმერთმა ადამიანებს გადასცა მხედველობის გრძნობა ჩვენი ცხოვრების მნიშვნელოვანი ასპექტი. მაგრამ არიან უბედური ადამიანები, რომლებსაც არ გააჩნიათ საგნების ვიზუალიზაციის უნარი. მსოფლიოში დაახლოებით 37 მილიონი ადამიანია ბრმა, 15 მილიონზე მეტი