Proyectos frambuesa pi: ladrillo lego idioma alternativo

Video: Raspberry Pi Supercomputer собственный суперкомпьютер (sotoncomms)

¿Necesita un nuevo proyecto Raspberry Pi? Se puede ejecutar un buen número de idiomas de terceros en el ladrillo LEGO, pero ev3dev pone una versión reducida de Linux en el ladrillo. No es necesario cambiar nada en el ladrillo porque ev3dev funciona con una tarjeta micro SD insertada en el ladrillo. Puede volver fácilmente su ladrillo LEGO volver a su estado original con sólo desconectar la tarjeta SD.

La mayor parte de los trabajos de instalación implica la creación de la tarjeta SD con la distribución Linux en ella. Es algo así como la creación de la tarjeta SD para el propio Raspberry Pi. A ev3dev.org, puede encontrar instrucciones sobre cómo crear la tarjeta SD debajo de la, PC o Mac sistema operativo Linux.

Después de crear la tarjeta SD, se puede conectar el ladrillo en el Raspberry Pi. Usted tiene que conectar el ladrillo directamente en uno de los puertos USB de la Frambuesa Pi (en contraposición a un concentrador USB) con el fin de que funcione.

Video: Top 5 RaspberryPi Robot Projects

Se comunica con el ladrillo LEGO de la Frambuesa Pi mediante una sesión de Secure Shell (SSH). Abre una ventana de línea de comandos y configurar una sesión. Esto es lo que verá:

contraseña de root ssh @ @ 192.168.2.3root de 192.168.2.3: _____ ______ _ | ___ / __ | | _____ __ / _ / / | _ / _` | / _ / / | __ / V / ___) | (_ | | __ / V / ___ | _ / | ____ / __, _ | ___ |! _ / Jessie Debian GNU / Linux en LEGO MINDSTORMS EV3 Los programas incluidos con la distribución Debian GNU / Linuxsystem son -los software términos exactos de distribución gratuita Programación y para cada una se describe en los archivos theindividual en /usr/share/doc/*/copyright.Debian GNU / Linux cuenta con absolutamente ninguna garantía, en la medida permitida por la entrada law.Last aplicable: Wed Nov 5 11:45:33 2014 de 192.168.2.1root@ev3dev: ~ #

Para Linux, todo es un archivo, y los motores de LEGO no son una excepción. Hablar con ellos por escrito a un archivo, y se obtiene la información de vuelta por la inclusión de un archivo. Debido a que este es Linux, la línea de comandos normales todavía le pide trabajar y lo encontrará útil el uso de discos compactos para cambiar de directorio y ls para ver qué archivos están en el nivel de directorio actual.

Video: Raspberry Pi LEGO Robot Using BrickPi

Para utilizar este sistema desde dentro de Python, usted tiene que manejar una sesión SSH desde un programa. La mayoría de la gente recomendar el uso de Pexpect, pero puede tener más éxito con paramiko. Instalarlo utilizando la siguiente:

PIP instalar paramiko --upgrade

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

`` `Ssh Sesson para EV3dev` `` importación matemáticas paramikoimport sysimport, tiempo, os # Crear una SSH clientssh = paramiko.SSHClient () shell = " - debug = Truedef principal (): print"Espere a ladrillo para contactarse"login () print "Ahora hablando de ladrillo"send_command ("LSN") # Linux lista directoryssh.close () print "Ahora apagar"sys.exit () # funciones de acceso a EV3devdef de inicio de sesión (): shellssh.load_system_host_keys globales () (ssh.load_host_keys os.path.expanduser ("~ / .ssh / known_hosts")) # Asegúrese de que añadimos # SSH automaticallyssh.set_missing_host_key_policy la clave del servidor remoto (paramiko.AutoAddPolicy ()) paramiko.util.log_to_file ("ev3brick.log") # Conectar con el EV3 ladrillo # cambio de contraseña a su ownssh.connect ("10.42.0.3", Nombre de usuario ="raíz", Contraseña ="legobrick9") # Crear un ShellShell prima = ssh.invoke_shell () wait_for_prompt () send_command ("cd / sys / class / tacho-motorn") #makes comandos shorterdef wait_for_prompt (): # Crear una nueva recibir bufferreceive_buffer = "mientras no "#" en receive_buffer: # Obtener el bufferreceive_buffer + = shell.recv (1024) si reciben depuración: Impresión receive_bufferdef send_command (comando): shell.send (comandos) receive_buffer = "mientras no "#" en receive_buffer: receive_buffer + = shell.recv (1024) si depuración o "-intento" en receive_buffer: imprimir receive_bufferif __name__ == `__main __`: main ()
Artículos Relacionados