Proyectos Pi Frambuesa: LEGO Brick Idioma alternativo

  1. Ordenadores
  2. Pieza de frambuesa
  3. Proyectos Pi Frambuesa: LEGO Brick Idioma alternativo

Libro Relacionado

Por Mike Cook, Jonathan Evans, Brock Craft

¿Necesita un nuevo proyecto de Frambuesa Pi? Puede ejecutar varios lenguajes de terceros en el bloque LEGO, pero ev3dev pone una versión reducida de Linux en el bloque. No es necesario cambiar nada en el ladrillo porque ev3dev funciona con una tarjeta micro SD insertada en el ladrillo. Usted puede fácilmente revertir su ladrillo LEGO a su estado original simplemente desenchufando la tarjeta SD.

La mayor parte del trabajo de instalación implica la creación de la tarjeta SD con la distribución de Linux en ella. Es como crear la tarjeta SD para la propia Frambuesa Pi. En ev3dev.org, puede encontrar instrucciones para crear la tarjeta SD bajo el sistema operativo Mac, PC o Linux.

Después de crear la tarjeta SD, puede conectar el ladrillo en el frambuesa Pi. Tienes que conectar el ladrillo directamente en uno de los enchufes USB de Frambuesa Pi (a diferencia de un hub USB) para que funcione.

Usted se comunica con el ladrillo LEGO del frambuesa Pi utilizando una sesión de Secure Shell (SSH). Abra una ventana de línea de comandos y configure una sesión. Esto es lo que verás:

ssh [email protected]@192.168.2.3's password: _____ _____ _____ _____ ______ / __| | | ______ / / / / |_ / _` |/ _ / / | __/ V / ___) | (_| | __/ V / ___| _/ |____/ __,_|___| _/Debian GNU/Linux jessie en LEGO MINDSTORMS EV3 Los programas incluidos en el sistema Debian GNU/Linux son software libre; los términos exactos de distribución de cada programa se describen en los archivos individuales en /usr/share/doc/*/copyright.Debian GNU/Linux viene con ABSOLUTAMENTE NINGUNA GARANTÍA, en la medida en que lo permita la ley aplicable: Mié Nov 5 11:45:33 2014 de [email protected]:~#

Para Linux, todo es un archivo, y los motores LEGO no son una excepción. Usted habla con ellos escribiendo en un archivo, y obtiene información de vuelta listando un archivo. Debido a que esto es Linux, las instrucciones normales de la línea de comandos siguen funcionando y encontrará útil usar cd para cambiar de directorio y ls para ver qué archivos están en el nivel de directorio actual.

Para utilizar este sistema desde Python, debe gestionar una sesión SSH desde un programa. La mayoría de las personas recomiendan el uso de Pexpect, pero es posible que tenga más éxito con Paramiko. Instálelo usando lo siguiente:

pip install paramiko --upgrade

El siguiente código muestra cómo abrir, ejecutar y cerrar una sesión SSH desde Python.

ssh Sesson for EV3dev''importar paramikoimport sysimport math, time, os# Crear un cliente SSHsh = paramiko.SSHClient()shell = " ; debug = Truedef main(): imprimir"Wait for brick to be contacted" login() imprimir "Now talking to brick" send_command("lsn") # Linux list directory ssh.close() print "Now shutting down" sys.exit()# funciones para acceder a EV3devdef login(): global shell ssh.load_system_host_keys() ssh.load_host_keys(os.path.expanduser( "~/.ssh/known_hosts")) # Asegúrese de que añadimos la clave SSH # del servidor remoto automáticamente ssh.set_missing_host_key_policy( paramiko.AutoAddPolicy()) paramiko.util.log_to_file("ev3brick.log") # Conéctese al bloque EV3 # cambie la contraseña a su propio ssh.connect("10.42.0.3", username="root", password="legobrick9") # Crear un shell shell crudo = ssh.invoke_shell() wait_for_prompt() send_command("cd /sys/class/tacho-motorn") #hace que los comandos sean más breves wait_for_prompt(): # Cree un nuevo búfer de recepción receive_buffer = " mientras que en receive_buffer no hay un "#": # Obtener el búfer de recepción receive_buffer += shell.recv(1024) si debug : print receive_bufferdef send_command(command): shell.send(command) receive_buffer = " while not "#" in receive_buffer: receive_buffer += shell.recv(1024) si debug or "-bash" in receive_buffer : print receive_bufferif __name__ == = ` '__main__': main()

Reply