Nota
Ciao, benvenuto nella Community di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci il mondo di Raspberry Pi, Arduino ed ESP32 con altri appassionati.
Perché unirti a noi?
Supporto Esperto: Risolvi problemi post-vendita e 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 a nuovi annunci di prodotti e anteprime.
Sconti Speciali: Goditi sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a promozioni e concorsi durante le festività.
👉 Pronto a esplorare e creare con noi? Clicca [qui] e unisciti oggi stesso!
Controllo tramite Tastiera
In questo progetto, impareremo come utilizzare la tastiera per controllare da remoto il PiCrawler. Potrai comandare il PiCrawler per avanzare, retrocedere, girare a sinistra o a destra.
Esegui il Codice
cd ~/picrawler/examples
sudo python3 keyboard_control.py
Premi i tasti sulla tastiera per controllare PiCrawler!
w: Avantia: Girare a sinistras: Indietrod: Girare a destraCtrl+C: Esci
Codice
from picrawler import Picrawler
from time import sleep
import readchar
crawler = Picrawler()
speed = 90
manual = '''
Press keys on keyboard to control PiCrawler!
W: Forward
A: Turn left
S: Backward
D: Turn right
Ctrl^C: Quit
'''
def show_info():
print("\033[H\033[J",end='') # pulisci la finestra del terminale
print(manual)
def main():
show_info()
while True:
key = readchar.readkey()
key = key.lower()
if key in('wsad'):
if 'w' == key:
crawler.do_action('forward',1,speed)
elif 's' == key:
crawler.do_action('backward',1,speed)
elif 'a' == key:
crawler.do_action('turn left',1,speed)
elif 'd' == key:
crawler.do_action('turn right',1,speed)
sleep(0.05)
show_info()
elif key == readchar.key.CTRL_C:
print("\n Quit")
break
sleep(0.02)
if __name__ == "__main__":
main()
Come funziona?
PiCrawler dovrebbe compiere l’azione appropriata basandosi sui caratteri letti dalla tastiera. La funzione lower() converte i caratteri maiuscoli in minuscoli, in modo che la lettera rimanga valida indipendentemente dal caso.
def main():
show_info()
while True:
key = readchar.readkey()
key = key.lower()
if key in('wsad'):
if 'w' == key:
crawler.do_action('forward',1,speed)
elif 's' == key:
crawler.do_action('backward',1,speed)
elif 'a' == key:
crawler.do_action('turn left',1,speed)
elif 'd' == key:
crawler.do_action('turn right',1,speed)
sleep(0.05)
show_info()
elif key == readchar.key.CTRL_C:
print("\n Quit")
break
sleep(0.02)