Innholdsfortegnelse:

Lage en fjernstyrt Arduino selvbalanserende robot: B-robot EVO: 8 trinn
Lage en fjernstyrt Arduino selvbalanserende robot: B-robot EVO: 8 trinn

Video: Lage en fjernstyrt Arduino selvbalanserende robot: B-robot EVO: 8 trinn

Video: Lage en fjernstyrt Arduino selvbalanserende robot: B-robot EVO: 8 trinn
Video: Makeblock Untimate Robot Kit Part 2 : Robtic Arm Explaine, Software, Code App and Having Fun demo 2024, November
Anonim
Image
Image
Opprette en fjernstyrt Arduino selvbalanserende robot: B-robot EVO
Opprette en fjernstyrt Arduino selvbalanserende robot: B-robot EVO
Opprette en fjernstyrt Arduino selvbalanserende robot: B-robot EVO
Opprette en fjernstyrt Arduino selvbalanserende robot: B-robot EVO

Av jjrobotsjjrobotsFølg Mer av forfatteren:

Pybot: Python + 3D -trykt robotarm
Pybot: Python + 3D -trykt robotarm
Pybot: Python + 3D -trykt robotarm
Pybot: Python + 3D -trykt robotarm
Enkel motorisert roterende skjerm (Arduino -basert + kontrollert fra smarttelefonen)
Enkel motorisert roterende skjerm (Arduino -basert + kontrollert fra smarttelefonen)
Enkel motorisert roterende skjerm (Arduino -basert + kontrollert fra smarttelefonen)
Enkel motorisert roterende skjerm (Arduino -basert + kontrollert fra smarttelefonen)
Robotarm griper
Robotarm griper
Robotarm griper
Robotarm griper

Om: Vi elsker roboter, DIY og morsom vitenskap. JJROBOTS tar sikte på å bringe åpne robotprosjekter nærmere menneskene ved å tilby maskinvare, god dokumentasjon, byggeinstruksjoner+kode, "hvordan det fungerer" info … Mer om jjrobots »

------------------------------------------------

OPPDATERING: det er en ny og forbedret versjon av denne roboten her: B-roboten EVO, med nye funksjoner

------------------------------------------------

Hvordan virker det?

B-ROBOT EVO er en fjernstyrt selvbalanserende arduino-robot laget med 3D-trykte deler. Med bare to hjul er B-ROBOT i stand til å opprettholde balansen hele tiden ved å bruke sine interne sensorer og kjøre motorene. Du kan kontrollere roboten din, få ham til å bevege seg eller snurre, ved å sende kommandoer via en smarttelefon, nettbrett eller PC mens den opprettholder balansen.

Denne selvbalanserende roboten leser sine treghetssensorer (akselerometre og gyroskoper integrert på MPU6000 -brikken) 200 ganger i sekundet. Han beregner holdningen (vinkel i forhold til horisonten) og sammenligner denne vinkelen med målvinkelen (0º hvis han ønsker å opprettholde balansen uten å bevege seg, eller en positiv eller negativ vinkel hvis han vil bevege seg fremover eller bakover). Ved å bruke forskjellen mellom målvinkelen (la oss si 0º) og den faktiske vinkelen (la oss si 3º) driver han et kontrollsystem for å sende de riktige kommandoene til motorene for å opprettholde balansen. Kommandoene til motorene er akselerasjoner. For eksempel hvis roboten vippes fremover (robotvinkelen er 3º), sender han en kommando til motorene for å akselerere fremover til denne vinkelen er redusert til null for å bevare balansen.

Trinn 1: Litt mer i dybden …

Litt mer i dybden …
Litt mer i dybden …
Litt mer i dybden …
Litt mer i dybden …
Litt mer i dybden …
Litt mer i dybden …

Det fysiske problemet som B-ROBOT løser kalles Invertert pendel. Dette er den samme mekanismen du trenger for å balansere en paraply over hånden din. Svingpunktet er under massens sentrum av objektet. Mer informasjon om omvendt pendel her. Den matematiske løsningen på problemet er ikke lett, men vi trenger ikke å forstå det for å løse robotens balanseproblem. Det vi trenger å vite er hvordan vi skal gjøre for å gjenopprette robotens balanse, slik at vi kan implementere en kontrollalgoritme for å løse problemet.

Et kontrollsystem er veldig nyttig i robotikk (en industriell automatisering). I utgangspunktet er det en kode som mottar informasjon fra sensorer og målkommandoer som innganger og skaper følgelig utgangssignaler for å drive robotaktuatorene (motorene i vårt eksempel) for å regulere systemet. Vi bruker en PID -kontroller (Proportional + Derivative + Integral). Denne typen kontroll har 3 konstanter for å justere kP, kD, kI. Fra Wikipedia: "En PID -kontroller beregner en" feil "-verdi som forskjellen mellom et målt [inngang] og et ønsket settpunkt. Kontrolleren prøver å minimere feilen ved å justere [en utgang].” Så du forteller PID -en hva du skal måle (“Input”), hvor du vil at målingen skal være (“Setpoint”,) og variabelen du ønsker å justere for å få det til (“Output”.)

PID justerer deretter utgangen og prøver å gjøre inngangen lik settpunktet. Til referanse vil en vanntank vi vil fylle opp til et nivå, inngang, settpunkt og utgang være nivået i henhold til vannnivåsensoren, ønsket vannstand og vannet pumpet inn i tanken. kP er den proporsjonale delen og er hoveddelen av kontrollen, denne delen er proporsjonal med feilen. kD er den derivative delen og brukes på derivatet av feilen. Denne delen avhenger av systemets dynamikk (avhenger av roboten, vektmotorer, treghet …). Den siste, kI brukes på integralen av feilen og brukes til å redusere jevne feil, det er som en trim på den siste utgangen (tenk på trimknappene på et RC -bilratt for å få bilen til å gå helt rett, kI fjerner forskyvningen mellom målet som kreves og den faktiske verdien).

På B-ROBOT blir styringskommandoen fra brukeren lagt til motorens utgang (en motor med et positivt tegn og den andre med et negativt tegn). For eksempel hvis brukeren sender styrekommandoen 6 for å svinge til høyre (fra -10 til 10) må vi legge til 6 til venstre motorverdi og trekke 6 fra den høyre motoren. Hvis roboten ikke beveger seg fremover eller bakover, er resultatet av styrekommandoen et snurr av roboten

Trinn 2: Hva med fjernkontrollen?

"loading =" lat"

Anbefalt: