Cuprins:

Rubics Cube Solver Bot: 5 pași (cu imagini)
Rubics Cube Solver Bot: 5 pași (cu imagini)

Video: Rubics Cube Solver Bot: 5 pași (cu imagini)

Video: Rubics Cube Solver Bot: 5 pași (cu imagini)
Video: No Way There's Hair In My Rubik's Cube 😤 2024, Noiembrie
Anonim
Rubics Cube Solver Bot
Rubics Cube Solver Bot

Realizarea unui robot autonom care rezolvă un cub Rubik fizic. Acesta este un proiect sub Robotics Club, IIT Guwahati.

Este realizat folosind materiale simple care pot fi găsite cu ușurință. În principal, am folosit motoare servo și un Arduino pentru a le controla, foi acrilice, un Mini Drafter rupt, cleme în L și benzi duble!

Pentru a obține algoritmul de rezolvare a cubului, am folosit biblioteca cubejs de la github.

Pasul 1: Materiale utilizate

Materiale utilizate
Materiale utilizate
  1. 6 motoare servo
  2. Arduino Uno
  3. Baterie LiPo cu 3 celule
  4. Foaie acrilică (8 mm și 5 mm grosime)
  5. Pistol cu aer cald(
  6. Mașină de găurit
  7. Ferăstrău
  8. L cleme
  9. Benzi de aluminiu
  10. Mini Drafter / tije metalice
  11. Bandă dublă
  12. Fevi Quick
  13. Șuruburi cu piuliță
  14. Sârme de jumper

Pasul 2: Pregătirea structurii mecanice

Pregătirea structurii mecanice
Pregătirea structurii mecanice
Pregătirea structurii mecanice
Pregătirea structurii mecanice

Cadrul de bază

  • Luați o foaie acrilică de 8 mm grosime de aproximativ 50 cm * 50 cm și marcați centrul tuturor laturilor (aceasta va fi baza robotului dvs.).
  • Luați un draper rupt și îndepărtați cele 4 tije de oțel de pe acesta.. (aceste tije vor servi drept cale pentru glisorul dvs.).
  • Pe două bucăți dreptunghiulare de acril (de orice dimensiune) fixați două tije paralele între ele și faceți două perechi din acest ansamblu.
  • Apoi, pentru a face un glisor, stivați două bucăți mici de acril, una peste alta, cu distanțiere între ele la cele patru colțuri și fixați-le cu șuruburi în distanțiere. Veți avea nevoie de 4 astfel de glisoare.
  • Înainte de a fixa cele două bucăți de glisor, treceți tijele paralele afixate anterior între ele astfel încât distanțierii să atingă doar suprafața exterioară a tijelor.
  • Pentru fiecare pereche de tije paralele treceți două glisoare pe ele.
  • Odată ce acest lucru este gata, aranjați perechea de tije sub forma unei cruci de 90 de grade. Asigurați-vă că există un glisor la fiecare capăt al crucii.
  • Acum tot ce trebuie să faceți este să atașați această cale încrucișată la baza robotului dvs., la o anumită înălțime de la bază (asigurați-vă că înălțimea este mai mare decât înălțimea unui servomotor)

    Pentru aceasta, puteți utiliza suporturi acrilice cu cleme în L, așa cum am făcut noi sau orice altă metodă va fi suficientă

După aceasta, structura dvs. ar trebui să arate ca imaginea.

Atașarea servoarelor de bază

  • Cele două servome de bază trebuie atașate astfel încât servo să fie sub brațul crucii și să fie decalat de centru.
  • Servoanele sunt atașate în poziție orizontală la o placă perforată din siliciu folosind șuruburi lungi, care la rândul lor sunt atașate la bază cu clemă L și bandă bidirecțională.

Realizarea tijelor push-pull

  • Setați unghiul servo la zero și atașați brațul oscilant al servo-ului într-o poziție adecvată.
  • Așezați cubul în centrul crucii pentru a obține o estimare a distanței glisorului în cea mai apropiată poziție și plasați glisoarele în acele poziții.
  • Atașați benzi de aluminiu în formă de L în partea de jos a fiecărui glisor folosind bandă dublă.
  • Acum, pentru a măsura distanța fiecărei benzi de aluminiu de la partea superioară sau inferioară a balansierului servo care se află în planul său, aceasta va fi lungimea tijei dvs. push-pull.
  • Odată determinate lungimile, tija de împingere poate fi fixată prin găurirea benzii de aluminiu sau ceva similar.

Montarea servo-urilor superioare

  • Decideți înălțimea la care cubul dvs. va fi rezolvat. Axa servomotorului ar trebui să fie la această înălțime.
  • Atașați cele patru servomotoare, fiecare la o placă de siliciu perforată folosind șuruburi în poziție verticală.
  • Placa este acum montată pe o bandă de aluminiu în formă de L a cărei bază este fixată pe glisor la o înălțime adecvată, astfel încât axa servo să se afle în centrul cubului.

Ghearele C

  • Ghearele trebuie să fie astfel încât să se potrivească exact unei laturi a cubului, iar lungimea porțiunilor superioare și inferioare nu trebuie să depășească latura unui cub.
  • Pentru aceasta luați o bandă de acril cu suficientă grosime și încălziți-o. Odată ce se topește, se remodelează, formează o clemă în formă de C astfel încât să prindă exact o parte a cubului.
  • Marcați centrul ghearei C și fixați această clemă pe balansierul servo din centrul său.

Efectuați câteva ajustări minore, după cum este necesar, astfel încât fiecare clemă să fie la aceeași înălțime.

Acest lucru completează structura mecanică a robotului dvs., permite trecerea la conexiunile circuitului ……..

Pasul 3: Conexiuni de circuit

Conexiuni de circuit
Conexiuni de circuit

Pentru a controla botul, am folosit un Arduino, un regulator de tensiune și o baterie LiPo cu 3 celule (12v).

Întrucât motoarele servo consumă multă putere, am folosit 6 regulatoare de tensiune, câte unul pentru fiecare motor.

Intrările de semnal ale motoarelor (cel mai ușor fir de culoare dintre cele trei) au fost conectate la pinii PWM digitali 3, 5, 6, 9, 10, 11 ai Arduino.

Regulatorul de tensiune a fost conectat pe panou și alimentat de bateria de 12 volți. Alimentarea cu ieșire (5V) a fost alimentată direct în motoare. Pământul motoarelor a fost, de asemenea, conectat la panou. Terenul comun a fost atașat și la Arduino.

Pasul 4:

Image
Image

Pasul 5: Cod:

Cele două fișiere date arată codul scris pentru a da comanda motoarelor pentru pași anumiți folosind Arduino.

Primul fișier conține funcția principală și alte definiții ale variabilelor. Al doilea fișier conține funcții pentru fiecare mișcare utilizată la rezolvarea unui cub (de ex. U pentru „rotația în sus în sensul acelor de ceasornic”; R1 pentru „mișcarea feței drepte în sens invers acelor de ceasornic” etc.)

Pentru a obține algoritmul de rezolvare a cubului, am folosit biblioteca cubejs de la github.

Algoritmul oferă ieșire directă în „mișcările feței”, care este completată de codul Arduino.

Recomandat: