L'AS5600 è un sensore di posizione magnetica rotante ad alta risoluzione che può misurare gli angoli fino a 360 °. Con la sua interfaccia I2C, è facile integrare con un Raspberry Pi per misurazioni angolari precise in robotica, automazione e altre applicazioni. Questa guida spiega come utilizzare l'AS5600 con un Raspberry Pi per leggere le posizioni angolari.
Cosa avrai bisogno
- Raspberry Pi (Qualsiasi modello con supporto I2C, ad esempio PI 3, PI 4)
- Modulo encoder rotativo magnetico AS5600
- Magnete (diametricamente magnetizzato)
- Breadboard e fili jumper
- Un computer con accesso SSH a Raspberry Pi o una tastiera e un monitoraggio collegati
- Python installato su Raspberry Pi
Passaggio 1: abilita I2C sul Raspberry Pi
- Apri il terminale sul tuo Raspberry Pi.
- Esegui lo strumento di configurazione Raspberry Pi:
sudo raspi-config
- Navigare a Opzioni di interfaccia> i2ce abilitalo.
- Riavvia il Raspberry Pi:
sudo reboot
Passaggio 2: Cablaggio dell'AS5600 a Raspberry Pi
L'AS5600 utilizza il protocollo I2C per la comunicazione. Collegalo a Raspberry Pi come segue:
Pin AS5600 | Pin di lampone |
---|---|
VCC | 3.3V (pin 1) |
GND | Terra (pin 6) |
SDA | SDA (PIN 3, GPIO2) |
SCL | SCL (PIN 5, GPIO3) |
Nota: Assicurarsi che la tensione operativa del modulo AS5600 corrisponda al livello logico 3.3V di Raspberry Pi.
Passaggio 3: installare strumenti e librerie richieste
- Aggiorna il Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Installa gli strumenti I2C:
sudo apt install -y i2c-tools
- Installa le librerie Python per la comunicazione I2C:
pip install smbus2
Passaggio 4: verifica la connessione I2C
- Rileva l'AS5600 sul bus I2C:
sudo i2cdetect -y 1
- Dovresti vedere un indirizzo del dispositivo (ad es.
0x36
) nell'output. In caso contrario, controlla il tuo cablaggio.
Passaggio 5: leggi i dati dall'AS5600
L'AS5600 fornisce dati angolo a 12 bit tramite I2C. È possibile utilizzare il seguente script Python per leggere e visualizzare la posizione angolare.
Esempio di codice Python
import smbus2
import time
# Define I2C address and bus
AS5600_ADDR = 0x36
ANGLE_REG = 0x0E
bus = smbus2.SMBus(1)
def read_angle():
# Read two bytes from the angle register
raw_data = bus.read_i2c_block_data(AS5600_ADDR, ANGLE_REG, 2)
angle = (raw_data[0] << 8) | raw_data[1] # Combine MSB and LSB
angle = angle & 0x0FFF # Mask to 12 bits
return (angle / 4096.0) * 360.0 # Convert to degrees
try:
while True:
angle = read_angle()
print(f"Angle: {angle:.2f} degrees")
time.sleep(0.5)
except KeyboardInterrupt:
print("Exiting...")
Passaggio 6: applicazioni dell'AS5600
L'AS5600 è versatile e può essere utilizzato in vari progetti:
- Robotica: Misurare gli angoli giunti o ruote per un controllo preciso.
- Encoder: Crea encoder rotanti fai -da -te per macchine a CNC o stampanti 3D.
- Controlli di manopola: Utilizzare come manopola ad alta risoluzione per la navigazione di volume o menu.
- Tracciamento della posizione: Traccia le posizioni angolari nei sistemi di automazione.
Risoluzione dei problemi
-
Dispositivo non rilevato:
- Verificare le connessioni SDA e SCL.
- Assicurati che I2C sia abilitato su Raspberry Pi.
- Controllare la tensione operativa dell'AS5600.
-
Letture imprecise:
- Assicurarsi che il magnete sia correttamente allineato con il sensore AS5600.
- Utilizzare un magnete diametralmente magnetizzato per misurazioni accurate.
-
Errori i2c:
- Verificare che i dispositivi contrastanti sul bus i2c
i2cdetect
. - Verificare che l'indirizzo dell'AS5600 corrisponda allo script.
- Verificare che i dispositivi contrastanti sul bus i2c
Conclusione
Il sensore di posizione rotante magnetica AS5600 è uno strumento potente e facile da usare per misurare gli angoli. Seguendo questa guida, è possibile integrare l'AS5600 con un Raspberry Pi per creare sistemi di misurazione rotazionale precisi per robotica, automazione e altro ancora. Sperimenta con diverse applicazioni per sbloccare il pieno potenziale di questo sensore versatile!