Il AS5600 è un sensore di posizione magnetico rotativo ad alta risoluzione in grado di misurare angoli fino a 360°. Grazie alla sua interfaccia I2C, è facile da integrare con un Raspberry Pi per misurazioni angolari precise nella robotica, nell'automazione e in altre applicazioni. Questa guida spiega come utilizzare il AS5600
Di cosa avrai bisogno
- Raspberry Pi (qualsiasi modello con supporto I2C, ad es. Pi 3, Pi 4)
- Modulo Encoder Rotativo Magnetico AS5600
- Magnet (magnetizzato diametralmente)
- Breadboard e cavi jumper
- A computer with SSH access to the Raspberry Pi or a connected keyboard and monitor
- Python installato sul Raspberry Pi
Step 1: Enable I2C on the Raspberry Pi
- Apri il terminale sul tuo Raspberry Pi.
- Esegui lo strumento di configurazione di Raspberry Pi:
sudo raspi-config - Naviga a Interface Options > I2C, and enable it.
- Riavvia il Raspberry Pi:
sudo reboot
AS5600
The AS5600 utilizza il protocollo I2C per la comunicazione. Collegalo al Raspberry Pi come segue:
| AS5600 | Pin per Raspberry Pi |
|---|---|
| VCC | 3.3V (Pin 1) |
| GND | Massa (Pin 6) |
| SDA | SDA (Pin 3, GPIO2) |
| SCL | SCL (Pin 5, GPIO3) |
Note: Assicurati che del modulo AS5600 la tensione operativa corrisponde al livello logico a 3.3V di Raspberry Pi.
Passaggio 3: Installa gli Strumenti e le Librerie Necessari
- Aggiorna il Raspberry Pi:
sudo apt update && sudo apt upgrade -y - Installa I2C tools:
sudo apt install -y i2c-tools - Installa le librerie Python per la comunicazione I2C:
bash pip install smbus2
Passaggio 4: Verificare la connessione I2C
- Rileva il AS5600 sul bus I2C:
sudo i2cdetect -y 1 - Dovresti vedere un indirizzo del dispositivo (ad es.,
0x36) in the output. If not, check your wiring.
Passaggio 5: Leggere i dati da AS5600
Il AS5600
Esempio di Codice Python
python
import smbus2
import time
# Define I2C address and bus
AS5600python
_ADDR = 0x36
ANGLE_REG = 0x0E
bus = smbus2.SMBus(1)
def read_angle():
# Leggi due byte dal registro dell'angolo
raw_data = bus.read_i2c_block_data(AS5600python
_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"Angolo: {angle:.2f} gradi")
time.sleep(0.5)
except KeyboardInterrupt:
print("Uscita...")
Fase 6: Applicazioni del AS5600
Il AS5600
- Robotica:
- Encoder: Crea encoder rotativi fai-da-te per macchine CNC o stampanti 3D.
- Manopole di Controllo: Utilizzare come manopola ad alta risoluzione per il volume o la navigazione nei menu.
- Tracciamento della posizione: Monitora le posizioni angolari nei sistemi di automazione.
Troubleshooting
-
Device Not Detected:
- Verificare i collegamenti SDA e SCL.
- Assicurati che l'I2C sia abilitato sul Raspberry Pi.
- AS5600.
-
Letture imprecise:
- Assicurati che il magnete sia allineato correttamente con il Sensore AS5600.
- Utilizza un magnete a magnetizzazione diametrate per misurazioni accurate.
-
Errori I2C:
-
i2cdetect. - Verifica il/la AS5600coincide con lo script.
-
Conclusione
The AS5600 magnetic rotary position sensor è uno strumento potente e facile da usare per misurare gli angoli. Seguendo questa guida, potrai integrare il AS5600 con un Raspberry Pi per creare sistemi di misurazione rotazionale di precisione per la robotica, l'automazione e molto altro. Sperimenta diverse applicazioni per sbloccare tutto il potenziale di questo sensore versatile!




