Innehållsförteckning:
Video: Skapa en fjärrstyrd Arduino självbalanseringsrobot: B-robot EVO: 8 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Av jjrobotsjjrobotsFölj mer av författaren:
Om: Vi älskar robotar, DIY och rolig vetenskap. JJROBOTS syftar till att föra öppna robotprojekt närmare människor genom att tillhandahålla hårdvara, bra dokumentation, bygginstruktioner+kod, "hur det fungerar" info … Mer om jjrobots »
-------------------------------------------------
UPPDATERING: det finns en ny och förbättrad version av denna robot här: B-roboten EVO, med nya funktioner
-------------------------------------------------
Hur fungerar det?
B-ROBOT EVO är en fjärrstyrd självbalanserande arduino-robot skapad med 3D-tryckta delar. Med bara två hjul kan B-ROBOT behålla sin balans hela tiden genom att använda sina interna sensorer och köra motorerna. Du kan styra din robot, få honom att röra sig eller snurra genom att skicka kommandon via en smartphone, surfplatta eller dator medan den håller balansen.
Denna självbalanserande robot läser sina tröghetssensorer (accelerometrar och gyroskop integrerade på MPU6000 -chipet) 200 gånger per sekund. Han beräknar sin inställning (vinkel i förhållande till horisonten) och jämför denna vinkel med målvinkeln (0º om han vill behålla balansen utan att röra sig, eller en positiv eller negativ vinkel om han vill gå framåt eller bakåt). Med skillnaden mellan målvinkeln (låt oss säga 0º) och den faktiska vinkeln (låt oss säga 3º) driver han ett styrsystem för att skicka rätt kommandon till motorerna för att behålla balansen. Kommandona till motorerna är accelerationer. Till exempel om roboten lutas framåt (robotens vinkel är 3º) skickar han ett kommando till motorerna för att accelerera framåt tills denna vinkel reduceras till noll för att bevara balansen.
Steg 1: Lite mer på djupet …
Det fysiska problemet som B-ROBOT löser kallas Inverterad pendel. Detta är samma mekanism du behöver för att balansera ett paraply ovanför din hand. Svängpunkten ligger under objektets masscentrum. Mer information om Inverterad pendel här. Den matematiska lösningen på problemet är inte lätt, men vi behöver inte förstå det för att lösa vår robots balansproblem. Vad vi behöver veta är hur vi ska göra för att återställa robotens balans så att vi kan implementera en kontrollalgoritm för att lösa problemet.
Ett styrsystem är mycket användbart inom robotik (en industriell automatisering). I grund och botten är det en kod som tar emot information från sensorer och målkommandon som ingångar och skapar följaktligen utsignaler för att driva robotaktuatorerna (motorerna i vårt exempel) för att reglera systemet. Vi använder en PID -controller (Proportional + Derivative + Integral). Denna typ av kontroll har 3 konstanter för att justera kP, kD, kI. Från Wikipedia: "En PID -kontroller beräknar ett" fel "-värde som skillnaden mellan ett uppmätt [ingång] och ett önskat börvärde. Kontrollenheten försöker minimera felet genom att justera [en utgång].” Så du berättar för PID vad du ska mäta ("Inmatningen"), där du vill att mätningen ska vara ("Börvärdet",) och variabeln du vill justera för att få det att hända ("Output".)
PID justerar sedan utgången och försöker göra ingången lika med börvärdet. Som referens, en vattentank som vi vill fylla upp till en nivå, ingång, börvärde och utmatning är nivån enligt vattennivåsensorn, önskad vattennivå och vattnet som pumpas in i tanken. kP är den proportionella delen och är huvuddelen av kontrollen, denna del är proportionell mot felet. kD är derivatdelen och tillämpas på derivatet av felet. Denna del beror på systemets dynamik (beror på roboten, viktmotorer, tröghet …). Den sista, kI tillämpas på integralen av felet och används för att minska stadiga fel, det är som en trim på den slutliga utgången (tänk på trimknapparna på en RC -bilratt för att få bilen att gå helt rak, kI tar bort förskjutningen mellan målet som krävs och det verkliga värdet).
På B-ROBOT läggs styrkommandot från användaren till motorns utgång (en motor med ett positivt tecken och den andra med ett negativt tecken). Till exempel om användaren skickar styrkommandot 6 för att svänga åt höger (från -10 till 10) måste vi lägga till 6 till vänster motorvärde och subtrahera 6 från den högra motorn. Om roboten inte rör sig framåt eller bakåt blir resultatet av styrkommandot en snurrning av roboten
Steg 2: Hur är det med fjärrkontrollen?
"laddar =" lat"
Rekommenderad:
Självbalanseringsrobot med två hjul: 7 steg
Tvåhjuls självbalanseringsrobot: Denna instruerbara går igenom design- och byggprocessen för en självbalanserande robot. Som en anteckning vill jag bara säga att självbalanserande robotar inte är ett nytt koncept och att de har byggts och dokumenterats av andra. Jag vill använda denna möjlighet
Fjärrstyrd Bluetooth -bil med Arduino UNO: 4 steg
Fjärrstyrd Bluetooth -bil med Arduino UNO: Det kommer alltid att vara fascinerande att börja implementera det vi har studerat hittills i Arduino. I grund och botten skulle de flesta av alla gå med grunderna. Så här ska jag helt enkelt förklara denna Arduino -baserade fjärrstyrda bil.Krav: 1.Arduino UNO
2 -hjulig självbalanseringsrobot: 4 steg
Självbalanseringsrobot med två hjul: Enligt min ödmjuka uppfattning är du inte en riktig skapare, såvida du inte bygger din egen tvåhjuliga självbalanserande robot.:-) Så här är det … och, viktigast av allt, det fungerar !!! Det här projektet ser väldigt enkelt ut. Istället kräver det en god kunskapsnivå
Fjärrstyrd Arduino Tank: 9 steg
Fjärrstyrd Arduino -tank: Hej, jag ville bygga en fin tank som styrs från en klassisk RC -radio som går genom en arduino. Det är faktiskt ganska enkelt dessa dagar med all tillgänglig elektronik runt omkring. Du måste skaffa några element för att bygga det odjuret
Självbalanseringsrobot med PID -algoritm (STM MC): 9 steg
Självbalanseringsrobot med hjälp av PID -algoritm (STM MC): Nyligen har mycket arbete gjorts i självbalansering av objekt. Begreppet självbalansering började med balansering av inverterad pendel. Detta koncept utvidgades även till design av flygplan. I detta projekt har vi designat en liten mod