Nota

Hola, bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook. ¡Explora más a fondo Raspberry Pi, Arduino y ESP32 con otros entusiastas!

¿Por qué unirse?

  • Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.

  • Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Avances exclusivos: Obtén acceso anticipado a anuncios de nuevos productos y vistas previas.

  • Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.

  • Promociones festivas y sorteos: Participa en sorteos y promociones de temporada.

👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] y únete hoy mismo.

Moverse

Este es el primer proyecto de PiCrawler. Realiza su función más básica: moverse.

Ejecutar el Código

cd ~/picrawler/examples
sudo python3 1_move.py

Cuando el programa comienza, PiCrawler se pone de pie y espera brevemente.

Luego realiza continuamente un ciclo de movimientos: avanzar, retroceder, girar a la izquierda, girar a la derecha, pequeño giro a la izquierda y pequeño giro a la derecha.

Cada acción está separada por breves pausas para lograr un movimiento más suave.

Presione Ctrl+C para detener el programa. Antes de salir, el crawler se sienta de forma segura.

Código

Nota

Puedes Modificar/Restablecer/Copiar/Ejecutar/Detener el código a continuación. Pero antes de eso, debes dirigirte a la ruta del código fuente, como picrawler\examples. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto.

from picrawler import Picrawler
from time import sleep

crawler = Picrawler()  # Create PiCrawler object

def main():
    speed = 80  # Movement speed

    try:
        crawler.do_step('stand', 40)  # Stand up
        sleep(1.0)

        while True:
            crawler.do_action('forward', 1, speed)   # Move forward
            sleep(0.25)

            crawler.do_action('backward', 1, speed)  # Move backward
            sleep(0.25)

            crawler.do_action('turn left', 1, speed)  # Turn left
            sleep(0.25)

            crawler.do_action('turn right', 1, speed)  # Turn right
            sleep(0.25)

            crawler.do_action('turn left angle', 1, speed)  # Small left turn
            sleep(0.3)

            crawler.do_action('turn right angle', 1, speed)  # Small right turn
            sleep(0.3)

            sleep(0.5)

    except KeyboardInterrupt:
        print("\nCtrl+C pressed...")

    finally:
        crawler.do_step('sit', 40)  # Sit down before exit
        sleep(1.0)

if __name__ == "__main__":
    main()

¿Cómo funciona?

  1. Importación e Inicialización

    from picrawler import Picrawler
    from time import sleep
    
    crawler = Picrawler()
    

    El script importa los módulos necesarios y crea un objeto Picrawler, que se utiliza para controlar todos los movimientos del robot.

  2. Función Principal y Configuración

    def main():
        speed = 80
        crawler.do_step('stand', 40)
        sleep(1.0)
    

    La función main() define la velocidad de movimiento. Antes de iniciar el bucle, el robot se pone de pie y se estabiliza.

  3. Bucle de Movimiento Continuo

    while True:
        crawler.do_action('forward', 1, speed)
        crawler.do_action('backward', 1, speed)
        crawler.do_action('turn left', 1, speed)
        crawler.do_action('turn right', 1, speed)
        crawler.do_action('turn left angle', 1, speed)
        crawler.do_action('turn right angle', 1, speed)
    

    El robot ejecuta continuamente una secuencia predefinida de acciones de movimiento dentro de un bucle infinito. Pequeñas pausas entre las acciones ayudan a suavizar el movimiento.

  4. Manejo de Salida Segura

    except KeyboardInterrupt:
        print("\nCtrl+C pressed...")
    finally:
        crawler.do_step('sit', 40)
    

    La estructura try / except / finally garantiza que: - Ctrl+C detiene el bucle de forma segura. - El robot se sienta antes de que el programa termine.

  5. Entrada del Programa

    if __name__ == "__main__":
        main()
    

    Esto asegura que main() se ejecute solo cuando el script se ejecuta directamente.