Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
BLOCOS D1M adicionam caixas táteis, etiquetas, guias de polaridade e breakouts para os populares Wemos D1 Mini SOC / Shields / Clones. Este BLOCO D1M fornece uma conexão simples entre o Wemos D1 Mini e o módulo GY-521 (os pinos de endereço e interrupção podem ser conectados de acordo com seus próprios requisitos).
Minha motivação inicial para desenvolver o D1M BLOCK foi para a verificação independente de um controlador de rastreamento solar.
Este Gysoscópio / Acelerômetro (módulo GY-521) é apontado como tendo estas aplicações:
- Medição de jogos atléticos
- Realidade aumentada
- Imagem Eletrônica (EIS: Estabilização Eletrônica de Imagem)
- Imagem Ótica (OIS: Estabilização Ótica de Imagem)
- Navegador de pedestres
- A interface do usuário sem gestos de toque
- Atalho de postura 8. Celular inteligente
- Dispositivos tablet
- Produtos de jogos portáteis
- Controle remoto 3D
- Dispositivos de navegação portáteis
Este instrutivo percorre a montagem do bloco e, em seguida, testa as medições de inclinação, rotação e guinada usando o BLOCO WIFI D1M.
Etapa 1: Materiais e Ferramentas
Agora existe uma lista completa de Bill of Materials and Sources.
- O escudo Wemos D1 Mini Protoboard e cabeçotes femininos de pino longo
- Peças impressas em 3D.
- Um conjunto de D1M BLOCK - Instale Jigs
- Um módulo GY-521
- Fio de conexão.
- Adesivo de cianoacrilato forte (de preferência com pincel)
- Pistola de cola quente e bastões de cola quente
- Solda e ferro
Etapa 2: soldar os pinos do cabeçalho (usando o PIN JIG)
Há um vídeo acima que percorre o processo de soldagem do PIN JIG.
- Alimente os pinos de cabeçalho pela parte inferior da placa (TX direita-esquerda) e no gabarito de solda.
- Pressione os pinos em uma superfície plana e dura.
- Pressione a placa firmemente no gabarito.
- Solde os 4 pinos de canto.
- Reaqueça e reposicione a placa / pinos se necessário (placa ou pinos não alinhados ou prumo).
- Solde o resto dos pinos
Etapa 3: montagem do escudo
Como o módulo GY-521 irá bloquear você de soldar através dos orifícios na parte superior, a seguinte estratégia funciona: no lado inferior, solde sobre o orifício, a seguir derreta novamente e empurre a extremidade do fio através do orifício e remova o calor.
- Cabeçalho de solda 8P que veio com o módulo na GY-521.
- Coloque o módulo na blindagem e solde (garantindo uma folga do pino lateral igual).
- Dobre 4 pinos e corte os pinos restantes.
- Coloque e solde 3V3 em VCC (vermelho).
- Coloque e solde GND em GND (preto).
- Coloque e solde D1 em SCL (azul).
- Coloque e solde D2 em SDA (verde).
Se você for conectar os pinos de endereço e interrupção, agora é a hora de fazê-lo.
Etapa 4: colar o componente à base
Não abordado no vídeo, mas recomendado: coloque uma grande quantidade de cola quente na base vazia antes de inserir e alinhar rapidamente a placa - isso criará chaves de compressão em ambos os lados da placa. Faça um teste de colocação das proteções na base. Se a colagem não for muito precisa, pode ser necessário fazer um pequeno polimento da borda do PCB.
- Com a superfície inferior do invólucro da base apontando para baixo, coloque o coletor de plástico do conjunto soldado através dos orifícios na base; o (o pino TX ficará do lado da ranhura central).
- Coloque o gabarito de cola quente sob a base com os cabeçotes de plástico colocados em suas ranhuras.
- Coloque o gabarito de cola quente em uma superfície plana e firme e empurre cuidadosamente o PCB para baixo até que os cabeçotes de plástico atinjam a superfície; isso deve ter os pinos posicionados corretamente.
- Ao usar a cola quente, mantenha-a afastada dos pinos do coletor e a pelo menos 2 mm de onde a tampa será posicionada.
- Aplique cola em todos os 4 cantos do PCB garantindo o contato com as paredes da base; permitir a infiltração para ambos os lados do PCB, se possível.
Etapa 5: colar a tampa na base
- Certifique-se de que os pinos não tenham cola e que os 2 mm superiores da base não tenham cola quente.
- Pré-ajuste a tampa (teste), certificando-se de que nenhum artefato de impressão esteja no caminho.
- Tome as precauções adequadas ao usar o adesivo de cianoacrilato.
- Aplique cianoacrilato nos cantos inferiores da tampa garantindo a cobertura da crista adjacente.
- Encaixe rapidamente a tampa na base; apertando feche os cantos, se possível (evitando a lente).
- Depois que a tampa estiver seca, dobre manualmente cada pino para que fique no centro do vazio, se necessário (veja o vídeo).
Etapa 6: Adicionar as etiquetas adesivas
- Aplique a etiqueta de pinagem na parte inferior da base, com o pino RST no lado com ranhura.
- Aplique a etiqueta identificadora no lado plano sem ranhuras, com os pinos vazios sendo a parte superior da etiqueta.
- Pressione as etiquetas com firmeza, com uma ferramenta plana, se necessário.
Etapa 7: Teste com o D1M WIFI BLOCK
Para este teste, você precisará de:
- A D1M GY521 BLOCK
- UM BLOCO DE WIFI D1M
Preparação:
- No IDE do Arduino, instale as bibliotecas I2CDev e MPU6050 (zips anexados)
- Carregue o esboço de teste no BLOCO D1M WIFI.
- Desconecte o USB do PC.
- Anexe o D1M GY521 BLOCK ao D1M WIFI BLOCK
O teste:
- Conecte o USB ao PC.
- Abra a janela do console do Arduino no baud identificado no esboço.
- Mova os BLOCOS no espaço e verifique se os valores do console refletem os movimentos.
Um esboço de teste que registra o ângulo básico PITCH / ROLL / YAW para o módulo KY-521
#include "I2Cdev.h" |
#include "MPU6050_6Axis_MotionApps20.h" |
#include "Wire.h" |
MPU6050 mpu; |
uint8_t mpuIntStatus; |
uint16_t packetSize; |
uint16_t fifoCount; |
uint8_t fifoBuffer [64]; |
Quaternion q; |
Gravidade VectorFloat; |
float ypr [3]; |
bool volátil mpuInterrupt = false; |
void dmpDataReady () {mpuInterrupt = true;} |
void setup () { |
Wire.begin (); |
mpu.initialize (); |
mpu.dmpInitialize (); |
mpu.setDMPEnabled (true); |
attachInterrupt (0, dmpDataReady, RISING); |
mpuIntStatus = mpu.getIntStatus (); |
packetSize = mpu.dmpGetFIFOPacketSize (); |
Serial.begin (115200); |
} |
void loop () { |
while (! mpuInterrupt && fifoCount <packetSize) {} |
mpuInterrupt = false; |
mpuIntStatus = mpu.getIntStatus (); |
fifoCount = mpu.getFIFOCount (); |
if ((mpuIntStatus & 0x10) || fifoCount == 1024) { |
mpu.resetFIFO (); |
Serial.println (F ("estouro de FIFO!")); |
} |
else if (mpuIntStatus & 0x02) { |
while (fifoCount <packetSize) fifoCount = mpu.getFIFOCount (); |
mpu.getFIFOBytes (fifoBuffer, packetSize); |
fifoCount - = tamanho do pacote; |
mpu.dmpGetQuaternion (& q, fifoBuffer); |
mpu.dmpGetGravity (& gravity, & q); |
mpu.dmpGetYawPitchRoll (ypr, & q, & gravity); |
Serial.print ("ypr / t"); |
Serial.print (ypr [0] * 180 / M_PI); |
Serial.print ("\ t"); |
Serial.print (ypr [1] * 180 / M_PI); |
Serial.print ("\ t"); |
Serial.print (ypr [2] * 180 / M_PI); |
Serial.println (); |
} |
} |
ver rawd1m_MPU6050_pitch_roll_yaw.ini hospedado com ❤ por GitHub
Etapa 8: Próximas etapas
- Programe seu D1M BLOCK com D1M BLOCKLY
- Confira Thingiverse
- Faça uma pergunta no Fórum da comunidade ESP8266