Indholdsfortegnelse:

Oprettelse af en fjernstyret Arduino selvbalancerende robot: B-robot EVO: 8 trin
Oprettelse af en fjernstyret Arduino selvbalancerende robot: B-robot EVO: 8 trin

Video: Oprettelse af en fjernstyret Arduino selvbalancerende robot: B-robot EVO: 8 trin

Video: Oprettelse af en fjernstyret Arduino selvbalancerende robot: B-robot EVO: 8 trin
Video: Makeblock Untimate Robot Kit Part 1 : Step by Step Assembly Robot of Aram Tank 2024, Juli
Anonim
Image
Image
Oprettelse af en fjernstyret Arduino selvbalancerende robot: B-robot EVO
Oprettelse af en fjernstyret Arduino selvbalancerende robot: B-robot EVO
Oprettelse af en fjernstyret Arduino selvbalancerende robot: B-robot EVO
Oprettelse af en fjernstyret Arduino selvbalancerende robot: B-robot EVO

Af jjrobotsjjrobotsFølg mere af forfatteren:

Pybot: Python + 3D -trykt robotarm
Pybot: Python + 3D -trykt robotarm
Pybot: Python + 3D -trykt robotarm
Pybot: Python + 3D -trykt robotarm
Enkel motoriseret roterende skærm (Arduino baseret + styret fra din smartphone)
Enkel motoriseret roterende skærm (Arduino baseret + styret fra din smartphone)
Enkel motoriseret roterende skærm (Arduino baseret + styret fra din smartphone)
Enkel motoriseret roterende skærm (Arduino baseret + styret fra din smartphone)
Robotarmgreb
Robotarmgreb
Robotarmgreb
Robotarmgreb

Om: Vi elsker robotter, DIY og sjov videnskab. JJROBOTS sigter mod at bringe åbne robotprojekter tættere på folket ved at levere hardware, god dokumentation, byggeinstruktioner+kode, "hvordan det fungerer" info … Mere om jjrobots »

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

OPDATERING: der er en ny og forbedret version af denne robot her: B-robotten EVO, med nye funktioner

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

Hvordan virker det?

B-ROBOT EVO er en fjernstyret selvbalancerende arduino-robot skabt med 3D-printede dele. Med kun to hjul er B-ROBOT i stand til at bevare balancen hele tiden ved at bruge sine interne sensorer og køre motorerne. Du kan styre din robot, få ham til at bevæge sig eller dreje, ved at sende kommandoer via en smartphone, tablet eller pc, mens den bevarer sin balance.

Denne selvbalancerende robot læser sine inertialsensorer (accelerometre og gyroskoper integreret på MPU6000 -chippen) 200 gange i sekundet. Han beregner sin holdning (vinkel i forhold til horisonten) og sammenligner denne vinkel med målvinklen (0º, hvis han vil bevare balancen uden at bevæge sig, eller en positiv eller negativ vinkel, hvis han vil bevæge sig fremad eller bagud). Ved hjælp af forskellen mellem målvinklen (lad os sige 0º) og den faktiske vinkel (lad os sige 3º) driver han et kontrolsystem til at sende de rigtige kommandoer til motorerne for at opretholde sin balance. Kommandoerne til motorerne er accelerationer. For eksempel hvis robotten vippes fremad (robotvinkel er 3º), sender han en kommando til motorerne for at accelerere fremad, indtil denne vinkel er reduceret til nul for at bevare balancen.

Trin 1: Lidt mere i dybden …

Lidt mere i dybden …
Lidt mere i dybden …
Lidt mere i dybden …
Lidt mere i dybden …
Lidt mere i dybden …
Lidt mere i dybden …

Det fysiske problem, som B-ROBOT løser, kaldes det omvendte pendul. Dette er den samme mekanisme, du har brug for for at balancere en paraply over din hånd. Drejepunktet er under objektets massemidtpunkt. Flere oplysninger om omvendt pendul her. Den matematiske løsning på problemet er ikke let, men vi behøver ikke at forstå det for at løse vores robots balance problem. Det, vi har brug for at vide, er, hvordan vi skal gøre for at genoprette robotens balance, så vi kan implementere en kontrolalgoritme for at løse problemet.

Et kontrolsystem er meget nyttigt inden for robotik (en industriel automatisering). Grundlæggende er det en kode, der modtager information fra sensorer og målkommandoer som input og som følge heraf skaber udgangssignaler til at drive robotaktuatorerne (motorerne i vores eksempel) for at regulere systemet. Vi bruger en PID -controller (Proportional + Derivative + Integral). Denne type kontrol har 3 konstanter til at justere kP, kD, kI. Fra Wikipedia: "En PID -controller beregner en 'fejl' -værdi som forskellen mellem et målt [input] og et ønsket setpunkt. Controlleren forsøger at minimere fejlen ved at justere [en Output].” Så du fortæller PID'en, hvad der skal måles ("Input"), hvor du vil have målingen ("Setpoint") og den variabel, du ønsker at justere for at få det til at ske ("Output".)

PID'en justerer derefter output for at gøre indgangen lig med setpunktet. Til reference vil en vandtank, vi ønsker at fylde op til et niveau, input, setpunkt og output være niveauet i henhold til vandstandssensoren, det ønskede vandniveau og det vand, der pumpes ind i tanken. kP er den proportionelle del og er hoveddelen af kontrollen, denne del er proportional med fejlen. kD er den afledte del og anvendes på derivatet af fejlen. Denne del afhænger af systemets dynamik (afhænger af robotten, vægtmotorer, inertier …). Den sidste, kI anvendes på integralen af fejlen og bruges til at reducere faste fejl, det er som en trim på det endelige output (tænk i trimknapperne på et RC -bilrat for at få bilen til at gå helt lige, kI fjerner forskydningen mellem det påkrævede mål og den faktiske værdi).

På B-ROBOT føjes styrekommandoen fra brugeren til motorens output (den ene motor med et positivt tegn og den anden med et negativt tegn). For eksempel hvis brugeren sender styrekommandoen 6 for at dreje til højre (fra -10 til 10) skal vi tilføje 6 til den venstre motorværdi og trække 6 fra den højre motor. Hvis robotten ikke bevæger sig frem eller tilbage, er resultatet af styrekommandoen et spin af robotten

Trin 2: Hvad med fjernbetjeningen?

"loading =" doven"

Anbefalede: