Inhoudsopgave:

Zelfbalancerende robot - Ajarnpa
Zelfbalancerende robot - Ajarnpa

Video: Zelfbalancerende robot - Ajarnpa

Video: Zelfbalancerende robot - Ajarnpa
Video: Silverlit MACROBOT Demo 2024, November
Anonim
Zelfbalancerende robot
Zelfbalancerende robot

In deze Instructable laten we je zien hoe je de zelfbalancerende robot kunt bouwen die we als schoolproject hebben gemaakt. Het is gebaseerd op een aantal andere robots, zoals de nBot en een andere Instructable. De robot is te besturen vanaf een Android-smartphone via een Bluetooth-verbinding. Omdat deze Instructable alleen het bouwproces behandelt, hebben we ook een document geschreven om de technische achtergrond van de code en elektronica te behandelen. Het bevat ook links naar de bronnen die zijn gebruikt, zodat u deze kunt bekijken als het document niet volledig genoeg voor u is.

Om alle stappen van dit project te volgen, heb je wat 3D-printvaardigheden nodig of een andere slimme manier om de wielen aan de motoren te bevestigen.

Stap 1: Vereisten

Vereisten
Vereisten
Vereisten
Vereisten
Vereisten
Vereisten

De robot is gebaseerd op een Martinez brushless gimbal controller board. Er zijn enkele kleine variaties op dit bord, maar zolang je er een hebt met een ATmega328-chip en L6234-motorcontrollers, zou het goed moeten komen. Als je op Google Afbeeldingen zoekt naar 'Martinez-bord', zie je dat er enkele borden zijn met een gemakkelijke aansluiting voor de IMU-chip en/of batterij, in plaats van pinheaders of gaatjes. In het laatste geval is het handig als je een pakje header pins bestelt, die je dan in de gaatjes soldeert.

Onderdelen lijst

Sommige items op deze lijst bevatten links naar webshops.

  • Controller: Martinez BoardDX.com (wordt ook geleverd met de IMU en enkele header-pinnen).
  • IMU: MPU6050
  • Batterij (450 mAh 3S LiPo-batterij) Let op: je hebt ook een 3S LiPo-oplader nodig eBay.com
  • 2x Motor: Borstelloze motor 2208, KV100DX.com
  • Wielen (u kunt deze krijgen van bestaand speelgoed of LEGO)
  • 6x M2 schroef 5 mm
  • 8x M3 schroef (lengte is afhankelijk van het materiaal voor uw exterieur, één dient extra lang te zijn)
  • Bluetooth-chip HC-05 (zorg ervoor dat u er een krijgt met een seriële interfacekaart aangesloten, niet alleen een kale chip) BELANGRIJK: zorg ervoor dat de chip een pin heeft met het label KEY.
  • Draden: vrouwelijk naar vrouwelijk DuPontEen pakket van 20 draden kopen is meer dan genoeg
  • Klittenband
  • USB-kabel om de controller op de pc aan te sluiten
  • Optioneel: Header pinsDX.com (u kunt deze op de gewenste lengte knippen of breken)
  • Kunststof ringen en afstandhouders

Ten slotte heb je wat acryl, hout of karton nodig - vergezeld van lijm of tape - om een structuur te creëren die alle componenten vasthoudt.

Stap 2: Bluetooth-chipconfiguratie

Bluetooth-chipconfiguratie
Bluetooth-chipconfiguratie

Zodra je alle onderdelen in handen hebt, is het tijd voor de configuratie van de Bluetooth-chip. U hebt een USB-kabel nodig om de controllerkaart op uw computer aan te sluiten, evenals de Arduino IDE om met de componenten te communiceren.

Hiervoor moet je het bestand downloaden:

HC-05_Serial_Interface.ino

Volg dan deze stappen:

  1. Sluit de controller met een USB-kabel aan op je computer.
  2. Open het.ino-bestand met de Arduino IDE.
  3. Ga in de IDE naar Tools, Board en zorg ervoor dat het is ingesteld op Arduino/Genuino Uno.
  4. Ga nu naar Tools, Port en stel deze in op de COM-poort waarop de controller is aangesloten. Meestal is er maar één poort. Als er meerdere zijn, controleer dan Apparaatbeheer (in Windows) om erachter te komen welke de controller is.
  5. Druk nu op de knop Uploaden in de IDE en wacht tot de upload is voltooid. Koppel vervolgens de USB-kabel los van de computer of de controller.

Nadat u dit hebt gedaan, sluit u de HC-05 als volgt aan met DuPont-kabels:

HC-05-controller

SLEUTEL +5V GND GND TXD RX RXD TX

Sluit nu de USB-kabel weer aan en verbind vervolgens de VCC-pin van de HC-05 met een andere +5V op de controller. De LED moet knipperen met een interval van ~ 1 seconde.

Selecteer in de Arduino IDE de juiste COM-poort en ga vervolgens naar Tools, Serial Monitor.

Stel de optie Regeleinde in de Seriële Monitor in op Zowel NL & CR. Stel de baudrate in op 38400. Nu kunt u de seriële monitor gebruiken om setup-opdrachten naar de Bluetooth-chip te sturen. Dit zijn de commando's:

AT Controleer verbinding

AT+NAME Bluetooth-weergavenaam ophalen/instellen AT+UART Baudrate ophalen/instellen AT+ORGL Fabrieksinstellingen herstellen AT+PSWD Bluetooth-wachtwoord ophalen/instellen

Om de naam, het wachtwoord en de baudrate van het Bluetooth-apparaat te wijzigen, stuurt u de volgende opdrachten:

AT+NAME="Voorbeeldnaam"

AT+PSWD="Wachtwoord123" AT+UART="230400, 1, 0"

De naam- en wachtwoordopties kunnen worden ingesteld op wat u maar wilt, zorg er wel voor dat u de baudrate instelt met exact dezelfde opdracht als hierboven vermeld. Dit stelt het in op 230400 baud, met 1 stopbit en geen pariteit. Nadat je alles hebt ingesteld, sluit je de USB-kabel opnieuw aan (om de configuratiemodus te verlaten) en probeer je je telefoon te koppelen aan de chip. Als alles werkt, koppelt u de USB-kabel los en gaat u verder met de volgende stap.

Stap 3: De wielen aan de motoren bevestigen

De wielen aan de motoren bevestigen
De wielen aan de motoren bevestigen
De wielen aan de motoren bevestigen
De wielen aan de motoren bevestigen

De wielen die in dit project zijn gebruikt hebben een onbekende oorsprong (ze lagen in een la met een heleboel andere spullen). Om de wielen aan de motoren te bevestigen, hebben we een stuk 3D geprint dat overeenkwam met de schroefgaten op de motoren. De stukken werden vastgeschroefd met drie 5 millimeter 2M schroeven per motor. Beide stukken hebben een pen die in de gaten in de assen van de wielen past.

Het SolidWorks-model is inbegrepen. U zult het waarschijnlijk voor uw wielen moeten aanpassen of een andere praktische oplossing moeten vinden om de wielen te passen. U kunt bijvoorbeeld een Dremel gebruiken om een gat te maken dat even groot is als de motor (of een klein beetje kleiner om het een goede pasvorm te geven), dan kunt u de motor in het wiel drukken. Zorg er wel voor dat u geschikte wielen voor deze klus krijgt als u van plan bent dit te doen.

Stap 4: De buitenkant maken

De buitenkant maken
De buitenkant maken

Voor de buitenkant werden twee stukken hout gebruikt en in dezelfde vorm gesneden. Om te beginnen hebben we de omtrek van de motor in het midden onderaan het stuk gemarkeerd. Vervolgens hebben we elke hoek gemarkeerd met een lijn van 45 graden, waarbij we ervoor zorgden dat er voldoende ruimte over was voor de motor in het midden onderaan. Vervolgens hebben we de twee stukken hout tegen elkaar geklemd en de hoeken afgezaagd. Om het geheel af te maken hebben we de hoeken geschuurd om ze minder scherp te maken en splinters te verwijderen.

Nu is het tijd om gaten te boren voor de schroeven en de as die uit de achterkant van de motor uitpuilt. Als je de stukken hout bij het boren aan elkaar klemt, hoef je elk gat maar één keer te boren.

Om de lay-out voor de schroefgaten te maken, gebruikten we een stuk papier en plaatsten het op de achterkant van de motor en gebruikten een potlood om in de schroefgaten te drukken, dwars door het papier. Het stuk papier met de vier schroefgaten werd vervolgens op het hout geplaatst zodat we de locatie van de te boren gaten konden markeren. Gebruik een boor van 3,5 mm om de gaten te boren. Gebruik nu een potlood en een liniaal om het midden van deze gaten te vinden en maak het gat voor de as met een boor van 5 mm. Bevestig de motoren met M3-schroeven, maar laat een van de schroeven met een grotere tussenruimte uit een motor.

Om de motorconnector en draad in de robot te krijgen, hebben we ook een gat van 8 mm iets boven de motor geboord. Zorg ervoor dat er voldoende ruimte is om de draden te buigen zonder ze te veel te belasten.

Het is belangrijk om zo precies mogelijk te werk te gaan om een (bijna) perfect symmetrisch exterieur te creëren

Stap 5: Montage van de componenten

De componenten monteren
De componenten monteren

Markeer een verticale middenlijn op het hout zodat u de onderdelen in het midden kunt plaatsen. Je kunt alles met klittenband aan het hout bevestigen. In onze robot hebben we kleine bouten en moeren gebruikt om de controllerkaart vast te zetten, maar je kunt ook klittenband gebruiken (die hadden we nog niet toen we de controller bevestigden). Zorg ervoor dat u een USB-kabel kunt aansluiten nadat u klaar bent met de constructie.

We plaatsten de controller in het midden met de USB-poort naar beneden, zodat we de kabel tussen de wielen konden aansluiten. Je kunt het ook naar een van de zijkanten richten.

Plaats de batterij zo hoog mogelijk, zodat de robot topzwaar wordt. Plaats de oplaadpoort ook op een goed bereikbare plaats nabij de rand.

Bluetooth-chip

Verbind de Bluetooth-chip VCC-pin met +5V op de controller en de Bluetooth GND met de GND van de controller. De TXD-pin van de controller gaat naar de Bluetooth RX en de RXD-pin op de controller gaat naar de Bluetooth TX-pin. Plak vervolgens de Bluetooth-chip gewoon ergens op het houten paneel met klittenband.

Bewegingschip

De motion-chip heeft twee schroefgaten, daarom hebben we de chip met een spacer bevestigd, zodanig dat het midden van de chip over het midden van de motor valt. De oriëntatie maakt niet uit, omdat de robot zichzelf kalibreert tijdens het opstarten. Zorg ervoor dat u een plastic ring onder de schroefkop gebruikt om kortsluiting in het circuit te voorkomen.

Gebruik vervolgens DuPont-draden om de pinnen op de controller aan te sluiten. Elke pin is op de controller hetzelfde gelabeld als op de motion-chip, dus het aansluiten ervan spreekt voor zich.

Aan/uit-schakelaar

Het aansluiten van een stroomschakelaar is eenvoudig. We hebben er een uit een oud apparaat gehaald en het van de printplaat gedesoldeerd. Om het te gebruiken als een aan / uit-schakelaar voor de robot, sluit je de positieve draad van de batterij aan op de pin (ervan uitgaande dat het een drie-pins schakelaar is) aan de kant waar je de aan-positie van de schakelaar wilt maken. Sluit vervolgens de middelste pin aan op de positieve voedingsingang van de controller. We hebben DuPont-draden aan de schakelaar gesoldeerd, zodat de batterij zelf niet permanent aan de schakelaar is bevestigd.

De zijkanten verbinden

Nu weet je de locatie van de componenten en heb je de twee kanten van de robot. De laatste stap bij het bouwen van de robot is het verbinden van de twee kanten met elkaar. we gebruikten vier sets van drie stukken hout die aan elkaar waren gelijmd en aan de zijkanten waren geschroefd, zodat onze bewegingschip zich op de middenas van de robot bevond. Het moet gezegd dat het gebruikte materiaal, mits sterk genoeg, niet veel uitmaakt. U kunt zelfs een zwaardere verbinding aan de bovenkant gebruiken om het zwaartepunt nog meer te verhogen. Maar in tegenstelling tot de verticale positie van het zwaartepunt, moet de horizontale positie van het zwaartepunt zoveel mogelijk op zijn plaats worden gehouden, boven de wielas, omdat het coderen van de code voor de bewegingschip nogal moeilijk zou worden als het horizontale middelpunt van ontheemde massa.

Nu ben je klaar om de code te uploaden en de controller af te stemmen.

Stap 6: De code uploaden en afstemmen

Om de code te uploaden heb je een computer nodig met de Arduino IDE. Download het.ino-bestand hieronder en open het met de Arduino IDE. Het uploaden naar de controller gaat op dezelfde manier als met de code uit de Bluetooth-setup.

Om de robot te laten werken, moet je de app ‘Joystick bluetooth Commander’ downloaden uit de Play Store. Schakel de stroom van de robot in en plaats hem op de grond, op de voor- of achterkant. Start de app en maak verbinding met de Bluetooth-chip. Gegevensveld 1 gaat van XXX naar GEREED zodra de robot zichzelf heeft gekalibreerd (5 seconden om hem op zijn kant te leggen, gevolgd door 10 seconden kalibratie). Je zet de robot aan door knop 1 in de app om te zetten. Plaats de robot nu verticaal op de grond en laat los zodra je voelt dat de motoren aanslaan. Dit is het moment waarop de robot zichzelf gaat balanceren.

