Anda di halaman 1dari 26

14/7/2015

TutorialdeArduinoyMPU6050robologs

robologs
Tutoriales,dronesyhumorciberntico

TutorialdeArduinoyMPU6050
15octubre,20147junio,2015

Tr4nsduc7or

(https://robologs.files.wordpress.com/2014/10/rect3123.png)
[Iniciandomdulosdeinteraccinsocial]
Saludos,humano.AlhablaTransductor.AlgunavezhasintentadoconfigurarunaIMUcon
Arduinoyobtenerlecturas?Siturespuestaesafirmativa,habrsnotadoquenoesnadafcil.
MuchasIMUsutilizanprotocoloscomoI2CoSPI,danvaloresextraos,requieren
trigonometraoh,hemencionadoyaquelasIMUsdansiemprelecturaserrneas?

Sihasacabadoenestapginaesquenecesitasunempujn.SabesqueunaIMUesun

http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

1/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Sihasacabadoenestapginaesquenecesitasunempujn.SabesqueunaIMUesun
dispositivoelectrnico.Yquenosecome.Peroahseacab.Probablementenotienesniidea
decmoconectarlaaArduinoyyanodigamosobtenerunalecturadecente.
Aspues,hasvenidoallugarindicado.Transductorvaaexplicartecmoconseguirunas
lecturasprecisasconunaIMUMPU6050yArduino.Depuraremoslosvalores,calcularemosel
ngulodeinclinacinyfiltraremoselruidoconunFiltroComplementario(Complementary
Filter).
Perohayqueempezarporelprincipio.Yelprincipioes

DaTheory
Antesdeempezar,quesunaIMU?Setratadeundispositivocapazdemesurarlafuerza
(acceleracin)ylavelocidad.GenricamenteconstadeunAcelermetroyunGiroscopio.Por
lotanto:unaIMUnomesurangulos.Porlomenosnodirectamente,requierealgunosclculos.
ElMPU6050esunaIMUde6DOF(selee6DegreesOfFreedom).Estosignificaquelleva
unacelermetroyungiroscopio,ambosde3ejes(3+3=6DOF).HayIMUsde9DOF,eneste
casotambinllevanunmagnetmetro.Otraspuedentener5DOF,encuyocasoelgiroscopio
slomidedosejes,etc.

(https://robologs.files.wordpress.com/2014/10/mpu
6050.jpg)
MPU6050
ElMPU6050operacon3.3voltios,aunquealgunasversiones(comolama)llevanun
reguladorquepermiteconectarlaa5V.
ElMPU6050utilizaelprotocolodecomunicacinI2C.Enestetutorialnovoyaentraren
detallesdecmofuncionaesteprotocolo,peropuedesencontrarmsinformacinaqu
(http://playground.arduino.cc/Learning/I2C).
YatienesclaroloqueesunaIMU.Veamoscadaunadesuspartes.

http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

2/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Elacelermetro
Elacelermetromidelaaceleracin.Quinibaadecirlo.Laaceleracinpuedeexpresarseen3
ejes:X,YyZ,lastresdimensionesdelespacio.Porejemplo,simueveslaIMUhaciaarriba,el
ejeZmarcarunciertovalor.Sieshaciadelante,marcarelejeX,etc.
SihacesmemoriadetusclasesdelaESO(oequivalentes),recordarsquelagravedaddela
Tierratieneunaaceleracindeaprox.9.8m/s,perpendicularalsuelocomoeslgico.As
pues,laIMUtambindetectalaaceleracindelagravedadterrestre.
Estoesunproblema?Alcontrario,lector!Graciasalagravedadterrestrepuedesusarlas
lecturasdelacelermetroparasaberculeselngulodeinclinacinrespectoalejeXoejeY.
SupongamosquelaIMUestperfectamentealineadaconelsuelo.Entonces,comopuedesver
enlaimagen,elejeZmarcar9.8,ylosotrosdosejesmarcarn0.Ahorasupongamosque
giramoslaIMU90grados.AhoraeselejeXelqueestperpendicularalsuelo,porlotanto
marcarlaaceleracindelagravedad.

(https://robologs.files.wordpress.com/2014/10/imu_ac_ejemplos.png)
Sisabemosquelagravedades9.8m/s,ysabemosquemesuradanlostresejesdel
acelerometro,portrigonometraesposiblecalcularelngulodeinclinacindelaIMU.Una
buenafrmulaparacalcularelnguloes:

(https://robologs.files.wordpress.com/2014/10/codecogseqn3.gif)

(https://robologs.files.wordpress.com/2014/10/codecogseqn2.gif)
ElejeZsesueleignorar.
Hayotrasfrmulasequivalentes,peroyoprefierolatangente.

ElGiroscopio
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

3/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Enunprincipio,losgiroscopioselctricoseranunosvoluminososartefactosquevalanla
mayorpartedelpresupuestomilitardeunestado.Mstarde,durantelasegundaguerra
mundialseemplearonparadirigircohetesytorpedos.Porsuerte,graciaslarevolucindigital
ylaminiaturizacindecircuitos,hoyendacualquieraficionadoalaelectrnicapuede
permitirseuno.Aunquenoparaconstruirmisiles.

(https://robologs.files.wordpress.com/2014/10/v2b.jpg)
Losgiroscopioselctricosseutilizaronen
loscohetesV2
Elgiroscopiomidelavelocidadangular.Sinotienesmuyfrescastusleccionesdefsicadel
institutovoyarecordartequelavelocidadangulareselnmerodegradosquesegiraenun
segundo.
Sloqueenvezdemesurarseengradosporsegundo,suelemesurarseenotraunidadqueson
radianesporsegundo(1rad/s=180/PIgrados/s)
SisabemoselnguloinicialdelaIMU,podemossumarleelvalorquemarcaelgiroscopiopara
saberelnuevonguloacadamomento.SupongamosqueiniciamoslaIMUa0.Siel
giroscopiorealizaunamedidacadasegundo,ymarca3enelejeX,tendremoselngulocon
estasencillafrmula:

(https://robologs.files.wordpress.com/2014/10/codecogseqn11.gif)
Dndeteseltiempoquetranscurrecadavezquesecalculaestafrmula.
YlomismopasaconlosejesX,Z.Sloquealigualqueconelacelermetrosesueleignorarel
ejeZ.
Yatenemoslaslecturas.Simple,verdad?Puesenrealidadnotanto.

Errorenlasmedidas

Enunmundoidealdondehadasyelfoscantanalegresydulcescancionesalrededorde

http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

4/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Enunmundoidealdondehadasyelfoscantanalegresydulcescancionesalrededorde
hogueras,dondelosdragonessurcanloscielos,losrboleshablanconlassetasyC++no
provocaerroresentiempodeejecucin,lasIMUssonunosartefactosmgicosqueconunpoco
detrigonometrapudendarunngulocontotalexactitud.
Peroestsenelmundoreal,hijo.Yhaydosproblemasmuyimportantes:elruidoyloserrores.
Elruidosontodasaquellasinterferenciasqueafectanalosdispositivoselectrnicos.El
acelermetroescapazdemedircualquierngulo,sinembargosuslecturassonruidosasy
tienenunciertomargendeerror.
Sialgunavezquieresdibujarungrficodelasmedidasdeunacelermetroenfuncindel
tiempo,versalgodeesteestilo:

(https://robologs.files.wordpress.com/2014/10/ruido_imu.png)Elnguloreal(ideal)est
marcadoenazul,ylasmedidasrealesestnenrojo.Puedoafirmarquenocumplearajatabla
ladefinicindepreciso.
Porsiestofuerapoco,elacelermetrotambindetectacualquieraceleracinquenosealade
lagravedad.Portanto,simueveslaIMUsingirarla,alaplicarunaaceleracinenotroeje,la
IMUlodetectarcomouncambioderotacin.
Porotrapartetenemoselgiroscopio.Adiferenciadelacelermetro,dalasmedidasconmucha
precisin.Peroalrealizarlosclculosdelnguloesinevitablequeseproduzcaunpequeo
error,queconeltiempovaacomulndosehastaquecualquiersimilitudconlarealidadespura
coincidencia.Estoeninglssellamadrift.
Significaestoquedebesdarteporvencido?Paranada.Hayuna(varias)forma(s)decombinar
losdatosdelacelermetroyelgiroscopioparaasobtenermedidasacuradas.Yaquesdnde
entraenjuego:
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

5/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Tuamigoelfiltro
Laideaesmuysimple:hayqueconseguireliminarelruido,eldriftyconseguirqueel
acelermetronocambiedenguloaldetectarotrafuerzaquenosealagravedad.
Haydistintosalgoritmos,llamadosfiltros,quehacenestatarea.Unodelosmejoresesel
famosoFiltrodeKlman,delquepuedequehayasodoahablar.Seutilizaenlosaviones,
cohetesysatlitesgeoestacionarios.
ElfiltrodeKlmanessorprendente.Esconsideradounodelosmayoreshallazgosdelsiglo
pasado,yconrazn.Capazdecalcularelerrordecadamedidaapartirdelasmedidas
anteriores,eliminarloydarelvalorrealdelngulo.Enciertomodoesunalgoritmoque
aprendeencadaiteracin.Nosuenanadamal,verdad?
Sinembargotienedosproblemas:
1. Tieneuncostedeprocesamientoalgoelevado
2. Esmuycomplicadodeentender.Ypongonfasisenelmuy.chaleunvistazo
(http://es.wikipedia.org/wiki/Filtro_de_Kalman).
Aspues,tenemosotrosfiltrosanuestradisposicin.Elquevamosautilizaresconocidocomo
FiltroComplementariooComplementaryFiltereningls.Esidealparaimplementarcon
Arduino:fcildeutilizar,bajocostedeprocesamientoyconunaprecisinmuybuena.
Enquconsisteexactamente?ElFiltroComplementarioesenrealidadunaunindedos
filtrosdiferentes:unHighpassFilterparaelgiroscopioyunLowpassFilterparaal
acelermetro.Elprimerodejapasarnicamentelosvaloresporencimadeunciertolmite,al
contrarioqueelLowpassfilter,queslopermitealosqueestnpordebajo.
Lafrmularesultantedecombinar(complementar,deaquelnombre)losdosfiltroses:

(https://robologs.files.wordpress.com/2014/10/codecogseqn5.gif)
DndeAnguloGyroeselngulodelGiroscopioquehemoscalculadopreviamente,y
AnguloAccelconelAcelermetro.EstafrmulaeslamismaparaelejeX,Y.
NOTA:Silodeseas,puedesprobardecambiarelvalorde0.98y0.02porunvalor
personalizado.Esos,ambostienenquesumar1.
YasseterminaDaTheory.AhorahayqueutilizarlasfrmulasenuncdigoparaArduino.

InPraxis
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

6/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Lasfrmulasylosnmerosviventranquilasenelabstractomundodelasmatemticas.A
pesardequeestelugarestcustodiadoporunosseresdivinosllamadosmatemticos,cuya
funcinesasegurarsedequesloloslicenciadospuedanutilizarlasfrmulasenelmundo
real,vamosaimplementarestosalgoritmosenunaplacaArduino.
Lasconexionessonmuysimples.Conlos5VdelUSBtendrsenergadesobra.
MPUVcc>Arduino3.3v(o3v3enalgunosmodelos)
MPUGnd>ArduinoGnd
MPUSCL>ArduinoA5
MPUSDA>ArduinoA4
IMPORTANTE!EstasconexionesestnprobadasenunaArduinoUNOyArduinoNano,
cuyospinesSDAySCLsonA4yA5respectivamente.Siutilizasotraplacapuedequelospines
seanotros.Enesteenlace(http://arduino.cc/en/reference/wire)apareceunalistaconlospines
SDAySCLdeotrasversionesdeArduino(Due,Leonardo)
Aspues,tieneslasfrmulas.TieneslaIMU.TienesunaplacaArduino.Tieneselcircuito.Qu
falta?SabercmointeraccionarconlaIMUparaobtenerlecturas.ElMPU6050darunosraw
values(valoresenbruto)quedespushabrquerefinar(dividirporunaconstante)afinde
conseguirvaloresutilizables.
LaweboficialdeArduinodisponedeunejemploparaleerdatosdelaMPU6050.Partirde
ella,aunquehabrquemodificarlaconsiderablementeyaqueslodalosvaloressinrefinardel
GiroscopioyelAcelermetro.
Empezamosporlasdeclaraciones.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

#include<Wire.h>

//DireccionI2CdelaIMU
#defineMPU0x68

//Ratiosdeconversion
#defineA_R16384.0
#defineG_R131.0

//Conversionderadianesagrados180/PI
#defineRAD_A_DEG=57.295779

//MPU6050dalosvaloresenenterosde16bits
//Valoressinrefinar
int16_tAcX,AcY,AcZ,GyX,GyY,GyZ;

//Angulos
floatAcc[2];
floatGy[2];
floatAngle[2];

Voyacomentarlo.LaprimeralneaincluyelalibreraWire.h,necesariaparalainteraccinva
protocoloI2C.
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

7/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

#defineMPU0x68esladireccinI2CdelaIMUqueseespecificaenladocumentacinoficial.
Losratiosdeconversinsonlosespecificadosenladocumentacin.Deberemosdividirlos
valoresquenosdelGiroscopioyelAcelermetroentreestasconstantesparaobtenerunvalor
coherente.RAD_A_DEGeslaconversinderadianesagrados.
LaIMUdalosvaloresenenterosde16bits.ComoArduinolosguardaenmenosbits,hayque
declararlasvariablesquealmacenarnlosenterosprovinientesdelaIMUcomountipode
enterosespeciales.int16_tAcX,AcY,AcZ,GyX,GyYson,pues,losraw_valuesdelaIMU.
Finalmentetenemostresarrays(Acc[],Gy[],Angle[])queguardanelnguloX,Ydel
Acelermetro,elGiroscopioyelresultadodelFiltrorespectivamente.[0]secorrespondeaX.
[1]aY.
Lafuncinsetupeslasiguiente:
1
2
3
4
5
6
7
8
9

voidsetup()
{
Wire.begin();
Wire.beginTransmission(MPU);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);
Serial.begin(9600);
}

SeinicialacomunicacinporI2CconeldispositivoMPU,yseactivaenviandoelcomando0.
Tambinseiniciaelpuertodesrieparaverlosresultados.
Elvoidloopesunpocomscomplejo.SeleenyguardanlosdatosdelaIMU,secalculael
nguloyseaplicaelfiltrocomplementario.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

voidloop()
{
//LeerlosvaloresdelAcelerometrodelaIMU
Wire.beginTransmission(MPU);
Wire.write(0x3B);//Pedirelregistro0x3BcorrespondealAcX
Wire.endTransmission(false);
Wire.requestFrom(MPU,6,true);//Apartirdel0x3B,sepiden6registros
AcX=Wire.read()<<8|Wire.read();//Cadavalorocupa2registros
AcY=Wire.read()<<8|Wire.read();
AcZ=Wire.read()<<8|Wire.read();

//SecalculanlosangulosY,Xrespectivamente.
Acc[1]=atan(1*(AcX/A_R)/sqrt(pow((AcY/A_R),2)+pow((AcZ/A_R),2)))*R
Acc[0]=atan((AcY/A_R)/sqrt(pow((AcX/A_R),2)+pow((AcZ/A_R),2)))*RAD_

//LeerlosvaloresdelGiroscopio
Wire.beginTransmission(MPU);
Wire.write(0x43);
Wire.endTransmission(false);
Wire.requestFrom(MPU,4,true);//AdiferenciadelAcelerometro,solose
GyX=Wire.read()<<8|Wire.read();
GyY=Wire.read()<<8|Wire.read();

http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

8/26

14/7/2015

24
25
26
27
28
29
30
31
32
33
34
35
36
37

TutorialdeArduinoyMPU6050robologs

//CalculodelangulodelGiroscopio
Gy[0]=GyX/G_R;
Gy[1]=GyY/G_R;

//AplicarelFiltroComplementario
Angle[0]=0.98*(Angle[0]+Gy[0]*0.010)+0.02*Acc[0];
Angle[1]=0.98*(Angle[1]+Gy[1]*0.010)+0.02*Acc[1];

//Mostrarlosvaloresporconsola
Serial.print("AngleX:");Serial.print(Angle[0]);Serial.print("\n"
Serial.print("AngleY:");Serial.print(Angle[1]);Serial.print("\n

delay(10);//Nuestradtsera,pues,0.010,queeselintervalodetiemp
}

Escribeestastresfuncionesenunslocdigo,compila,carga.SiahoraabreselMonitorde
Srie,deberasvercomovanoscilandolosnmerosmuyrpidamente.Puedesprobaragirarla
IMUydetenerelDesplazamientoAutomticoparavercomocambianlosngulos.
Elfiltrotardauntiempoaadaptarsealoscambios,loculesnormalalfiltrarlasfrecuencias.
Yestoestodo.Esperoqueestaguatesirvadereferenciaparafuturosproyectos.Losfiltrosde
estetiposuelenutilizarseconjuntamenteconunControladorPID
(http://en.wikipedia.org/wiki/PID_controller)(PIDcontroller)paracontrolarycorregirel
movimientodemotoresenfuncindelaslecturasdelaIMU.Siestsinteresadoenrealizarun
proyectocomoundroneounrobotbalanceador,puedeserdeutilidadcomprendercmo
funciona.
FinalmentedebodecirqueexistenlibrerasparaArduinoqueincluyenFiltrosdeKlmany
FiltrosComplementarios.Porqunolashemencionado?Miconsejocundoconstruyastu
proyectoesque,sipuedes,eviteslaslibrerasdeterceros.Aprenderaimplementarestetipode
algoritmosportucuentamejorartusconocimientosyposibilidadesmuchomsquesite
limitasalasfuncionesprefabricadas.
Yalfinyalcabo,queslarobticasinpelearseconlasfrmulas,problemasycdigo?
Finaldelnea.
Arduino,Tutoriales
acelerometro,angulo,arduino,filtrocomplementario,filtrode
kalman,giroscopio,mpu6050,transductor

206thoughtsonTutorialdeArduinoyMPU6050
1. DANGONZALEZ
14mayo,2015/4:36am
AngleX:nan
AngleY:nan

AngleX:nan
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

9/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

AngleY:nan

AngleX:nan
AngleY:nan

AngleX:nanENTREENPNICO,QUESIGNIFICAESTO
Responder
TR4NSDUC7OR
14mayo,2015/9:00am
EseerroresqueArduinonorecibeningnvalordelaIMU.Esunproblemade
conexiones,revsalas.
Finaldelnea.
Responder
DARIO
24mayo,2015/8:54am
meocurrilomismoenunprincipio.Creo(CREO)quesedebeaqueelMPU6050no
estabaconectado,tengolacostumbrededesconectarlosperifricosalcargarel
programa.AldejartodoconectadoyresetearelArduinocomenzarecibirbienlos
datos.
Laverdadnossisedeberaesoono,peronopierdonadaalcomentarmicaso.
Muybuentutorialporcierto.
Responder
2. MARCONI666
14mayo,2015/6:35pm
Muchasgracias,voyhaintentarloquemedices.Temantendrinformado.
Responder
3. DIEGO
15mayo,2015/3:13am
AngleX:Cadavezsehacemsnegativo
AngleY:Cadavezsehacemspositivo
slosube,subeysubeelvalor.hayalgomal?
Responder
DIEGO
15mayo,2015/3:15am
Ahorasehadetenidoen
AngleX:35.95
AngleY:37.94
Estcorrecto?
Responder
TR4NSDUC7OR
15mayo,2015/10:06am
QuversiondeArduinotienes?
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

10/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

TR4NSDUC7OR
16mayo,2015/2:21pm
Diego:necesitoquemedigastuversindeArduinosiquieresqueteayude.
Finaldelnea
EDGAR
26junio,2015/11:58pm
Yotambientengoeseproblema,conectoelmpualarduinocomoloindicaeltutorial!
arduino1.6.6
TR4NSDUC7OR
27junio,2015/12:15am
Merefieroalaversindelaplaca.ArduinoUNO,Nano,Micro,DUE?
EDGAR
27junio,2015/9:23pm
arduinouno
4. MONSE
18mayo,2015/3:49am
Hola,mepreguntabasisoloquierofiltrarlosdatosdelgiroscopio(yaquenorequieroel
acelerometro)enelfiltrocomplementarioquesucedeconel.98y.2?
Responder
TR4NSDUC7OR
19mayo,2015/10:17am
Hola,Monse.Laideadelfiltrocomplementarioescombinarlaslecturasdel
AcelermetroyelGiroscopio.Sisloquiereslaslecturasdelsegundo,entoncesnohay
necesidaddeaplicarningnfiltro.Esdecir,tienesquecogerlosvaloresGy[0]yGy[1]
delcdigodeltutorial,elrestonoteinteresa.
Finaldelnea.
Responder
5. CESAR
18mayo,2015/8:56pm
buendamepareceexcelentetututorial,unpreguntapuedoadaptarestoopuedoleeresto
enmatlab,necesitomedirlainclinacindeunpndulosupongoquepuedomedirlocon
estaestrategiaverdad?saludosygracias
Responder
TR4NSDUC7OR
19mayo,2015/10:19am
S,precisamenteescribuntutorialsobrecmoleerestaIMUenMatlab.
http://robologs.net/2014/11/04/arduinoymatlabvleerunaimuporserial/
Finaldelnea.
Responder
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

11/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

6. GUILLERMOFLORES
22mayo,2015/1:19am
Megustomuchotututorial.Unaduda,quieroutilizarelmismoIMUparacontrolar4
motoresdeundronyestabilizarlo.
Oresquefuncionariautilizarlasvariacionesdelosvaloresfinalesdelosangulosxyy(con
filtro)comocondicionesparaaumentarodisminuirlasrevolucionesdedeterminados
motoresparalograrlaestabilizacin?Nosesimediaentender.Saludosygraciasporel
tutorial!
Responder
TR4NSDUC7OR
22mayo,2015/1:31pm
Saludos,Guillermo.S,enprincipiofuncionaria(siempreycuandomultiplicasesla
variacinporunaconstanteapropiada),peroterecomiendoaplicaruncontroladorPID
paratenerunamejorestabilizacin:
http://en.wikipedia.org/wiki/PID_controller
Finaldelnea.
Responder
7. DANGONZALEZ
22mayo,2015/10:11pm
Otraduda,quevaloresdeberandarmelosejes,puesparax[50,50]y[60,60]
Responder
TR4NSDUC7OR
23mayo,2015/1:17am
Noacabodeentendertupregunta.Elvalordelosejesdependerdelnguloconque
tengaslaIMU.Ququieresdecirque<>?Sonlosvaloresmximosparacadaeje?
Necesitoqueseasunpocomsclaro.
Finaldelnea.
Responder
DANGONZALEZ
23mayo,2015/8:12am
Verasencontrotroprogramaeninternetquealprobarlosimemidede0a180
cuandogirolaIMU,peroconelprogramaqueustedhaescritonosebienque
valoresdeberadedarpuesmedaesosvaloresraroscuandolagirode50a50para
unejeyde60a60paraotro,http://lukagabric.com/arduinompu6050/,esteesellink
dedondesaqueelprograma,peromegustarapoderhacerfuncionarsuprograma
masomenosigualquemedede0a180paracadaeje,siesoquedaahorasolome
faltalapartedeintentarconectardosMPU6050
TR4NSDUC7OR
23mayo,2015/11:34am

12/26
Hola,Dan.Elscriptquehehechomidengulosde90a90grados(tericamente,ala

http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

14/7/2015

TutorialdeArduinoyMPU6050robologs

Hola,Dan.Elscriptquehehechomidengulosde90a90grados(tericamente,ala
prcticanuncaacabadellegaraestevalor).Siquieresadaptarestevalorde0a180,
puedesusarlafuncinmap()dearduino.Porejemplo,paraelejeX:
Acc[0]=map(Acc[0],90,90,0,180);
EncuntoaconectardosIMUs:elMPUtieneunpinllamadoAD0.Siestepinesta
HIGHcambiarladireccindelaIMUde0x68a0x69.
Entonces,puedesconectarelpinAD0deunadelasdosIMUsa3.3v,yenelcdigo
leertambinladireccin0x69.
Esperoquetesirva.
Finaldelnea.
8. SERGIOBRYANRENDONAGUILAR
22mayo,2015/10:49pm
buendatengounapreguntaencuantoacomosedebeconectarlaimupodriaspasarun
esquemadefavorparapodermirarloconatencin,quieroimplementarestaimuenel
dearrollodeundronyelcodigoquepublicasteesdemuchaayudamegustariasaberla
conceciondelaimudeantemanomuchasgracias
Responder
TR4NSDUC7OR
23mayo,2015/1:13am
Hola,Sergio.LalistaconlasconexionesestnenelapartadoInPraxisdeestetutorial:
MPUVcc>Arduino3.3v(o3v3enalgunosmodelos)
MPUGnd>ArduinoGnd
MPUSCL>ArduinoA5
MPUSDA>ArduinoA4
Finaldelnea.
Responder
9. EDGARRAMIREZ
23mayo,2015/6:58pm
Quetalamigo,antesquenadamuybienexplicadoybuentutorialquehashecho,sin
embargotengoelmismoproblemaqueelprimeroquetecomenttupost:
AngleX:nan
AngleY:nan

AngleX:nan
AngleY:nan

AngleX:nan
AngleY:nan

http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

13/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

AngleX:nan
AngleY:nan

Estoymanejandounarduinodueyyaverifiquemisconexionesynoencuentroelerror,lo
quetengoconectadoesVCC,GND,SCLdelIMUalSCL1delarduinoylomismoenelcaso
deSDAlotengoconectadoalpinSDA1delarduinoyaqueahinohaypullups,sin
embargohizelapruebaenconectarloalospuertos20y21ylalecturaenelmonitorserial
sealterademasiado,porloquecreoqueestacorrectoquelohayaconectadoahi,enelcaso
delpinINTdelIMUlotengodesconectadoyenelcasodelADOleienotrotutorialque
segunladireccion0x68debeiratierra,dandomeelmismoresultadoenelmonitorserialy
yaprobtambiendesconectandoloymesiguesaliendolomismoAngleX:nan.
Nosesitengaqueverconalgunalibreriaquenoestmanejadoelarduinodue.Esperome
puedasayudar.
Responder
TR4NSDUC7OR
23mayo,2015/7:29pm
Saludos,Edgar.QulecturastedacundoloconectaslaIMUaD20yD21?Sigue
dndotenanotesalealgnvalorextrao?
Finaldelnea.
Responder
10. EDGARRAMIREZ
23mayo,2015/7:41pm
asies,mesiguedandolasmismaslecturasperoenunavelocidadmasrapida
Responder
TR4NSDUC7OR
25mayo,2015/10:38pm
Hola,Edgar.Perdonaquenotecontestaseayer.
Problemadecdigonopuedeser:elqueestenestetutorialloherevisadomuchas
veces,yfuncionaconArduinoNano,UNO,DuemilanoveyLeonardo.Tampocodebera
serproblemadelibreras:lanicaqueseutilizaesWire.h,quefuncionaparatodaslas
placas.
Sinoesproblemadeconexionesymedicesqueesttodobien,nosaqupuede
deberse.LoquessesquearduinoDUEfuncionacon3.3v.ElMPU6050debera
funcionarbiencon3.3vperoparadescartarproblemasintentautilizarunLogic
Converterparapasardelos3.3vdeArduinoa5VparaelMPU6050.
Finaldelnea.
Responder
11. DARIO
24mayo,2015/10:43am
consulta,siquierotambinelanguloenzcualeslaformulaenelacelerometro?

http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

14/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

consulta,siquierotambinelanguloenzcualeslaformulaenelacelerometro?
lavariableyaestacreadaAcZyGyZ,yenlaslecturasdelgiroscopiosupongoquedebo
pedirtambin6registros
peronologrodarconlaformulaparacalcularelnguloenlapartedelacelerometro.
otracosa,squeelmpu6050telargatambinlatemperaturacmolapidoy/orecibopara
mostrarla?
yaarribadijequeesmuybuentutorial,enotroslugaressoloencontrabaunaguaparausar
laslibreras.
Responder
TR4NSDUC7OR
25mayo,2015/10:45pm
Hola,Dario.
NoesposiblecalcularlarotacinenelejeZconestasfrmulas,niconunaIMUde
6DOF.Paraellonecesitasunmagnetmetro(brjula),ounaIMUde9DOF.
Parasaberlatemperatura,necesitasleerelregistro0x41:
1
2
3
4
5

Wire.beginTransmission(MPU);
Wire.write(0x41);
Wire.endTransmission(false);
Wire.requestFrom(MPU,2,true);
Temperatura=Wire.read()<<8|Wire.read();

Finaldelnea.
Responder
12. ELIANA
24mayo,2015/7:38pm
Excelentetutorialmilgracias
Responder
TR4NSDUC7OR
25mayo,2015/10:45pm
Denada,humano.
Finaldelnea.
Responder
13. KIRIEELEISSON
25mayo,2015/11:18pm
AlcargarelprogramafuncionaperfectamenteeldispositivoMPUperoalmomentode
apagarlo,esperar3segundosyencenderloyanooperaadecuadamente.
Responder
TR4NSDUC7OR
25mayo,2015/11:20pm
Nooperaadecuadamenteenqusentido?Necesitosaberqulecturasaparecenen
pantalla,siesqueaparecealguna.
Finaldelnea.
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

15/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Responder
14. MARCONI666
26mayo,2015/12:31am
Hola
Enrelacinconlaspreguntasquerealic,paraelexperimentosobreelsueodelos
delfines,osdejounaentradadelblogqueexplicaconmayordetallelanecesidaddel
experimento:
https://unpulpoenungaraje.wordpress.com/2015/05/25/elsuenoperdidodeldelfin/
Responder
15. LUISYUSTE
26mayo,2015/9:42pm
alguienpuedeayudarmeporfavor??tengounMPU6050.Eprobadotodaslaslibrerias
existentesynoconsigoningunamedidaapartedequemuchosejemplosnollegania
compilarlos.Cualquierayudaesbuenamuchasgracias
Responder
TR4NSDUC7OR
26mayo,2015/10:48pm
Lus,hasprobadoelcdigodeejemplodestetutorial?
Finaldelnea.
Responder
16. LUISYUSTE
27mayo,2015/12:22pm
Sitransductoralfinaldespusdeprobaresecdigounas10o15vecesconseguque
mostrarabien(noentiendoporquenofuncionabaalprincipio,porquenocambienada).
Perotengounapreguntaesnormalquealiniciarelprogramatardeunpocoenestabilizarse
ymostrarlosnguloscorrectos?GRACIASporlaayuda.
Responder
TR4NSDUC7OR
29mayo,2015/9:56am
S,esnormal.Elfiltrocomplementariotardaunpocoenadaptarsealngulo.
Finaldelnea.
Responder
17. GUILLERMOFLORES
28mayo,2015/12:06am
Buendia,disculpaotraduda.Hayalgunaformadelimitarlavelocidaddemuestreo?.Por
ejemploquememandesolo3muestrasporsegundooalgoasi?.Saludosygracias!
Responder
TR4NSDUC7OR
29mayo,2015/9:59am
Hola,Guillermo.Puedesaadirundelayalfinalde333ms,peroentoncestendrsque
cambiarelparmetrodtdelfiltrocomplementario(queenestecasovale0.01)a0.333.
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

16/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Finaldelnea.
Responder
GUILLERMOFLORES
30mayo,2015/12:57am
Okgraciaslointentare.
Disculpa,elparametrodelfiltroel0.01querepresenta?
CreiquesoloeraunvalorconstantequemultiplicabaalosangulosdelGyroscopio
enlaformuladelfiltro,yaqueacomoveo,elAngle]0]yAngle[1]sonvaloresquese
actualizanusandoelvalordelosmismosdeunaiteracionanterior.
Loquenoentiendoporqueese0.01vadelamanoconeldelaydelfinal.Saludosy
gracias!
PD:Lainformacindetututorialmehaservidomuchoparaunproyectodeun
cuadricoptero(Dron)quetengo.ElnicoproblemaquetengoesqueelIMUrealiza
demasiadasmuestras.
PequeoEjemplo:
If(Angle[0]>=5)
{
x=x+1;//AumentalaResoluciondelPWM
analogWrite(6,x);
}
EntoncesencuantoelIMUsobrepasalos5gradosmicondicinsecumple
demasiadasvecesenmuypocotiempo,desestabilizandotododespusde
estabilizarlo.
BuenoprobareGracias!portodo,mehaservidomucho
TR4NSDUC7OR
30mayo,2015/8:46pm
El0.01eseltiempodemuestreo.Esdecir,eltiempoquehapasadodesdelaltima
vezqueelprogramacalculelfiltrocomplementario.
Enestetutorialelvalor0.01esaojo,perosiquieressermeticulosopuedesutilizarla
funcionmillis()deArduino:
http://www.arduino.cc/en/Reference/Millis
Suertecontuproyecto.
Finaldelnea.
18. ERICKHERNANDEZ
28mayo,2015/8:46pm
Holameparciogeniallapartedelosnomosylosarbolescuandolehablanalaszetaspero
fijatequeelprogramamecompilayelserialmonitormeapareceenblanco
Responder
TR4NSDUC7OR
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

17/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

29mayo,2015/10:02am
Entoncesrevisalasconexiones.SinoutilizasArduinoUNO/Nano/Duemilanoveo
similarespuedequetuspinesSDA/SCLnoseanA4yA5.Miraestapginaparasaber
culessonlasconexionesdelSDA/SCLdetuplaca:
http://www.arduino.cc/en/reference/wire
Finaldelnea.
Responder
ERICKHERNANDEZ
29mayo,2015/10:47pm
MuchisimasGraciasporresponderpuesmasbiencreoelMPUestafalladooalgoasi
porqueloprobeconotroarduinouno,conunarduinomegaheigualnomedaba
nadaquizasseaculpadelasestupidasHADASsaludos.ComprareotroMPU
19. JOSUEGARCIAAVILA
29mayo,2015/2:33am
Excelenteartculo.Slotengounaduda.CuandoabroelMonitorSerieslomedlas
medicionesdeunas5o6vecesdespusdejadetomardatosyyanoimprimenada.Ser
problemadelMPU?
Responder
TR4NSDUC7OR
29mayo,2015/10:05am
Notieneporqu.MiraquenotengasalgnmalcontactoentredoscablesyquetuUSB
funcionebien(algunavezmehansurgidoerroresasporutilizaruncableUSBroto).
Finaldelnea.
Responder
20. RODRIGOVARONA
1junio,2015/8:28am
Hola!!!!
Antesquenadapermitemefelicitarteportugrantrabajoconestetutorial,creoquea
muchosnoshasacadodelios.
Tengounaduda;amiloquemeinteresadeestesensoressololalecturadelacelerometro,
peroobtengovalorescomoeste:
AcelX:348
AcelY:608
AcelZ:16188

AcelX:168
AcelY:536
AcelZ:16180
Tusabescomotransformoesosvaloresaunidadesdem/soalgoparecido?
Esperomepuedasayudaryagradezcomuchotuatencin.

http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

18/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Esperomepuedasayudaryagradezcomuchotuatencin.
Saludos!!!!
Responder
TR4NSDUC7OR
1junio,2015/10:53pm
Saludos,Rodrigo.
Losvaloresqueproporcionaelacelermetrovienenenbrutoytienesquedividirlos
porunaconstante.Enestecasoes16384(o1638.4siloquieresenm/s).
FjatequesidivideselvalordeAcelZentre16384teda0.98,queesunmltiplodela
aceleracindelagravedad.Recuerdaqueelacelermetromidelaaceleracin,nola
velocidad.
Suerte,humano.
Finaldelnea.
Responder
RODRIGOVARONA
2junio,2015/5:17am
Muchasgracias.
Tedebouna.
Unaultima,losdatosdelgirscopolosdadirectoenrad/sohayaplicarleunfactor
deconversion?
P.D.semepasaronlasunidadesdeaceleracin
TR4NSDUC7OR
4junio,2015/11:15pm
Hola,Rodrigo.Semehabapasadotucomentario.
Losdatosdelgiroscopiohayquedividirlosentre131,ytedarelresultadoenrad/s.
Finaldelnea.
21. TEPOX
2junio,2015/7:50pm
muchasgraciasportutiempo
Responder
22. WARKELS
3junio,2015/8:38pm
hola,tengounproblema,losvaloresdexydeyvanaumentandoprogresivamentehasta
llegaralosvaloresdex=28.73ydey=57.90
cuanpuedeserelerror?
losvaloresnoreaccionanalmovimientodelaimu
gracias.
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

19/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Responder
TR4NSDUC7OR
4junio,2015/11:13pm
Saludos,Warkels.Esproblemadeconexiones.
Dime,quversiondeArduinotienes?YdndehasconectadolospinesSDAySCLde
laIMU?SiutilizasArduinoDUEoLeonardoesposiblequetengasquecambiarlos
pines(D2yD3paraLeonardoyD21,D22paraDUE).
Finaldelnea.
Responder
WARKELS
5junio,2015/10:03pm
graciasporresponderme,
utilizolaversinnanode328yeconectadolospinesSDAYSCLalospinesA4yA5
TR4NSDUC7OR
7junio,2015/10:26am
Justamenteelmodeloquetengoyo.Entoncestienesalgunaotraconexinmal.
TieneslaIMUconectadaa3.3v?
Finaldelnea.
23. CARLOS
7junio,2015/7:08am
holaquetal,tambientengoelproblemadeDiego
Ahorasehadetenidoen
AngleX:35.95
AngleY:37.94
Estcorrecto?.
Tengoelarduinomega2560
gracias!
Responder
TR4NSDUC7OR
7junio,2015/10:29am
Saludos,Carlos.EsoesporqunohasconectadobienlaIMU.
LasconexionesdelospinesSDAySCLparaArduinoMegasonD20yD21
respectivamente.Esoestescritoeneltutorial.
Finaldelnea.
Responder
EDGAR
27junio,2015/3:12am
Tengoelmismoproblema,aunquenotengosoldadolospinesdelmpu,seraporeso?
ayuda!
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

20/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

TR4NSDUC7OR
27junio,2015/3:22pm
Paraempezar:SIEMPREtienesquesoldarbientuscomponentesypiezas.Delo
contrarionoesperesquefuncionenal100%.
Perocreoqueelproblemaes,comoexplicaeltutorial,quealgunasversionesde
ArduinotienencambiadoslospinesSDAySCLynosonA4yA5.Porejemplo,los
pinesSDA/SCLenArduinoLeonardosonD2yD3.
Comonosquemodelotienes,miraenesteenlaceculessonlospines
correspondientes:
https://www.arduino.cc/en/reference/wire
Esteerrorlohevistovariasveces,ysiemprehasidoproblemadeconexiones.
Esperoqueestotesirva.
Finaldelnea.
PS:porloquetengoentendido,laplacaArduinoDUEsiempredaproblemasconlos
pinesSDA/SCL.Nossiesverdadono(noloheprobado)perositienesestaversin
deberasintentarloconotra.
24. MAXIM
12junio,2015/12:40am
Hola,graciasporlainfo.QuieroconectartresMPU6050aunArduinoyobtenerdatosutiles
deellos.Sabespordondedeboempezar?Gracias!
Responder
TR4NSDUC7OR
14junio,2015/11:14am
Saludos.
ElMPU6050tieneunpinllamadoAD0.SiestepinestaLOW(oHIGH,ahorano
recuerdoexactamente)cambialadireccindelMPU6050de0x68a0x69.
Entonces,cmopuedesleer3IMUs?VamosallamaralasIMUsA,B,C:
PrimerocambiasladireccindeByCa0x69.Aladejasa0x68.
Leesladireccin0x68,yguardassuslecturasenunamatriz.
CambiasAyCa0x69,yBa0x68.
Leesladireccin0x68,yguardassuslecturasenotramatriz.
etc
Finaldelnea.
Responder

25. PIPE
14junio,2015/12:42am
exelentetutorial.
tengounadudacompuedoutilizarestosdatosparacontrolar2motores??,loquequieroes
hacerunsegwayyqueconelacelerometroestabiliceybayahaciaatrasohaciaadelante
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

21/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Responder
TR4NSDUC7OR
15junio,2015/8:52pm
Saludos,pipe.
Parautilizarestosdatosyestabilizarunrobotloquenecesitasesimplementarun
controladorPID.
Setratadeunalgoritmoquedadaunaposicinidealylaposicinactualmodificala
salidaenfuncindelerror(enestecasolasposicionessonlosngulosylasalidala
velocidaddelmotor).
PuedesencontrarmsinformacindelcontroladorPIDsibuscasporinternet.Heaqu
algunosenlaces:
https://en.wikipedia.org/wiki/PID_controller
https://developer.mbed.org/cookbook/PID
Esperoquetesirva.
Finaldelnea.
Responder
26. BRYAN
17junio,2015/3:16am
NecesitosacarsolounamedidadeanguloqueunifiquelasmedidasdeXyYcomopodria
hacerlo(muybuentrabajofuncionaperfectamente)
Responder
TR4NSDUC7OR
17junio,2015/10:06am
Unificarlasparaquexactamente?Noveoquesentidopuedetener,nitampocoseme
ocurreunafrmulamatemticaparahacerlo:losngulossonindependientesparacada
eje.
Finaldelnea.
Responder
27. ROGELIO
20junio,2015/6:20am
Hola,tengounaGY87,quetraeestaIMUyademsunmagnetmetro,miideaesfusionar
conKalmanlosdatosdelacelermetroygirscopoparaestimarelpitchyelrollysus
derivadas.YtambinmedianteKalmanfusionarelgirscopoymagnetmetroparaestimar
elyawysuderivada.Yalogrhacerlafusindelacelermetroygirscopo.Necesito
habilitarelbypassdelaIMU6050haciaelmagnetmetro,heledolashojasdedatos,ypor
loqueentend,necesitoconfigurarslo2parmetroenlaIMU,peronopuedohacerlo.Me
podrasdarunamanoparapoderleerelmagnetmetro?,abrazos!
Responder
TR4NSDUC7OR
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

22/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

22junio,2015/12:58pm
Saludos,Rogelio.Metemoquenopuedoayudarte,todavanoheprobadodeconectar
elMPU6050aunsensorexterno.
Finaldelnea.
Responder
ROGELIO
22junio,2015/2:07pm
HolaTR4NSDUCO7OR,tecomentoqueyapudehacerlo,yoestoytrabajandoconun
PIC18porahora.AhoratengoqueimplementarlomismoendsPICyenunCortex
M4deTexasInstrument.EstoyhaciendofusinsensorialconKalman.Aclosdatos
delmagnetmetro,conunajusteimplcitonolinealaunelipsoide,paraestimarel
offsetdelosejesqueseraelcentrodelelipsoide.Saludos!!!
http://i.imgur.com/sjQlvsw.png?1
28. CAMILA
24junio,2015/5:59pm
Hola!
Estoytrabajandoparaunproyectodeuniversidadynecesitomedirlosngulosde
inclinacindeunaarticulacindefinida.
Estoyutilizandounarduinopromini3285V/16MHzyunMPU6050sparkfun.
Ahora,elprogramacompila,perolosdatosquemedavanaumentandoprogresivamentey,
segncreo,elgiroscopiooacelerometronotomabien.
Esperoquemepuedasayudarloantesposible,porquenecesitoterminarlorpido.
Muchasgraciasporelblogylaayuda.
Responder
TR4NSDUC7OR
24junio,2015/9:41pm
Saludos,humano.
Hevistovariasvecesesteerror,ysiemprehasidoproblemademalasconexionesdelos
pinesSDAySCL.SiusasArduinoProMini,esmuyfcilhaberconfundidolospinesA4
yA5.
AsegratequeelpinSDAdelaIMUestconectadoaA4,yelpinSCLestconectadoa
A5.
Porotraparte,sitrabajasconelMPU6050deSparkfun,tuIMUesunpocodiferenteala
ma.TienesdospinesllamadosVDDyVIO.Sinomeequivocoambosdebenser
conectadosa3.3v,nosloVDD.
Yamedirssitehafuncionado.
Finaldelnea.
Responder
29. TURUNUT
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

23/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

29junio,2015/12:45am
Hola,buenasnoches.
Muybuenoelpost,eselquemasmehaayudadocondiferenciaperotengounaduda.
Elfiltroeslentocomoyahascomentadoenalgunarespuesta,peronohayformadehacerlo
masrpido?Esdecirquedetectelasvariacionesdelangulomasrpidamente.
Comparadoconalgnvdeoquehevistoenyoutubeesteeslento.Esporqueellosusanel
filtrooriginalynoelcomplementario?
Muchasgraciasdeantemanoymuybuentrabajo
Responder
TR4NSDUC7OR
29junio,2015/10:50am
Hola,Turunut.Esodependeenpartedelobienqueajusteselvalordtdelfiltro.Eneste
tutorialpuse0.01aojo,perosiquisierasserunpocomsmeticulosotendrasque
calcularcuntotiempohapasadodesdequeArduinohaejecutadolalneadelfiltro
complementarioporltimavez(miratelafuncindearduinomilis()).Esotendraque
eliminarpartedelretardo.
Peroporotraparte,yoheprobadodevisualizarunoscubosenMATLABygirarloscon
laIMUconestemismocdigo(http://robologs.net/2014/11/04/arduinoymatlabvleer
unaimuporserial/),yelretardoeracasiinadvertible.
Finaldelnea.
Responder
TURUNUT
29junio,2015/11:58am
Hedescubiertoquemodificandolosvalores0.98y0.02por0.9y0.1sereduce
muchsimoeltiempodereaccinperotienealgnefectonegativo?enlaprecisinoen
eldrift?
Muchasgracias
Responder
TR4NSDUC7OR
29junio,2015/5:29pm
Cambiarestosvalorespuedeafectaralaprecisinacortoy/olargoplazo(paramejor
oparapeor).Siestosvalorestefuncionanyvesquelaprecisinesbuena,mejor
qudateconestos.
Finaldelnea.
TURUNUT
2julio,2015/12:58am
Solodecirqueyaheencontradolasolucindefinitivasinperderprecisin.losvalores
de0,98y0,02estnbien.Loquesetienequemodificareslavelocidaddetransmisin
delSeriala38400.
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

24/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Porsupuestosetienequecambiarenelsetup:
Serial.begin(38400);
Loquenoseeshastaquelimitepodemosirsubiendosinquepasealgomalo.
Muchsimasgraciasotravezporelpedazotutorial
(YousounArduinoMega2560)
Responder
30. OMAR
30junio,2015/7:32pm
holamuybuentutorial,tienesalgunodePID,andoenelproyectodelbalanceodedos
ruedas.teagradezcotuayuda
Responder
TURUNUT
2julio,2015/10:16am
Mrateestawebhttp://www.xfirm.com/?page_id=148
Responder
OMAR
8julio,2015/9:54pm
muchasgracias
31. KURAY
7julio,2015/9:24pm
Excelentepagina,measidodemuchautilidad.
unapregunta
porquesemultiplicapor1?1*(AcX/A_R)
//SecalculanlosangulosY,Xrespectivamente.
Acc[1]=atan(1*(AcX/A_R)/sqrt(pow((AcY/A_R),2)+pow((AcZ/A_R),2)))*RAD_TO_DEG;
Responder
TR4NSDUC7OR
9julio,2015/11:25pm
Porquelafrmuladaelresultadoennmerosnegativos,deahqueseanecesario
multiplicarlopor1.
Finaldelnea.
Responder
32. JAVIER
11julio,2015/5:09am
Saludos.Tengoenmenterealizarunacmaragiroscpicautilizandoesteprogramaconun
servomotor,peromemeocurrequeelngulovaracuandoleafectaunaaceleracinlateral
endireccinperpendicularalejequequieroestabilizar.
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

25/26

14/7/2015

TutorialdeArduinoyMPU6050robologs

Porejemplo,siquieroestabilizarelejeX,mesitoenelngulo0ysingirarelgirscopolo
agitoendireccindelejeYestemevarade30a30.
Llevadoalaprctica,siloutilizoenunamotocuandoestaseinclineenunacurva,la
aceleracincentrfugaquesegenerafalsearelvalordelnguloquetienequecontrarrestar
alinclinarlamoto,queeselquesequiereestabilizar.
Heprobadocambiandolosporcentajesenelfiltrocomplementario,peronoheconseguido
resultado.Algunaideasobrecomoconseguirquenoleafecteestasaceleraciones?
Graciasdeantemanoyporesteexcelentetutorial.
Responder
TR4NSDUC7OR
13julio,2015/5:10pm
HolaJavier.Heestadopensandomuchoentuproblemaynoveoporqutecambiael
ngulo.Ahoramismo,porejemplo,acabodecargarelprogramadeltutorialyestoy
agitandolaIMUconfuerzaenambosejes:noobtengoningunavariacinsignificativa
enelngulo.
Mecuestadecirdndepuedeestarelproblema.Hascambiadoalgnparmetrodel
FiltroComplementario?UtilizaslamismaIMU(MPU6050)?Noestarsmostrandoen
pantallalosvaloressinfiltrar?
Finaldelnea.
Responder
JAVIER
13julio,2015/10:25pm
Puestienesrazn,herevisadoelcdigoyhasidofallomo.Lavariablequelehe
asignadoalservoesladelngulosincorregiryporesomeocurraquemecambiael
ngulo.Yaloheprobadonuevamentecambiandoesteerroryvaperfecto.Mil
gracias.
TR4NSDUC7OR
13julio,2015/11:32pm
Nohaydequ,humano.Suertecontuproyecto.
Finaldelnea.
BlogdeWordPress.com.|EltemaPlane.

Seguir

Seguirrobologs
ConstruyeunsitiowebconWordPress.com
http://robologs.net/2014/10/15/tutorialdearduinoympu6050/

26/26

Anda mungkin juga menyukai