Innholdsfortegnelse:
Video: Rubics Cube Solver Bot: 5 trinn (med bilder)
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Lag en autonom robot som løser en fysisk Rubiks kube. Dette er et prosjekt under Robotics Club, IIT Guwahati.
Den er laget av enkelt materiale som er lett å finne. Hovedsakelig brukte vi Servomotorer og en Arduino for å kontrollere dem, akrylplater, en ødelagt minidrafter, L-klemmer og doble bånd!
For å få algoritmen for å løse kuben brukte vi cubejs -biblioteket fra github.
Trinn 1: Materialer som brukes
- 6 servomotorer
- Arduino Uno
- 3-cellers LiPo-batteri
- Akrylark (8 mm og 5 mm tykkelse)
- Varmepistol(
- Boremaskin
- Hacksag
- L klemmer
- Aluminiumslister
- Mini Drafter/ metallstenger
- Dobbel tape
- Fevi Quick
- Mutterbolter
- Jumper ledninger
Trinn 2: Gjør den mekaniske strukturen klar
Den grunnleggende rammen
- Ta et 8 mm tykt akrylark på omtrent 50 cm * 50 cm og merk midten av alle sidene (dette vil være basen på roboten din).
- Ta en ødelagt tegner og fjern de 4 stålstavene fra den.. (disse stengene vil fungere som banen for glidebryteren).
- På to rektangulære stykker akryl (av hvilken som helst størrelse) fest to stenger parallelt med hverandre og lag to par av denne enheten.
- For å lage en glidebryter stabler du to små stykker akryl på toppen av hverandre med avstandsstykker mellom dem i de fire hjørnene og fester dem med bolter i avstandsstykkene. Du trenger 4 slike glidebrytere.
- Før du fester de to stykkene glidebryteren, må du føre de tidligere festede parallelle stengene mellom dem slik at avstandsstykkene bare berører stangens ytre overflate.
- For hvert par parallelle stenger passerer to glidebrytere på dem.
- Når dette er klart, ordner du stengene i form av et kryss på 90 grader. Sørg for at det er en glidebryter i hver ende av korset.
-
Alt du trenger å gjøre er å feste denne kryssede banen til basen på roboten din, i en viss høyde fra basen. (Sørg for at høyden er større enn høyden på en servomotor)
For dette kan du bruke akrylfester med L-klemmer som vi gjorde, eller en annen metode vil være tilstrekkelig
Etter dette skal strukturen din se ut som bildet.
Fest baseservoene
- De to basisservoene bør festes slik at servoen er under korsarmen og forskjøvet fra midten.
- Servoene festes i horisontal posisjon til en perforert silisiumskive med lange bolter, som igjen festes til basen med L-klemme og toveis tape.
Gjør push-pull stenger
- Sett servovinkelen til null og fest festet til vippearmen på servoen i en passende posisjon.
- Plasser kuben i midten av krysset for å få et estimat av glidebryterens avstand i nærmeste posisjon og plasser glidebryterne i de posisjonene.
- Fest L -formede aluminiumslister nederst på hver glidebryter ved hjelp av dobbel tape.
- Nå for å måle avstanden til hver aluminiumslist fra toppen eller bunnen av servovipperen som ligger i planet, vil dette være lengden på din push-pull-stang.
- Når lengder er bestemt, kan skyvstangen fikses ved å bore aluminiumslisten eller noe.
Montering av de øverste servoene
- Bestem høyden på hvilken terningen din skal løses på. Aksen til servomotoren skal være i denne høyden.
- Fest de fire servomotorene, hver til en perforert silisiumskive med bolter i vertikal stilling.
- Skiven er nå montert på en L-formet aluminiumsbånd hvis base er festet til glidebryteren i riktig høyde slik at servoaksen ligger i midten av kuben.
C-klørne
- Klørne skal være slik at de passer nøyaktig til en side av terningen, og lengden på øvre og nedre del må ikke overstige en side av en terning.
- For dette ta en stripe med akryl med tilstrekkelig tykkelse og varme den. Når den smelter omformes den til en C-formet klemme slik at den nøyaktig fanger en side av terningen.
- Merk midten av C-kloen og fest denne klemmen til vipperen på servoen i midten.
Gjør noen mindre justeringer etter behov, slik at hver klemme er i samme høyde.
Dette fullfører den mekaniske strukturen til roboten din, og lar deg flytte til kretsforbindelsene …..
Trinn 3: Kretsforbindelser
For å kontrollere Bot brukte vi en Arduino, spenningsregulator og et 3-cellers (12v) LiPo-batteri.
Siden Servomotorene trekker mye strøm, brukte vi 6 spenningsregulatorer, en for hver motor.
Signalinngangene til motorene (letteste fargekabel av de tre) ble koblet til digitale PWM -pinner 3, 5, 6, 9, 10, 11 på Arduino.
Spenningsregulatoren ble koblet til brødbrettet og drevet av 12 volts batteri. Utgangsforsyningen (5V) ble matet direkte inn i motorene. Ground of motorer ble også koblet til brødbrettet. Felles grunnen var også knyttet til Arduino.
Trinn 4:
Trinn 5: Kode:
De to oppgitte filene viser koden som er skrevet for å gi kommandoen til motorene for bestemte trinn ved bruk av Arduino.
Den første filen inneholder hovedfunksjonen og andre variabeldefinisjoner. Den andre filen inneholder funksjoner for hvert trekk som brukes til å løse en kube (f.eks. U for 'oppovervendt rotasjon med klokken', R1 for 'høyre ansikt mot urviseren' osv.)
For å få algoritmen for å løse kuben brukte vi cubejs -biblioteket fra github.
Algoritmen gir direkte utgang i 'ansiktsbevegelser' som fullføres av Arduino -koden.