2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-13 06:57
Este projeto ira te auxiliar na criação de um braço robótico controlado pelo giroscópio de um celular, irei separa em x partes:
- Lista dei materiali
- Esquema elettronico
- Movendo o Braço
- Capturando as informações do giroscópio
- Integrando celular e arduino
Forniture
Você ira precisar dos seguintes materiais:
- Arduino
- 3 Servomotori
- Modulo Bluetooth per arduino
- Caso para 4 pilhas AA
- 4 pile AA
Fase 1: Esquema Elettronico
Os servos utilizados deverão ser ligados nas portas abilitadas para PWM no Arduino (indicadas por esta sigla ou por um asterico [~] em algumas versões).
L'alimentazione dei servi non è necessaria per la fornitura diretta di Arduino e poi non è disponibile una potenza sufficiente per il movimento di 3 servi utilizzati nel progetto. Dessa forma, deve-se utilizar uma fonte esterna di circa 5v (foram utilizadas 4 pilhas AA da 1.5V cada, totalizzante 6v, dentro dos limiti operacionais dos servi).
Passaggio 2: codice Arduino
O código do Arduino é composto dalle seguenti parti:
Biblioteche e definizioni
Utilizza una biblioteca Servo per la comunicazione con i servomotori e SoftwareSerial per realizzare una connessione bluetooth.
Impostare
Realizamos un'inizializzazione dei servi e l'inizializzazione di una connessione bluetooth.
Imposta posizione
Essa é una funzione che definisce una posizione dei servi.
Ciclo continuo
A função loop recebe os dados enviados pelo giroscópio do celular através de um protocolo simples:
- O valor 0 (zero) significa um início de um comando (a sequencia da posição dos servos 1, 2 e 3)
- O valor 255 significa o final do comando
- Valores intermediários identificam a posição de cada servo, ficando então limitados a valores entre 1 e 254
Ao receber o valor 255, a função setPosition é chamada com come rispettiva posizione dei servi, atualizando a posição do braço.
Passaggio 3: Android
O código gyroFunction recebe o evento do SensorManager e processa os dados retornados pelo giroscópio, convertendo a matriz de acelerações em um array de angulos, variando de pi a -pi.
(fonte:
Esses angulos, armazenados originalmente como floats, devem ser convertidos para char, sendo que -pi equivale a 1 e pi equivale a 254.
Sono disponibili interi servizi per bluetooth per Arduino come una stringa char(0) + X + Y + Z + char(255).
A conversão e envio dos dados é feito pela função enviaCoordenadasBluetooth.