Launchpad MSP430, nRF24L01+, MPU6050 - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-29T09:39:21Zhttps://labdegaragem.com/forum/topics/launchpad-msp430-nrf24l01-mpu6050?feed=yes&xn_auth=noPor favor, tem como vc me pas…tag:labdegaragem.com,2014-11-15:6223006:Comment:4010092014-11-15T11:26:03.743ZAndre Luiz Silva de Oliveirahttps://labdegaragem.com/profile/AndreLuizSilvadeOliveira
<p>Por favor, tem como vc me passar a biblioteca do MPU6050?<br/>E vc fez a calibração?</p>
<p>Por favor, tem como vc me passar a biblioteca do MPU6050?<br/>E vc fez a calibração?</p> Oi! e aonde eu encontro as bi…tag:labdegaragem.com,2014-07-04:6223006:Comment:3657102014-07-04T23:50:40.321ZAurélio Buarquehttps://labdegaragem.com/profile/AurelioBuarque
<p>Oi! e aonde eu encontro as bibliotecas <span>I2Cdev.h e MPU6050_6Axis_MotionApps20.h ?</span></p>
<p>Oi! e aonde eu encontro as bibliotecas <span>I2Cdev.h e MPU6050_6Axis_MotionApps20.h ?</span></p> Deixo aqui os arquivos de cód…tag:labdegaragem.com,2013-12-11:6223006:Comment:3131972013-12-11T16:41:22.492ZPaulo Vinicius Ramoshttps://labdegaragem.com/profile/PauloViniciusRamos
<p>Deixo aqui os arquivos de código da IDE energia, que muito provavelmente funcionará com Arduíno também, apenas fazendo download da biblioteca MPU6050 do Jeff Rowberg no github e acrescentando ao seu projeto.</p>
<p>Esse sketch funcionou comigo em uma launchpad v1.5 com msp430g2553, MPU6050 e nRF24L01+.</p>
<p>Não é o melhor jeito de conseguir oque eu queria, mas já é um começo.</p>
<p>Quem puder testar e dar o ok, agradeço!</p>
<p>Abraços!</p>
<p></p>
<p></p>
<p>Deixo aqui os arquivos de código da IDE energia, que muito provavelmente funcionará com Arduíno também, apenas fazendo download da biblioteca MPU6050 do Jeff Rowberg no github e acrescentando ao seu projeto.</p>
<p>Esse sketch funcionou comigo em uma launchpad v1.5 com msp430g2553, MPU6050 e nRF24L01+.</p>
<p>Não é o melhor jeito de conseguir oque eu queria, mas já é um começo.</p>
<p>Quem puder testar e dar o ok, agradeço!</p>
<p>Abraços!</p>
<p></p>
<p></p> Oi Murilo, sim, a leitura do…tag:labdegaragem.com,2013-12-11:6223006:Comment:3131952013-12-11T16:35:06.491ZPaulo Vinicius Ramoshttps://labdegaragem.com/profile/PauloViniciusRamos
<p>Oi Murilo, sim, a leitura do acelerômetro é feita com essa biblioteca: <a href="http://code.google.com/p/launchpad-stellaris-energia/wiki/Mpu6050Usage">http://code.google.com/p/launchpad-stellaris-energia/wiki/Mpu6050Usage</a><br></br><br></br>Obrigado pela referência, vou ler com atenção e depois com mais tempo implementar essa biblioteca...</p>
<p>De qualquer forma, consegui um jeito do código funcionar, não da melhor forma, mas... Já é um resultado :)<br></br><br></br>Vou colocar em resposta…</p>
<p>Oi Murilo, sim, a leitura do acelerômetro é feita com essa biblioteca: <a href="http://code.google.com/p/launchpad-stellaris-energia/wiki/Mpu6050Usage">http://code.google.com/p/launchpad-stellaris-energia/wiki/Mpu6050Usage</a><br/><br/>Obrigado pela referência, vou ler com atenção e depois com mais tempo implementar essa biblioteca...</p>
<p>De qualquer forma, consegui um jeito do código funcionar, não da melhor forma, mas... Já é um resultado :)<br/><br/>Vou colocar em resposta abaixo.<br/> </p> Bom dia Paulo,
A leitura do…tag:labdegaragem.com,2013-12-11:6223006:Comment:3131842013-12-11T13:39:44.346ZMurilo Zanini de Carvalhohttps://labdegaragem.com/profile/MuriloZaninideCarvalho
<p>Bom dia Paulo,</p>
<p></p>
<p>A leitura do acelerômetro/Giroscópio é feita utilizando alguma biblioteca?</p>
<p></p>
<p>Porque o mais simples, que eu consigo imaginar, é continuar utilizando a biblioteca do nRF e implementar a comunicação I2C por software. Eu encontrei essa referência, espero que ajude.</p>
<p></p>
<p>Abraço.…</p>
<p></p>
<p></p>
<p>Bom dia Paulo,</p>
<p></p>
<p>A leitura do acelerômetro/Giroscópio é feita utilizando alguma biblioteca?</p>
<p></p>
<p>Porque o mais simples, que eu consigo imaginar, é continuar utilizando a biblioteca do nRF e implementar a comunicação I2C por software. Eu encontrei essa referência, espero que ajude.</p>
<p></p>
<p>Abraço.</p>
<p></p>
<p><a href="http://forum.43oh.com/topic/3617-energia-library-software-i2c-master-for-msp430g2553/">http://forum.43oh.com/topic/3617-energia-library-software-i2c-master-for-msp430g2553/</a></p> Para melhor visualizar o dile…tag:labdegaragem.com,2013-12-11:6223006:Comment:3134372013-12-11T13:32:19.498ZPaulo Vinicius Ramoshttps://labdegaragem.com/profile/PauloViniciusRamos
<p>Para melhor visualizar o dilema, deixo aqui o código do meu transmissor:</p>
<p></p>
<p>// Bibliotecas necessarias p/funcionamento do MPU6050<br></br>#include "Wire.h"<br></br>#include "I2Cdev.h"<br></br>#include "MPU6050.h"</p>
<p>// Bibliotecas necessarias p/funcionamento do nRF24L01+<br></br>#include <Enrf24.h><br></br>#include <nRF24L01.h><br></br>#include <string.h><br></br>#include <SPI.h></p>
<p>#define RF_CE P2_0</p>
<p>MPU6050 accelgyro;<br></br>int16_t ax, ay, az;<br></br>int16_t gx, gy,…</p>
<p>Para melhor visualizar o dilema, deixo aqui o código do meu transmissor:</p>
<p></p>
<p>// Bibliotecas necessarias p/funcionamento do MPU6050<br/>#include "Wire.h"<br/>#include "I2Cdev.h"<br/>#include "MPU6050.h"</p>
<p>// Bibliotecas necessarias p/funcionamento do nRF24L01+<br/>#include <Enrf24.h><br/>#include <nRF24L01.h><br/>#include <string.h><br/>#include <SPI.h></p>
<p>#define RF_CE P2_0</p>
<p>MPU6050 accelgyro;<br/>int16_t ax, ay, az;<br/>int16_t gx, gy, gz;</p>
<p>Enrf24 radio(P2_0, P2_1, P2_2); // P2.0=CE, P2.1=CSN, P2.2=IRQ<br/>const uint8_t txaddr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0x01 };</p>
<p>const char *str_ini = "INICIO";<br/>const char *str_end = "FIM";</p>
<p>void setup()<br/>{<br/> // Inicializacao do nRF24L01+<br/> SPI.begin();<br/> SPI.setDataMode(SPI_MODE0);<br/> SPI.setBitOrder(1); // MSB-first<br/> radio.begin(); // Defaults 1Mbps, channel 0, max TX power<br/> radio.setTXaddress((void*)txaddr);</p>
<p><br/> radio.print(str_ini); radio.flush(); // Apenas para verificar se o receptor esta recebendo dados antes de ligar o i2c<br/> //CE LOW<br/> digitalWrite(RF_CE, LOW); - Desliga o radio</p>
<p> Wire.begin();<br/> Serial.begin(9600); <br/> // Inicializacao do MPU6050<br/> Serial.println("Initializing I2C devices...");<br/> accelgyro.initialize();<br/> Serial.println("Testing device connections...");<br/> Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");<br/>}</p>
<p>void loop()<br/>{<br/> //CE LOW - Desliga o radio<br/> digitalWrite(RF_CE, LOW);<br/> // Faz a leitura de posicionamento do modulo<br/> accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);</p>
<p> // Mostra os valores na serial<br/> Serial.print("a/g:\t");<br/> Serial.print(ax); Serial.print("\t");<br/> Serial.print(ay); Serial.print("\t");<br/> Serial.print(az); Serial.print("\t");<br/> Serial.print(gx); Serial.print("\t");<br/> Serial.print(gy); Serial.print("\t");<br/> Serial.println(gz); // <--------------------- Ate aqui tudo bem, mostra os dados na tela.</p>
<p> //CE HIGH - Liga o radio<br/> digitalWrite(RF_CE, HIGH); // <----------------- A partir daqui o problema, o radio nao transmite dado algum<br/> // Envia a leitura de posicionamento via radio<br/> radio.print(str_ini); radio.flush();<br/> radio.print(ax); radio.flush();<br/> radio.print(ay); radio.flush();<br/> radio.print(az); radio.flush();<br/> radio.print(gx); radio.flush();<br/> radio.print(gy); radio.flush();<br/> radio.print(gz); radio.flush();<br/> delay(500);<br/> radio.print(str_end); radio.flush();</p>
<p> delay(500);<br/>}</p> Oi Almir,
Sobre o CS do SPI,…tag:labdegaragem.com,2013-12-11:6223006:Comment:3133382013-12-11T10:58:28.831ZPaulo Vinicius Ramoshttps://labdegaragem.com/profile/PauloViniciusRamos
<p>Oi Almir,</p>
<p>Sobre o CS do SPI, tudo bem, porém no I2C a unica forma <span style="text-decoration: line-through;">perigosa</span> que vejo de ligar e desligar o módulo, seria ligando a alimentação dele em um pino do MCU, posso estar enganado, mas não há um CS nele... Não quero fazer isso.. Eu havia pensado que com o Start/Stop do I2C e com o CS da SPI já daria certo, vou escrever um código rápido e testar...</p>
<p>Oi Almir,</p>
<p>Sobre o CS do SPI, tudo bem, porém no I2C a unica forma <span style="text-decoration: line-through;">perigosa</span> que vejo de ligar e desligar o módulo, seria ligando a alimentação dele em um pino do MCU, posso estar enganado, mas não há um CS nele... Não quero fazer isso.. Eu havia pensado que com o Start/Stop do I2C e com o CS da SPI já daria certo, vou escrever um código rápido e testar...</p> A SPI usa o Mosi (Master out…tag:labdegaragem.com,2013-12-10:6223006:Comment:3133172013-12-10T23:48:31.415ZAlmir Bispo dos S.Filhohttps://labdegaragem.com/profile/AlmirBispodosSantosFilho
<p>A SPI usa o Mosi (Master out serv in) que é saída para o servo . E o Miso (Master in serv Out) que é entrada para o master.(o seu master é o chip da Texas).</p>
<p>Para habilitar o Servo que se conecta na SPI voce deve por o pino do servo SS (Chip select) em baixa (direto no terra) enquanto põe em alta o chip que se conecta na I2C.E vice versa.</p>
<p>Escolha 2 pinos que não seja os usado na comunicação para alternar o estado do chip select (ss) do sensores.</p>
<p>então vai precisar de…</p>
<p>A SPI usa o Mosi (Master out serv in) que é saída para o servo . E o Miso (Master in serv Out) que é entrada para o master.(o seu master é o chip da Texas).</p>
<p>Para habilitar o Servo que se conecta na SPI voce deve por o pino do servo SS (Chip select) em baixa (direto no terra) enquanto põe em alta o chip que se conecta na I2C.E vice versa.</p>
<p>Escolha 2 pinos que não seja os usado na comunicação para alternar o estado do chip select (ss) do sensores.</p>
<p>então vai precisar de :</p>
<p>Miso,Mosi para SPI (Leitura e escrita)</p>
<p>Sda ,clock para I²C (escrita e leitura )</p>
<p>1 pino para comuntar chip select do spi</p>
<p>1 pino para comutar chip select do i2c</p>
<p>(alguns chips i2c usam mais de 1 bit para ser selecionado)</p>
<p></p> Então Gabriel, eu pensei que…tag:labdegaragem.com,2013-12-10:6223006:Comment:3129642013-12-10T14:09:48.360ZPaulo Vinicius Ramoshttps://labdegaragem.com/profile/PauloViniciusRamos
<p>Então Gabriel, eu pensei que daria certo fazer esse "chaveamento", por que na I2C também tem um start/stop, mas pelo oque li nessa hora de pesquisa, parece que não.... Mas seria muita mancada da Texas fazer uma coisa dessas que não desse pra usar depois... Bom, continuo aguardando mais opiniões, enquanto adapto um código que tenho... Obrigado!</p>
<p>Então Gabriel, eu pensei que daria certo fazer esse "chaveamento", por que na I2C também tem um start/stop, mas pelo oque li nessa hora de pesquisa, parece que não.... Mas seria muita mancada da Texas fazer uma coisa dessas que não desse pra usar depois... Bom, continuo aguardando mais opiniões, enquanto adapto um código que tenho... Obrigado!</p> Hmmm, puxa vida, vou acabar t…tag:labdegaragem.com,2013-12-10:6223006:Comment:3130592013-12-10T14:06:56.606ZPaulo Vinicius Ramoshttps://labdegaragem.com/profile/PauloViniciusRamos
<p>Hmmm, puxa vida, vou acabar tendo que fazer uma biblioteca separada pro nRF, por que estou mais familiarizado com ele do que com o acelerômetro.... É o jeito, esse esquema de "chavear" parece não dar certo... </p>
<p>Hmmm, puxa vida, vou acabar tendo que fazer uma biblioteca separada pro nRF, por que estou mais familiarizado com ele do que com o acelerômetro.... É o jeito, esse esquema de "chavear" parece não dar certo... </p>