Inhoudsopgave:
- Stap 1: Gereedschappen en materialen
- Stap 2: Bouw het
- Stap 3: Bereid de software voor
- Stap 4: Los een Rubiks kubus op
- Stap 5: De broncode
Video: BricKuber Project - een Raspberry Pi Rubiks Cube Solving Robot - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
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
- 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
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
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:
Geautomatiseerde ECG-BME 305 Final Project Extra Credit: 7 stappen
Geautomatiseerd ECG-BME 305 Final Project Extra tegoed: een elektrocardiogram (ECG of ECG) wordt gebruikt om de elektrische signalen te meten die door een kloppend hart worden geproduceerd en het speelt een grote rol bij de diagnose en prognose van hart- en vaatziekten. Een deel van de informatie die uit een ECG wordt verkregen, omvat het ritme
Lightshowpi-project: 4 stappen
Lightshowpi-project: Hallo allemaal! Dit is mijn officiële gids over het maken van een lichtshow met lightshowpi vanaf oktober 2020
Hoe maak je RADAR met behulp van Arduino voor Science Project - Beste Arduino-projecten: 5 stappen
Hoe maak je RADAR met behulp van Arduino voor Science Project | Beste Arduino-projecten: Hallo vrienden, in deze instructable laat ik je zien hoe je een geweldig radarsysteem kunt maken dat is gebouwd met behulp van Arduino nano. Dit project is ideaal voor wetenschappelijke projecten en je kunt dit gemakkelijk doen met heel minder investeringen en kansen als het winnen van een prijs geweldig is om
IOT-huisautomatisering DIY-project # 1: 7 stappen
IOT Home Automation DIY Project #1: # INLEIDING Domotica is het automatiseringsproces van huishoudelijke apparaten zoals AC, Ventilator, Koelkast, verlichting en de lijst gaat maar door, zodat ze kunnen worden bediend met je telefoon, computer of zelfs op afstand. Dit project gaat over de esp2866
USB-aangedreven brander! Dit project kan door plastic / hout / papier branden (leuk project moet ook heel fijn hout zijn): 3 stappen
USB-aangedreven brander! Dit project kan door plastic / hout / papier branden (leuk project moet ook heel fijn hout zijn): MAAK DIT NIET MET USB!!!! ik kwam erachter dat het je computer kan beschadigen door alle opmerkingen. mijn computer is in orde. Gebruik een 600mA 5v telefoonoplader. ik heb dit gebruikt en het werkt prima en niets kan worden beschadigd als je een veiligheidsstekker gebruikt om de stroom te stoppen