Inhoudsopgave:

BricKuber Project - een Raspberry Pi Rubiks Cube Solving Robot - Ajarnpa
BricKuber Project - een Raspberry Pi Rubiks Cube Solving Robot - Ajarnpa

Video: BricKuber Project - een Raspberry Pi Rubiks Cube Solving Robot - Ajarnpa

Video: BricKuber Project - een Raspberry Pi Rubiks Cube Solving Robot - Ajarnpa
Video: How To Build a Raspberry Pi Rubiks Cube Solving Robot 2024, November
Anonim
Image
Image

De BricKuber lost een Rubiks kubus op in minder dan 2 minuten.

De BricKuber is een open source Rubik's kubusoplossende robot die je zelf kunt bouwen

We wilden een Rubiks kubusoplossende robot bouwen met de Raspberry Pi. In plaats van voor snelheid te gaan, gingen we voor eenvoud: als je een Raspberry Pi, een BrickPi-kit en een standaard LEGO Mindstorms EV3- of NXT-set hebt, zou je gemakkelijk in onze voetsporen moeten kunnen treden. De software is geschreven in de programmeertaal Python. Je kunt hier alle broncode op Github bekijken.

Achtergrond De Rubiks kubus maakt sinds kort een comeback. Uitgevonden in 1974, is het 's werelds best verkochte speelgoed. Maar om ze op te lossen is nadenken, inspanning en vaardigheid nodig… dus waarom zou je het niet door een robot laten doen? In dit project nemen we een Raspberry Pi, een BrickPi en een set LEGO Mindstorms en bouwen we een Rubiks kubusoplossende robot. Plaats eenvoudig een onopgeloste Rubiks kubus in de oplosser, voer het python-programma uit en uw Rubiks kubus is opgelost! Het project gebruikt de Pi om de Rubiks kubus direct op te lossen. De BrickPi3 neemt de onopgeloste Rubik's kubus en de Raspberry Pi maakt een foto van elke kant van de Rubik's kubus met de Raspberry Pi Camera. De Pi maakt een tekstkaart van de gekleurde vierkanten die laat zien waar ze zich op de kubus bevinden. Wanneer het de kubus volledig in kaart heeft gebracht, gebruikt de Pi de "kociemba" python-bibliotheek om de bewegingen in kaart te brengen die nodig zijn om de Rubiks kubus op te lossen. Deze informatie wordt door de Pi en BrickPi3 gebruikt om de Rubiks kubus op te lossen met behulp van de LEGO-motoren. Het resultaat: een opgeloste Rubiks kubus.

Stap 1: Gereedschappen en materialen

Bouw het
Bouw het
  • BrickPi3 – We gebruiken de BrickPi om de LEGO-motoren te besturen die de Rubiks kubusoplosser oplossen.
  • Raspberry Pi - De Pi zal de verwerking doen, foto's maken en de BrickPi besturen.
  • Raspberry Pi-camera - De Pi-camera maakt een foto van de onopgeloste Rubiks-kubus.
  • Ethernet-kabel – U heeft uw machine nodig om met internet te zijn verbonden. Als je dit via wifi wilt doen, is dat ook goed!
  • Raspbian for Robots SD-kaart - De software die de Raspberry Pi uitvoert. Dit wordt geleverd met de meeste software die nodig is voor deze zelfstudie. U kunt de software ook gratis downloaden.
  • LEGO Mindstorms EV3-set (31313) – Je hebt een stapel LEGO en twee grote motoren nodig, en een servomotor en de ultrasone sensor.
  • Een Rubik's Cube - We hebben er een gevonden die hier vrij vrij ronddraait. Je kunt echter zowat elke 9x9x9 Rubiks kubus gebruiken.

Stap 2: Bouw het

Bouw het
Bouw het
Bouw het
Bouw het

De Oplosser bouwen

Dit ontwerp is geïnspireerd op het MindCub3r-ontwerp voor LEGO EV3. Om de BricKuber te bouwen, begint u met het bouwen van de MindCub3r. Volledige LEGO bouwinstructies zijn hier te vinden.

Het ontwerp van de Rubiks-kubusoplosser heeft drie belangrijke bewegende delen. De eerste is een wieg om de Rubiks kubus vast te houden. De tweede is de shuffler, een arm die wordt gebruikt om de Rubiks kubus om te draaien.