De robot is nu klaar om te worden afgesteld, omdat de stabiliteit waarschijnlijk niet geweldig is. Je kunt proberen of het werkt zonder extra afstemming, maar je moet de robot behoorlijk identiek maken aan de onze om hem goed te laten werken. Dus in de meeste gevallen moet u de controller afstemmen om het beste met uw robot te werken. Het is vrij eenvoudig, ondanks dat het behoorlijk tijdrovend is. Hier is hoe het te doen:

De controller afstemmen

Ergens in de code vind je 4 variabelen, beginnend met een k. Dit zijn kp, kd, kc en kv. Begin door alle waarden op nul te zetten. De eerste waarde die moet worden ingesteld, is kp. De standaard kp-waarde is 0,17. Probeer het in te stellen op iets dat veel lager is, zoals 0,05. Zet de robot uit, upload de code en kijk hoe hij probeert te balanceren. Als het naar voren valt, verhoogt u de waarde. De slimste manier om dit te doen is door te interpoleren:

  1. Stel de waarde in op iets laags en probeer het uit
  2. Stel de waarde in op iets hoogs en probeer het uit
  3. Stel de waarde in op het gemiddelde van de twee en probeer het uit
  4. Probeer nu uit te vinden of het beter in evenwicht was op de lage of hoge waarde en het gemiddelde van de huidige waarde en degene waarbij het beter werkte.
  5. Ga door totdat je een goede plek vindt

De goede plek voor de kp-waarde is wanneer deze zich op de rand van onder- en overcompensatie bevindt. Dus soms zal het naar voren vallen omdat het zijn valsnelheid niet kan bijhouden, en andere keren zal het achteruit vallen omdat het in een andere richting doorschiet.

Nadat u de kp-waarde hebt ingesteld, stelt u de kd. Dit kan op dezelfde manier als bij kp. Verhoog deze waarde totdat de robot bijna in evenwicht is, zodat hij heen en weer zal zwaaien totdat hij omvalt. Zet je hem te hoog, dan kun je hem al aardig netjes in balans krijgen, maar als de balans te veel wordt verstoord, valt hij om (zoals wanneer je hem een duwtje geeft). Dus probeer de plek te vinden waar het niet helemaal in balans is, maar redelijk dichtbij.

Zoals je misschien al vermoedt, kan het afstemmen van de controller verschillende pogingen vergen, omdat het moeilijker wordt met elke nieuwe variabele die wordt geïntroduceerd. Dus als je denkt dat het niet gaat werken, begin dan opnieuw.

Nu is het tijd om de kv in te stellen. Interpoleer dit totdat je een waarde vindt waarbij de robot stopt met slingeren, in balans blijft en een lichte duw aankan. Een te hoge instelling heeft een negatief effect op de stabiliteit. Probeer met kv en kp te spelen om een punt te vinden waarop dit het meest stabiel is. Dit is de meest tijdrovende stap van de afstemming.

De laatste waarde is kc. Deze waarde zorgt ervoor dat de robot terugkeert naar zijn laatste positie na compensatie voor een duw of iets anders. U kunt hier dezelfde interpolatiemethode proberen, maar 0,0002 zou in de meeste gevallen redelijk goed moeten werken.

Dat is het! Je robot is nu klaar. Gebruik de joystick op je smartphone om de robot te besturen. Pas echter op, want als u met maximale snelheid vooruit gaat, kan de robot nog steeds omvallen. Speel wat met de controllervariabelen om dit zoveel mogelijk te compenseren. De meest logische stap zou zijn om hiervoor naar de kp-waarde te kijken, omdat dat direct compenseert voor de huidige hoek van de robot.

Belangrijke opmerking over LiPo-batterijen

Het wordt aanbevolen om regelmatig de spanning van uw LiPo-batterij te controleren. LiPo-batterijen mogen niet worden ontladen tot minder dan 3 volt per cel, waarbij 9 volt wordt gemeten op een 3S LiPo. Als de spanning onder de 3 volt per cel zakt, treedt permanent capaciteitsverlies van de batterij op. Als de spanning onder de 2,5 volt per cel zakt, gooi de batterij dan weg en koop een nieuwe. Het opladen van een LiPo-cel met minder dan 2,5 volt is gevaarlijk omdat de interne weerstand erg hoog wordt, wat resulteert in een hete batterij en mogelijk brandgevaar tijdens het opladen.

Aanbevolen: