Taula de continguts:
2025 Autora: John Day | [email protected]. Última modificació: 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 parts:
- Lista de materials
- Esquema eletrònic
- Movendo o Braço
- Capturant com informació del giroscòpio
- Integrant celular e arduino
Subministraments
Você ira precisar dos següents materials:
- Arduino
- 3 servomotors
- Mòdul Bluetooth per a arduino
- Cas per a 4 piles AA
- 4 pilas AA
Pas 1: Esquema Eletrònic
Os servos utilizados deverão ser ligados nas portas habilitadas para PWM no Arduino (indicades per aquesta sigla o per um asterico [~] em algumas versões).
A alimentação dos servos não pode ser fornecida diretamente pelo Arduino pois não há potência available suficient for movimentar os 3 servos usedados this project. Dessa forma, s’ha d’utilitzar una font externa d’aproximadament 5v (foram utilitzades 4 pilas AA de 1.5V cada, totalitzant 6v, dins de les dues limitacions operacionals dos serveis).
Pas 2: Codi Arduino
El codi d'Arduino és el següent:
Bibliotecas e defineix
Utilitzeu una biblioteca Servo per a comunicació amb servidors motors i SoftwareSerial per realitzar una connexió bluetooth.
Configuració
Realitzem una inicialització de dos serveis i inicis a connexió bluetooth.
SetPosition
Essa és una funció que defineix una posició dos servis.
Bucle
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 inici de comandament (a seqüència de posició dos servos 1, 2 e 3)
- O valor 255 significa o final do comando
- Valors 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 as respectivas posições dos servos, atualizando a posição do braço.
Pas 3: Android
O código gyroFunction recebe o event 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.
(font:
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 é fet pela função enviaCoordenadasBluetooth.