Als laatste voegen we een camera-arm toe. In het oorspronkelijke ontwerp van MindCubr hield dit de EV3-kleurensensor boven de Rubiks kubus. In ons aangepaste ontwerp houdt het een Raspberry Pi-camera boven de Rubiks kubus. We gebruiken twee LEGO Mindstorms-motoren om de kubus te manipuleren: de eerste zit onder de wieg om de kubus te draaien, en de tweede beweegt de schudarm om de kubus op een tegenoverliggende as te laten draaien.

Monteer de BrickPi3

De montagehandleiding voor de BrickPi3 vind je hier. We moeten de behuizing in elkaar zetten, de BrickPi3, de Raspberry Pi, de Raspberry Pi-camera aansluiten, een SD-kaart toevoegen en batterijen toevoegen. Om de software gemakkelijker in te stellen, wordt Raspbian for Robots geleverd met de meeste software die je al nodig hebt. U hebt minimaal een SD-kaart van 8 GB nodig en u wilt de schijf uitbreiden zodat deze op de volledige grootte van de SD-kaart past.

Bevestig de BrickPi3

We voegen de BrickPi3 toe aan de LEGO-assemblage. We gebruikten de LEGO EV3 "vleugels" om de BrickPi3 te ondersteunen en hem gelijk te maken met de BricKuber body. Dit is een goede stap om 8XAA-batterijen toe te voegen aan het accupakket en het BrickPi3-accupakket aan de LEGO-montage te bevestigen. Voor het programmeren kun je de BrickPi3 van stroom voorzien via USB-voeding naar de Raspberry Pi, maar om de motoren te verplaatsen moet je de Power Pack van stroom voorzien.

Sluit de motoren aan op de BrickPi3

Bevestig de Shuffler-motor aan de motorpoort “MD”. Sluit de houdermotor aan op de "MA"-poort op de BrickPi3. Bevestig de camerasensormotor aan de "MC" -poort (dit is de kleinere servo-achtige motor). Ook al verplaatsen we de camera niet, misschien wilt u de locatie van de camera aanpassen met behulp van de motoren.

Bevestig de Raspberry Pi-camera

Bevestig de camera met behulp van de LEGO Camerasteun. De kleine zwarte lens van de camera moet tussen de twee LEGO-balksteunen passen. Bevestig de camera op zijn plaats aan de LEGO-steunen met wat isolatietape. Dit is een goed moment om ervoor te zorgen dat de camera zo staat dat hij de hele Rubiks kubus kan vastleggen. U kunt een testfoto maken met het raspistill-commando

raspistill -o cam.jpg

Controleer of de kubus goed gecentreerd is in het midden van de afbeelding.

Stap 3: Bereid de software voor

Je kunt elke versie van Raspbian of Raspbian for Robots gebruiken, onze aangepaste afbeelding die wordt geleverd met de BrickPi3 al geïnstalleerd. Als u een standaardversie van Raspbian gebruikt, kunt u de BrickPi3-bibliotheken installeren met het commando

sudo curl -kL dexterindustries.com/update_brickpi3 | bash

Met deze stap worden alle bibliotheken geïnstalleerd die nodig zijn om BrickPi3 op uw Raspbian Image uit te voeren. Sla deze stap over als je Raspbian for Robots gebruikt: de BrickPi3 is al geïnstalleerd.

Installeer ten slotte alle projectafhankelijkheden met behulp van de opdracht:

sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | bash

Voor deze stap moet je BrickPi3 verbonden zijn met internet. Er zijn een aantal bibliotheken waarvan het project afhankelijk is, waaronder enkele cruciale van Daniel Walton (@dwalton76) op Github, die worden gebruikt om de Rubiks kubus op te lossen.

Stap 4: Los een Rubiks kubus op

Los een Rubiks kubus op
Los een Rubiks kubus op
Los een Rubiks kubus op
Los een Rubiks kubus op
Los een Rubiks kubus op
Los een Rubiks kubus op

Plaats een onopgeloste Rubiks kubus in de wieg. Voer de opdracht uit

sudo python ~/Dexter/BrickPi3/Projects/BricKuber/BricKuber.py

De robot draait de kubus naar elk gezicht en de camera maakt 6 foto's, één van elke kant van de kubus. De Raspberry Pi bepaalt de kubusconfiguratie uit de zes afbeeldingen. De Cube-configuratie wordt doorgegeven aan de kociemba Python-bibliotheek om een efficiënte oplossing te vinden. Ten slotte voert de robot de bewegingen uit om de Rubik's Cube op te lossen!

Stap 5: De broncode

Alle broncode voor de BricKuber is hier te vinden in onze open source github-repo.

Dit project gebruikt de volgende softwarepakketten die met het commando zijn geïnstalleerd:

Aanbevolen: