Inhoudsopgave:

Rubics Cube Solver Bot - Ajarnpa
Rubics Cube Solver Bot - Ajarnpa

Video: Rubics Cube Solver Bot - Ajarnpa

Video: Rubics Cube Solver Bot - Ajarnpa
Video: 0.38 Second Rubik's Cube Solve 2024, November
Anonim
Rubics Cube Solver Bot
Rubics Cube Solver Bot

Een autonome robot maken die een fysieke Rubiks kubus oplost. Dit is een project van Robotics Club, IIT Guwahati.

Het is gemaakt van eenvoudig materiaal dat gemakkelijk te vinden is. We gebruikten voornamelijk servomotoren en een Arduino om ze te besturen, acrylplaten, een kapotte Mini Drafter, L-klemmen en Dual Tapes!

Voor het verkrijgen van het algoritme voor het oplossen van de kubus hebben we de cubejs-bibliotheek van github gebruikt.

Stap 1: Gebruikte materialen

Gebruikte materialen
Gebruikte materialen
  1. 6 servomotoren
  2. Arduino Uno
  3. 3-cell LiPo-batterij
  4. Acrylplaat (8 mm en 5 mm dikte)
  5. Hitte geweer(
  6. Boor
  7. Metaalzaag
  8. L klemmen
  9. Aluminium strips
  10. Mini Drafter/metalen staven
  11. Dubbele band
  12. Fevi Snel
  13. Moerbouten
  14. Doorverbindingsdraden

Stap 2: De mechanische structuur gereed maken

De mechanische structuur gereed maken
De mechanische structuur gereed maken
De mechanische structuur gereed maken
De mechanische structuur gereed maken

Het basisframe

  • Neem een 8 mm dikke acrylplaat van ongeveer 50 cm * 50 cm en markeer het midden van alle zijkanten (dit wordt de basis van uw robot).
  • Neem een kapotte tekenaar en verwijder de 4 stalen staven ervan (deze staven zullen dienen als pad voor je schuif).
  • Bevestig op twee rechthoekige stukken acryl (van elke grootte) twee staven evenwijdig aan elkaar en maak twee paar van dit geheel.
  • Om vervolgens een schuif te maken, stapelt u twee kleine stukjes acryl op elkaar met afstandhouders ertussen op de vier hoeken en zet u ze vast met bouten in de afstandhouders. U hebt 4 van dergelijke schuifregelaars nodig.
  • Voordat u de twee delen van de schuif vastmaakt, moet u de eerder bevestigde parallelle staven ertussen zo doorvoeren dat de afstandhouders het buitenoppervlak van de staven net raken.
  • Voor elk paar evenwijdige staven passeer je er twee schuifregelaars op.
  • Zodra dit klaar is, plaatst u het paar staven in de vorm van een kruis van 90 graden. Zorg ervoor dat er aan elk uiteinde van het kruis een schuifregelaar is.
  • Nu hoef je alleen maar dit gekruiste pad aan de basis van je robot te bevestigen, op een bepaalde hoogte vanaf de basis. (Zorg ervoor dat de hoogte groter is dan de hoogte van een servomotor)

    Hiervoor kunt u acrylbevestigingen gebruiken met L-klemmen zoals wij deden of elke andere methode zal volstaan

Hierna zou uw structuur er ongeveer zo uit moeten zien als de afbeelding.

De basisservo's bevestigen

  • De twee basisservo's moeten zodanig worden bevestigd dat de servo zich onder de arm van het kruis bevindt en niet in het midden ligt.
  • De servo's worden in horizontale positie op een geperforeerde siliconenwafel bevestigd met lange bouten, die op hun beurt met L-klem en bidirectionele tape aan de basis worden bevestigd.

Het maken van de push-pull staven

  • Stel de servohoek in op nul en bevestig de tuimelaar van de servo in een geschikte positie.
  • Plaats de kubus in het midden van het kruis om een schatting te krijgen van de afstand van de schuifregelaar in de dichtstbijzijnde positie en plaats de schuifregelaars in die posities.
  • Bevestig L-vormige aluminium strips aan de onderkant van elke schuif met behulp van dubbele tape.
  • Om nu de afstand te meten van elke aluminium strip vanaf de boven- of onderkant van de servo-tuimelschakelaar die in zijn vlak ligt, is dit de lengte van uw duw-trekstang.
  • Zodra de lengtes zijn bepaald, kan de duwstang worden vastgezet door de aluminium strip of iets dergelijks te boren.

De bovenste servo's monteren

  • Bepaal de hoogte waarop je kubus wordt opgelost. De as van de servomotor moet zich op deze hoogte bevinden.
  • Bevestig de vier servomotoren, elk op een geperforeerde siliciumwafel met behulp van bouten in verticale positie.
  • De wafer is nu gemonteerd op een L-vormige aluminium strip waarvan de basis op de juiste hoogte aan de schuif is bevestigd, zodat de servo-as in het midden van de kubus ligt.

De C-klauwen

  • De klauwen moeten zo zijn dat ze precies in een zijde van een kubus passen en de lengte van de bovenste en onderste delen mag een zijde van een kubus niet overschrijden.
  • Neem hiervoor een strip acryl van voldoende dikte en verwarm deze. Zodra het smelt, vormt het een C-vormige klem zodat het precies een kant van de kubus insluit.
  • Markeer het midden van de C-klauw en bevestig deze klem aan de tuimelschakelaar van de servo in het midden.

Maak indien nodig enkele kleine aanpassingen zodat elke klem zich op dezelfde hoogte bevindt.

Dit voltooit de mechanische structuur van uw robot, laten we verder gaan met de circuitverbindingen……..

Stap 3: Circuitverbindingen

Circuit-aansluitingen
Circuit-aansluitingen

Om de Bot te besturen gebruikten we een Arduino, spanningsregelaar en een 3-cell (12v) LiPo-batterij.

Omdat de servomotoren veel stroom trekken, hebben we 6 spanningsregelaars gebruikt, één voor elke motor.

Signaalingangen van de motoren (lichtste kleurdraad van de drie) waren verbonden met digitale PWM-pinnen 3, 5, 6, 9, 10, 11 van de Arduino.

De spanningsregelaar werd op het breadboard aangesloten en gevoed door de 12 volt batterij. De output (5V) voeding werd rechtstreeks naar de motoren gevoerd. Grond van motoren waren ook verbonden met het breadboard. De gemeenschappelijke grond was ook verbonden met de Arduino.

Stap 4:

Image
Image

Stap 5: Coderen:

De twee gegeven bestanden tonen de code die is geschreven om de motoren opdracht te geven voor bepaalde stappen met behulp van Arduino.

Het eerste bestand bevat de hoofdfunctie en andere variabele definities. Het tweede bestand bevat functies voor elke beweging die wordt gebruikt bij het oplossen van een kubus (bijv. U voor 'omhoog draaien met de klok mee'; R1 voor 'rechts draaien tegen de klok in' enz.)

Voor het verkrijgen van het algoritme voor het oplossen van de kubus hebben we de cubejs-bibliotheek van github gebruikt.

Het algoritme geeft direct output in 'face moves' die wordt aangevuld door de Arduino-code.

Aanbevolen: