2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Este proiectat 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 de materiale
- Esquema eletrônico
- Movendo o Braço
- Capturando as informações do giroscópio
- Integrand celular e arduino
Provizii
Você ira precisar dos following materials:
- Arduino
- 3 Servo motores
- Modulo Bluetooth pentru arduino
- Caz pentru 4 pilase AA
- 4 pilha AA
Pasul 1: Esquema Eletrônico
Os servos utilizados deverão ser ligados nas portas habilitadas for PWM no Arduino (indicadas por esta sigla ou por um asterico [~] em algumas versões).
A alimentação dos servos não can be furnecida diretamente pelo Arduino pois não há potência disponível sufficient for movimentar os 3 servos usedados this project. Dessa forma, trebuie să se utilizeze o sursă externă de aproximativ 5v (foram utilizadas 4 pilhas AA de 1.5V cada, totalizando 6v, dentro dos limites operacionais dos servos).
Pasul 2: Cod Arduino
Codul Arduino este compus din următoarele părți:
Bibliotecas e definește
Utilizați o bibliotecă Servo pentru comunicație cu servere motoare și SoftwareSerial pentru realizarea unei conexiuni bluetooth.
Înființat
Realizamos a initialização dos servos e da iniciamos a conexão bluetooth.
SetPosition
Essa é a função that define a posição dos servos.
Buclă
A função loop recebe os dados enviados pelo giroscópio do celular através de um protocolo simples:
- O valoare 0 (zero) înseamnă um inicio de comandă (o secvență de poziție dos servos 1, 2 și 3)
- O valoare 255 înseamnă o finală de comandă
- Valori intermediare identifică poziția fiecărui serviciu, înregistrând valori limitate la valori între 1 și 254
Ao receber o valor 255, a função setPosition é chamada com as respectivas posições dos servos, atualizando a posição do braço.
Pasul 3: Android
O cod gyroFunction recebe o event do SensorManager e processa os dados returnados 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.
Esses inteiros serão enviados by bluetooth for o Arduino as uma string char (0) + X + Y + Z + char (255).
A conversão e envio dos dados é feito pela função enviaCoordenadasBluetooth.