Nota

Ciao, benvenuto nella Community di SunFounder per gli appassionati di Raspberry Pi, Arduino ed ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme a noi e ad altri appassionati.

Perché Unirsi a Noi?

  • Supporto Esperto: Risolvi i problemi post-vendita e affronta le sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime Esclusive: Ottieni accesso anticipato ai nuovi annunci di prodotti e alle anteprime.

  • Sconti Esclusivi: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni e Concorsi Speciali: Partecipa a giveaway e promozioni durante le festività.

👉 Sei pronto a esplorare e creare con noi? Clicca su [here] e unisciti oggi stesso!

2. Movimento delle Zampe

I movimenti delle zampe di PiDog sono implementati tramite le seguenti funzioni:

Pidog.legs_move(target_angles, immediately=True, speed=50)
  • target_angles: È un array bidimensionale composto da un array di 8 angoli dei servo (chiamato gruppo di angoli) come elementi. Questi gruppi di angoli saranno utilizzati per controllare i servomotori delle 8 zampe. Se vengono definiti più gruppi di angoli, i gruppi non ancora eseguiti verranno memorizzati nella cache.

  • immediately : Se questo parametro è impostato su True, la cache viene svuotata immediatamente per eseguire il nuovo gruppo di angoli; se impostato su False, il nuovo gruppo di angoli viene aggiunto alla coda di esecuzione.

  • speed : Velocità di esecuzione del gruppo di angoli.

Di seguito sono riportati alcuni usi comuni:

  1. Eseguire un’azione immediatamente.

from pidog import Pidog
import time

my_dog = Pidog()

# mezzo squat
my_dog.legs_move([[45, 10, -45, -10, 45, 10, -45, -10]], speed=50)
  1. Aggiungere più gruppi di angoli alla coda di esecuzione.

from pidog import Pidog
import time

my_dog = Pidog()

# mezzo squat
my_dog.legs_move([[45, 10, -45, -10, 45, 10, -45, -10]], speed=50)

# azioni multiple
my_dog.legs_move([[45, 35, -45, -35, 80, 70, -80, -70],
                  [90, -30, -90, 30, 80, 70, -80, -70],
                  [45, 35, -45, -35, 80, 70, -80, -70]],  immediately=False, speed=30)
  1. Eseguire ripetizioni per 10 secondi.

from pidog import Pidog
import time

my_dog = Pidog()

# mezzo squat
my_dog.legs_move([[45, 10, -45, -10, 45, 10, -45, -10]], speed=50)

# preparazione per i push-up
my_dog.legs_move([[45, 35, -45, -35, 80, 70, -80, -70]], immediately=False, speed=20)

# push-up
for _ in range(99):
    my_dog.legs_move([[90, -30, -90, 30, 80, 70, -80, -70],
                      [45, 35, -45, -35, 80, 70, -80, -70]],  immediately=False, speed=30)

# mantenere la posizione per 10 secondi
time.sleep(10)

# fermare e ritornare in mezzo squat
my_dog.legs_move([[45, 10, -45, -10, 45, 10, -45, -10]], immediately=True, speed=50)

Il controllo delle zampe di PiDog include anche le seguenti funzioni utilizzabili insieme:

Pidog.is_legs_done()

Questa funzione viene utilizzata per determinare se il gruppo di angoli nella cache è stato eseguito. Se sì, restituisce True; altrimenti restituisce False.

Pidog.wait_legs_done()

Sospende il programma fino a quando i gruppi di angoli nella cache non sono stati eseguiti.

Pidog.legs_stop()

Svuota il gruppo di angoli nella cache.