Beruflich Dokumente
Kultur Dokumente
El Raspberry Pi
Educacin
ntroduccin
1
El Raspberry Pi
Educaci Manual
n
Esta obra est bajo una licencia de Creative Commons Reconocimiento-No comercial-Compartir bajo la misma 3.0.
000
001
000
0. Introduccin .................................................. ........................... 5
001
1. Una gua del principiante a los
araazos............................................. 7
1.1 Conceptos bsicos de
Scratch ................................................ ............... 9
1.2 Mudanza sprites ................................................ ..............
15
1.3 Animacin (bucles) .............................................. ............
18
1.4 Gato
Matemticas ................................................ ..................... 23
1.5 Inteligencia artificial ................................................ ...... 29
010
011
100
101
110
111
Colaboradores Manual
Introduccin por Andrew Haya
Una gua del principiante a Scratch de Graham
Hastings Greenfoot en la Raspberry Pi de
Experimentos Michael Klling en Python por Andrew
Haya
Interfaz hombre-mquina por Ben Croston
GeoGebra: la diversin con las matemticas!
por Adrian Oldknow La lnea de comandos de
Linux por Brian Lockwood
Produccin Manual
Karl Wright, Robert Cruse y Paul Kingett de Publicis Blueprint
Colaboradores Digital
Las siguientes personas ofrecieron contribuciones que no estn cubiertos en el
manual, pero est disponible
en lnea y en la tarjeta SD.
Rasca Pong por Bruce Nightingale
La cifra de Csar por Brian
Starkey
Fly by Alan Holt
Gracias Especiales
Martin Richards (Universidad de
Cambridge) Simon Humphreys
(Computacin en las Escuelas)
Alex Bradbury (Universidad de Cambridge / Fundacin
Raspberry Pi) Liz Upton (Fundacin Raspberry Pi)
N otas:
Introduccin
5
N otas:
Voy a romper?
No se puede romper tu Raspberry Pi realizando cualquiera de los experimentos en
este libro, pero que slo podra sorprenderse con lo que puede lograr. Usted estar
trabajando
travs
aprender
conceptos
genuinamente
difciles
pero
Introduccin
6
N otas:
La interfaz de Scratch
Modo de
presentacin
Ir a pantalla completa
para mostrar
fuera de sus proyectos
TAB
S
Esto
s donde
me
permiteguiones,
editar Tumes o
cos sonidos
el modo de
Cambiarvista
el
tamao
de la Etapa
Seal De
Stop
Detiene
las
bandera
verde
Una manera
de empezar
Bloque
s
paleta
Los bloques
de cdigo
que va a
utilizar
al
programa
tus sprites
Etapa
Donde sus proyectos
de Scratch hagan lo
suyo
Ratn X-Y
PANTALLA
Muestra la ubicacin
del cursor del ratn
new Sprite
botones
Crear o importar
nuevos sprites
Lista de Objetos
Encuentra todos sus
sprites aqu. Haga
clic en uno para
seleccionar y trabajar
con ella
N otas:
"Etapa roman_".
Alguna vez has estado en una obra de la escuela? Si usted tiene, usted sabr
que para poner en un juego que necesita una etapa, actores, trajes y un guin.
Piense araazos de ser un poco
Puedes vestir a tus sprites en "trajes", y cada uno de sprites puede tener ms de un disfraz. El
"escenario" es el rea de la pantalla en la que sus sprites voluntad
realizar las tareas que usted escribe para ellos.
Para hacer sus sprites se mueven y hablan, es necesario darles instrucciones. Esto se hace
mediante "scripts" de escritura utilizando bloques de cdigo en la paleta y Scripts Bloques
pestaa a la izquierda de la pantalla.
Eso es suficiente por ahora introducciones; vamos a poder familiarizarse
con el programa en s.
Abrir los araazos de su men Aplicaciones de Raspberry Pi. Ahora debera
estar buscando en la interfaz grfica de usuario de Scratch, o GUI (pronunciado
"pegajosa").
N otas:
M ...
c ...
L ...
S ...
S ...
o ...
P ...
v ...
y arrstrelo a la pestaa
Scripts.
segundos"
la
Tenemos que ejecutar un programa para que funcione. Usted puede hacer esto al
hacer doble clic en la secuencia de comandos, si slo tienes un guin. Pero si
tenemos ms de una secuencia de comandos, puede ser que desee comenzar al
mismo tiempo. Podemos utilizar un "evento de bandera verde"
a usted
Pregunta: Durante cunto tiempo dur el gato decir "Hola, mundo"? _____
segundos
Tarea: Vea si usted puede cambiar el bloque para que el gato decir "Hola,
mundo" para
N otas:
N otas:
En el clic
rea en
de Scripts,
haga
clic
Haga
su sprite
para
en el
Ficha Disfraces.
clic
seleccionarlo.
A continuacin, seleccione
la ficha Scripts,
haga clic en las apariencias,
y seleccione el
"interruptor de
pero tonelada
traje [] "bloque.
debera aparecer.
vea
Ahora usted tiene dos bloques en la pestaa Scripts, uno para decir "Hola,
mundo" y otro para cambiar el traje. Puedes ponerlos juntos moviendo una
manera que es justo por encima o por debajo de la otra. Si aparece una lnea
blanca, los dos bloques se ajustarn
a usted
Pregunta: Ahora que tenemos un guin con dos bloques, lo que sucede
cuando se hace doble clic en l?
Tarea: A ver si se puede organizar tres bloques para hacer el cambio gato a la
toga
traje, decir "Hola, mundo", a continuacin, cambiar de nuevo a su traje normal.
el derecho
de ese
gato: l
parece que ha
perdido en una
tormenta de nieve.
Tenemos que
N otas:
The stunge
Es el momento de dar ese gato un escenario. Podramos ser perezoso y
simplemente importar una imagen para utilizarla como
un fondo, pero digamos que estamos siente con energa y quieren llamar nuestra
N otas:
Tip ...
Por defecto, se guardar su trabajo a la carpeta Proyectos de Scratch. Este es
un lugar sensato para guardar su trabajo, por lo que escribir un nuevo nombre
de archivo, en la parte inferior. He llamado a la ma "roman_play", por lo que
elegir un nombre de archivo diferente para su proyecto o te voy a salvar la tuya
Guauu! Eso es mucho para la primera leccin. Tener un juego con araazos experimentar con diferentes bloques de cdigo para saber lo que hacen. Luego
regresa cuando se tiene
Utilice un nombre
que le ayude a
encontrar de
nuevo el
proyecto. Utilice
siempre un _
(guin bajo) entre
las palabras en
los nombres de
archivos - no
N otas:
El gato se siente un poco solo, as que ser mejor que crear algunos
personajes para que pueda jugar. Usted puede pintar sus propios sprites
sprites o importacin del rasguo
En la parte derecha del programa, justo debajo del escenario y por encima de
la Sprite
Lista, vers tres botones: los botones Nueva Sprite. Es esto que vamos a
Quiero aadir un nio viaje en el tiempo a mi escenario. Para simplificar las cosas, y
dejar
a conseguir con un poco ms de la programacin, slo vamos a l importar.
Haga clic en el botn Nuevo Sprite media e importar el sprite "boy4-pie-c". Pero
espera un segundo: l est mirando el camino equivocado! No hay problema. Ir a
la ficha Disfraces y
N otas:
utilizar la
importacin
Botn de
Sprite para
encontrar e
importar el sprite
desde el
pestaa
trajes, haga
clic en editar
y usar la tapa
herramienta
Tambin hay botones para hacer que tu sprite grande, ms pequeo, gire hacia
la izquierda, girar en sentido horario, as como flip horizontal y voltear
verticalmente. Trate de ellos
N otas:
la
Y
coordinar
la
Xcoordinar
Tip ...
Utilice el puntero
del ratn para
encontrar las
coordenadas de
una posicin en el
escenario y hacer
una nota de las
coordenadas
en
esto es lo que
nuestro
cdigo de
N otas:
ocincor to you
Tarea: Ahora aadir un poco de cdigo a su otro personaje para moverlo a la
derecha de la
escenario y luego, despus de un breve retraso moverlo en el centro del
Bien hecho! Por supuesto que tienes el truco de mover sprites sobre
la pantalla. Por qu no aadir algunos ms personajes para su
escenario y hacer que contar chistes?
Si usted est teniendo problemas, puede cargar el cdigo de ejemplo,
"roman_play.sb", para ver cmo el programa est organizado. No dude en para
cambiar las cosas y experimentar,
Esto es lo que utilizamos para programar el ordenador para repetir algo una y
otra
de nuevo. Encontrar el bucle de repeticin ("repeat [10]") en los bloques de
N otas:
N otas:
a usted
Pregunta: Por qu crees que he aumentado el nmero de veces que se
repite de 10 a 20?
Tarea: Algunos de los sprites de Scratch ya tienen dos trajes. Echa un vistazo a
la
Sprites gato rayado. Utilice sus dos trajes y un cdigo similar al ejemplo de la
izquierda para hacerla caminar.
Tip ...
Si su abeja vuela
en la direccin
equivocada,
verifique el sprite
para asegurarse
de que se oriente
en la direccin
correcta. Con el
sprite
seleccionado,
mirar en la barra
de arriba
la pestaa
Scripts. La
direccin "hacia
adelante" de un
sprite se indica
con un poco de
azul
la lnea. La
abeja de la
izquierda se
mover
la lnea para
cambiar el
mover la
direccin de un
N otas:
de estambres de la flor.
flor.
depsitos de polen.
Tambin decid que slo quera una flor en la pantalla a la vez. Por lo tanto, tuve que
agregar secuencias de comandos para hacer mis flores desaparecen y aparecen en
los puntos adecuados en el
N otas:
cdigo de la flor
masculina
Tip ...
Importacin
sprites y un
fondo de las
carpetas de
imgenes
araazos
existente. Esto
puede ahorrar
N otas:
7
n
N otas:
Tip ...
D a cada
variable de un
nombre que le
recuerde lo que
se almacena en el
mismo.
Por ejemplo,
si va a crear un
juego y se utiliza
una variable para
almacenar el
marcador, luego
un buen nombre
para la variable
Si desea utilizar un nombre de dos palabras de la variable, usted separar la
palabras con un guin bajo (el carcter "_"), no es un espacio en blanco.
Introduzca el nombre de
juntos
segundos"
bloque
pero ".
100 puntos]
para [2] segundos
a [0]" y cambie el
En este ejemplo, hemos creado la puntuacin del gato a 100 puntos haciendo clic
en el sprite gato. Pero hay un montn de otras maneras de poner un nmero en
una variable. El mtodo que
56 + 39 =
87-42 =
16 x 9 =
240 6 =
Vamos a mostrarte cmo conseguir Gato Matemticas hacerlo tarea para usted.
Vamos a empezar con la primera pregunta, 56 + 39. Si te quedas atascado, se
refieren a la imagen de la
Para introducir el primer nmero es necesario utilizar un bloque de deteccin de avisar al usuario
qu hacer. Arrastre el bloque de "pedir [Cul es tu nombre?] Y esperar" a la pestaa Scripts.
Cambio
La respuesta dada por el usuario se introduce a continuacin a una variable,
en donde se almacena para su uso en su suma, mediante el uso de una
combinacin de un conjunto de bloques "variable" de Variables
N otas:
N otas:
N otas:
Por ltimo, tambin tenemos que decirle a los araazos para ver la respuesta a la
suma. De lo contrario,
que se mantendr a s mismo (y que no es bueno es para nosotros).
Haga click en la mira en la Paleta de Bloques. Seleccione "decir [Hola!]" Y
arrastrarlo a la
Pestaa Scripts. A partir de variables, arrastre el "nmero" variable y colquelo
en "Hola!". La imagen de abajo le mostrar lo que queremos decir.
y
Y eso es todo! He incluido todo el programa a continuacin. Hemos aadido
en algunos bloques de ms, para que el gato un poco chattier pero los
fundamentos son los mismos que el
utilizar este
cribado
tiro de construir
todo el guin. y
recuerde, cada
vez que se desea
que el gato a
hacer otra suma
que usted tendr
que hacer clic en
Tip ...
Asegrese de
que todos los
bloques de
encajar en su
sitio
correctamente,
especialmente
cuando se tiene
Pero espera un momento: si se trat de hacer que el gato haga todas las tareas
se quiere
han notado un gran problema.
El gato slo puede hacer sumas! No entre en pnico - una edicin rpida para
cambiar el programa
poco har el truco.
aadir
brecha
multiplic
ar restar
Si desea que el gato para llevar luego simplemente cambiar el bloque de "aadir"
en el script anterior para un bloque de "restar", y as sucesivamente hasta que el
gato se ha hecho todo lo que la tarea
Lo que un gato til!
a usted
Tarea: Programar el gato Matemticas para hacer el resto de la hoja de tarea que se
tener que cambiar el operador cada vez para que el gato lo hace el tipo correcto
Para ver un ejemplo de trabajo de este script, abierta RPiScratch / Proyectos / maths_cat.
N otas:
N otas:
Cada vez que utilice este programa la variable pas se establecer en una carta.
Pero la prxima vez que usamos el programa, queremos la variable de un pas a
estar vaco. As que
Pregunta: Estudia el guin. Puedes trabajar en lo que va a hacer cuando el
programa
est dirigido?
Como el gato hace preguntas, las respuestas de los perros se almacenan en
las dos variables
"Vacaciones" y "edad". El guin utilizar estos ms tarde.
Ahora viene la parte inteligente: la sentencia condicional. Vamos a averiguar si
el perro quiere ir de vacaciones. Tiempo para pensar lgicamente: el perro, ya
sea respuesta
Tenemos que encontrar una manera de dejar que el gato sabe la respuesta del perro
y de incitar
el gato para actuar en esa respuesta.
De control en la paleta de bloques, seleccione un "si"
bloque.
Usted tambin necesitar un bloque operador de operadores para probar la entrada. Coge la
"Iguales" operador ("[] = []") de la Paleta de Bloques.
De Variables en la Paleta de Bloques, arrastre y suelte la variable "da de fiesta" en
el
lado izquierdo del operador y tipo "no" en el otro lado.
Por ltimo, arrastrar y soltar el bloque de operador en el "si" de
bloque.
Ahora, desde miradas colocar el bloque ", dicen [Hola] para [2] segundos" dentro
de su "si" bloquear es decir, en el "soporte" cortado en el lado del bloque, de modo que el "si" bloque
rodea. Cambio "Hola" a "OK, no hay vacaciones para usted!".
el cdigo
para
encontrar
si perro quiere ir
N otas:
N otas:
el "if /
else"
bloqu
Tome el pequeo script que estaba en su bloque "if" y lo puso en el "si" el soporte de un
"If / else" bloque. El resultado debe ser similar a la siguiente imagen.
N otas:
Antes de pasar al siguiente paso, tome su segundo bloque "if / else" y colocarlo
en el interior del soporte de "cosa" de su primer bloque "if / else": la que utiliz
para averiguar
a usted
Pregunta: Cul ser el gato decir si la edad del perro
es 9?
Pregunta: Cul ser el gato decir si la edad del perro
es 12?
N otas:
el gato
tiene
elegido a.
u
n
countr y
u
n
countr y
As que A se
almacena
en la variable
"Pas".
El guin de la etapa
Para completar el programa que necesitamos para programar los fondos. Si usted no tiene
ellos importados de RPiScratch \ Resources \ Fondos, ahora es el momento de
hacerlo.
Tip ...
Los usuarios
no siempre
hacen lo que
son
supone que
debe hacer. Si
un usuario
proporciona una
entrada
inesperada, esto
puede causar un
"error" en el
programa, que a
menudo hacer
que el programa
"Crash". Los
programas que
tienen errores en
ellos se dice que
contienen
programa para
asegurarse de
que est libre de
El guin completo
Uf, que se complic. Pero esperemos que se las arregl todo en el final. Slo
para hacer las cosas un poco ms fcil, aqu estn los guiones completos tanto
para el sprite gato y
N otas:
N otas:
ocincor to you
Pregunta: Estudie la palabra clave para el sprite gato y el escenario.
Entiendes eso?
Tarea: Experimentar con el cdigo. Vea si usted puede agregar algunas
preguntas adicionales.
El robot
as es como
pensamos
robots, pero la mayora
de los robots no se
Probablemente ests acostumbrado a los robots de las pelculas: los hombres de metal
haciendo sonar y hablando en voz metlicos. Esto es en realidad una idea pasada de moda de
un robot. Data de un
Una forma ms moderna de pensar acerca de un robot es como cualquier cosa que
puede ser controlado por una computadora. Esto se conoce como "ingeniera de
control". Este dispositivo podra ser un avin, una lavadora, un torno, una mquina
de soldar, un paso a nivel
Pero vamos a empezar con un robot adecuado, pasado de moda. No tenemos
un robot real, o todos los cables y circuitos que bamos a necesitar para
controlar una. As, en lugar, vamos a utilizar un robot que vive dentro de la
etapa de Scratch. Lo que se aprende al hacer esto es cmo hacer que su
Vamos a programar nuestro robot para que podamos controlarlo utilizando la "flecha
hacia arriba"
clave. Para que sea ms fcil ver nuestro movimiento robot, tenemos que ser
capaces de verlo desde arriba.
Importar el sprite "robot_ arriba" de RPiScratch / Resources /
Disfraces. Mientras estamos en ello, importe el fondo "fondo Green_"
de
N otas:
Este
script
hacer nuestro
robot se
mueva en
nuestro
sistema, pero
N otas:
robot project
Tip ...
Esto es til
para
controlar
cdigo de
caracteres
en los juegos.
N otas:
Nuestra tarea es hacer un coche para seguir una lnea, al igual que el verdadero
diseo de los ingenieros
LFVs para su uso en las carreteras. Nuestra principal herramienta va a ser el "color []
est tocando []?"
Una vez que el programa puede detectar dos colores tocando, entonces
podemos decir que la forma de responder cuando esto sucede. El evento de
N otas:
Ahora, haga clic en la bandera verde y ver qu pasa. Dios mo, todo est bien,
siempre y cuando las curvas de la lnea a la izquierda pero tan pronto como se
curva a la derecha del coche
El problema es que el coche necesita dos sensores. Actualmente, si la lnea se
dobla a la derecha, la lnea de negro va a tocar el sensor de color verde - el
programa lo detectar y
Tip ...
Si usted no puede
dejar su coche
durante el tiempo
suficiente para
probar un color,
golpe el "dejar
de guiones" botn
rojo en el
la parte
Ahora, tenemos que usar el parche rojo en el parachoques del coche como un
sensor de color rojo. El programa ser capaz de detectar cuando la lnea gira a
la izquierda y decirle al coche para girar
Aqu est el cdigo que necesita para terminar su
programa LFV:
Tip ...
Si su coche se
detiene en un
ngulo extrao, y
no se puede
enderezarlo,
puede importar el
sprite
"yellow_car" de
nuevo, arrastre y
suelte el guin
terminado en el
nuevo Sprite y
elimine la
el viejo.
Tip ...
tocado
Para un ejemplo de una versin completa de este proyecto,
abierta
RPiScratch / Proyectos / LFV.
El paso a nivel
Recursos: Los sprites "luces" y "barrera", el fondo "level_crossing"
y el sonido "level_crossing_ a".
Sistemas de control de la computadora pueden salvar vidas. En un paso a nivel
que tenemos que asegurarnos de que los coches y los trenes nunca se
encuentran. Esto se hace con un sensor en la pista que
Luego, una computadora responde a este evento al detener el trfico que se acerca
el paso a nivel y cerrar la barrera. Este programa de control puede ser escrita en los
araazos. Pero antes de empezar, tenemos que importar los sprites necesarios y
de fondo.
En primer lugar, importe el fondo "level_crossing". Como se puede ver en la
imagen de la pgina siguiente, el fondo muestra el camino que lleva hasta el
cruce, la
Ejecute el
programa en
modo de pantalla
completa - es
ms
impresionante.
Haga clic en el
botn de la
derecha en el
la parte superior
derecha de la
ventana de
N otas:
apoyo barrera
cuadro de
semforo
Mira la imagen de arriba, y vers que el "luces" sprite tiene cuatro trajes
diferentes. Al cambiar trajes rpidamente, podemos hacer que se vea como si
las luces
La ltima cosa que necesitamos hacer antes de empezar a construir nuestro
script es importar el sonido de la alarma de nivel de cruce. Para ello, haga clic
en la ficha Sonidos, encontrar el sonido "level_crossing_ a" y luego utilizar la
funcin de importacin, tal como lo hizo con
N otas:
Para hacer que las luces rojas parecen parpadear tenemos que cambiar los dos trajes de luz
roja en varias ocasiones. Usamos un bucle de "repeticin" para esto. Construir la secuencia de
comandos en la pgina anterior.
Este es el programa completo de las luces, con todos los bloques en su lugar.
Tenga en cuenta que
usted tiene tres guiones distintos, no se toquen entre s.
La barrera
N otas:
N otas:
control, con su valor establecido en "t". Piense de nuevo - el guin de las luces
tambin se inicia cuando se pulsa la tecla "t". De esta manera, las luces y la
barrera se sincronizan: que
Para bajar la barrera, vamos a girar la pole en etapas usando un bloque de "repetir".
Experimente con el nmero de repeticiones y el ngulo de giro para mover la barrera
la cantidad justa.
Despus de un tiempo determinado, 13 segundos, nos plantean la barrera
utilizando otro bloque de repeticin.
El tren ha pasado, todos los coches son seguros. Bien hecho!
Para ver un ejemplo de este proyecto en su estado
acabado, abierta
RPiScratch / Proyectos / level_crossing.
a usted
Tarea: Como una caracterstica adicional para este programa, crear un sprite
de tren que se mueve
por la pantalla cuando la barrera cae.
cosas
Tip ...
No se olvide de
agregar sonidos
y msica, ya que
esto mejora en
gran medida un
juego.
N otas:
Moviendo el pony
1. mantener el movimiento de
caballo
N otas:
2. Los cambios
aleatorios
en la direccin
ratn.
nEstablezca la coordenada y del sprite chica a la posicin y del puntero del
4. Marca un
punto
cada vez que
la nia se
coloca en el
imaginacin!).
nCuando el juego comienza la puntuacin se establece en "0".
nLos "siempre si" controles de bucle para ver si el color rojo de la parte
superior de la nia est en contacto con un pequeo punto azul en la silla del
caballo.
Espera un momento! Cada vez que el rojo toca el punto azul, "puntuacin" se
cambia a "marcar + 1". Si usted es bueno en matemticas que debe establecer
la seal de alarma!
No te preocupes; programadores suelen hacer esto. Recuerde que una variable
no es un nmero; es un contenedor que puede almacenar nmeros. Podemos
hacer una suma con la
Para ver un ejemplo de trabajo del juego Pony Pisador, abierta
RPiScratch / Proyectos / pony prancing_.
juego de carreras
Recursos: El sprite "red_car" y el fondo "pista".
El objetivo del juego: Un juego para dos jugadores. Cada jugador controla a
un coche de carreras en una pista. Si el coche se sale de la pista, que se estrelle. El
primero de ellos sobre la lnea es el ganador.
Hay cinco tareas para programar cada
vehculo:
1. Lnea de coches para arriba en la lnea de salida.
2. Establezca los coches en movimiento.
3. Crash el coche si se sale de la pista.
4. Declarar el primer coche de la raya como el ganador.
5. Oh, s - y los jugadores tienen que ser capaces de controlar
los coches!
1. Traslado de la
carro rojo
130
npropio punto a la derecha (direccin 90)
Tip ...
Recuerde que para
parar todo
movindose de
manera que se
puede degustar el
color de la parte
superior de la
nia con el
herramienta
cuentagotas,
apret el botn
rojo "detener
guiones".
Si usted no puede
encontrar el sprite
chica, echar un
vistazo en la
esquina inferior
izquierda. Ella
pudo haber huido
N otas:
Para hacer todo esto, usted necesitar, junto con la bandera verde, manzanas de miradas y de
movimiento. Para mover el coche, usamos nuestro viejo amigo el bucle "para siempre". El coche
se mueve un paso
Si el coche sale de la pista, que va a tocar la hierba verde. Este evento har que
el
primero "si" bloque de estrellarse el coche y detener la secuencia de comandos para
Cuando el coche cruza la lnea de meta, se tocar la lnea blanca. Este evento
causar
el segundo bloque "if" para decir "yo gano!" y detener toda la secuencia de
2. control
el coche rojo
Ok, as que podemos conseguir el movimiento coche rojo. Pero tenemos que
ser capaces de dirigirlo. Para ello necesitamos dos "cuando [] tecla pulsada" (de
control) eventos se utilizan para el control
Como era de esperar, la tecla "flecha derecha" convierte el coche a la derecha
y la "flecha izquierda"
Resulta clave el coche a la izquierda.
3. hacen lo mismo
para el coche
prpura
N otas:
N otas:
Tambin debe utilizar la tecla "x" para encender el coche a la derecha y la tecla "Z" para activar
Tip ...
el coche a la izquierda.
Para ver un ejemplo acabado de este juego, abierta
RPiScratch / Proyectos / racing_game_v1.
ocincor to you
Tarea: Aadir el sonido de los coches de carreras para mejorar el juego. Tendr
que grabar o crear su propio archivo de sonido.
Tarea: Trate de hacer estas mejoras en el juego de carreras:
En el juego de carreras que acaba de crear, el coche dice "yo gano!" Cuando
llegue a la lnea. Pero la burbuja del discurso se ha ido tan rpido, es difcil de
leer. Sin embargo, si cambiamos el guin para que la burbuja de dilogo
permanece en la pantalla para, por ejemplo, 2 segundos, entonces hay una
posibilidad de que el segundo coche tambin llegar a la lnea de meta en ese
momento y tambin dicen
Trate de crear una nueva versin del juego, guardarlo como algo parecido
"Racing_game_v2", esta vez haciendo que el coche perder para
detener en seco el momento el ganador cruza la lnea de meta.
Para ello, tendrs que usar una variable.
Llame a esta nueva variable de algo as como "have_winner". El valor por defecto
de "have_winner" debe ser "0". Siempre que sea coche gana, al tocar la lnea de
acabado blanco, se debe establecer el valor de "have_winner" a "1". Este debera
ser el
Por ltimo, en lugar de tener los coches se estrellan cuando llegan a la hierba,
tratar de hacer
ellos reducir la velocidad, por lo que el jugador tiene la oportunidad de
Para ver un ejemplo acabado de este juego, abierta
RPiScratch / Proyectos / racing_game_v2.
Cuando se crea
un juego, no
tenga exceso
ambicioso al
principio.
Programe su
idea bsica y
asegurarse de
que funciona. A
continuacin,
desarrollar su
juego poco a
poco, aadiendo
nuevos
personajes,
eventos y niveles.
Es una buena
idea
guardar cada
nueva versin
con un nmero
diferente, de
modo que usted
pueda realizar un
seguimiento de
los cambios que
tu has hecho. Es
posible que se
Que es lo siguiente?
Enhorabuena! Ahora eres un programador de Scratch. Con suerte, esto es slo
el comienzo para usted, y usted se inspir para crear sus propios programas
utilizando el lenguaje de Scratch. Hay muchas otras habilidades y tcnicas de
programacin
Afortunadamente, una de las mejores cosas de cero es la riqueza de apoyo y
asesoramiento en el Internet. He incluido algunos enlaces a algunos tutoriales
en lnea para usted
http: //learnscratch.org http:
//www.scratch.iehttp://scratch.redware.
com/index.pCV
http://blogs.wsd1.org/etr /? P = 395
http: //scratched.media.mit.edu
http://morpheus.cc/ict/scratch/default.ht m
Y por qu no decirle a sus profesores acerca de Scratch? Tal vez usted ya
otros nios como de mentalidad de su escuela podra incluso establecer un
rasguo Club. Y cuando usted tiene proyectos para hacer, usted podra pedir
a sus maestros si se puede hacer usando los araazos.
Atascado y no
hacis
saben cmo salir
del atasco? No
sufra en silencio.
hay algunos
grandes foros,
amable en el
sitio web de
Scratch en los
que hay un
montn de otros
usuarios de
N otas:
Gracias por leer esta gua. Espero que le ayuda a tener horas de diversin con
su
Raspberry Pi.
Ahora es el momento de pasar al siguiente captulo, en el que aprender a
programa en el lenguaje Python tambin. Cosas increbles!
Los experimentos en
Python
En las secciones anteriores que han visto cmo desarrollar programas
utilizando
Araazos y Greenfoot. Estas son grandes ambientes para el
aprendizaje de cmo construir un programa de piezas. Se toman
los datos del programa y el usuario, manipularla y luego cambiar lo
que ve en la pantalla siguiendo las instrucciones en su programa.
Sin embargo, este estilo de programacin tiene limitaciones cuando
se trata de
la construccin de soluciones a problemas complejos mucho ms
grandes y ms. Para obtener el mejor rendimiento de un ordenador
y de conseguir la mayor flexibilidad, hay muchos otros lenguajes y
tcnicas de programacin de computadoras. Ellos contarse por
cientos, y cada uno tiene su propio lugar en la solucin de
problemas del ordenador en la ciencia. Su Raspberry Pi poda
Para ayudarle a moverse ms cerca del proceso por el cual muchos en el mundo real
aplicaciones se desarrollan, este captulo muestra cmo los programas
estn escritos en un idioma muy popular, llamado Python. Segn
Wikipedia, "Python fue concebido a finales de 1980 y su aplicacin se
inici en diciembre de 1989 por Guido van Rossum en el CIT en los
Pases Bajos." Python es un lenguaje que pretende ser divertido de
usar. Lleva el nombre de la serie de televisin britnica de la comedia
de Monty Python Flying Circus. Si no lo encuentra divertido, esperar
hasta que lo intente algunos otros lenguajes de programacin!
Este captulo no pretende ser una gua tutorial o referencia a la Python
lengua - si quieres estos, entonces hay muchos recursos finas en
internet. Sin embargo, es de esperar, estos anuncios ser un gran
punto de partida para que usted pueda experimentar usted mismo.
N otas:
N otas:
>>> W = 20
>>> impresin (W)
Esto le mostrar el nmero 20 en la ventana de shell. "W" es una variable que
han establecido en el valor 20. A continuacin, imprimir ese valor en la salida.
Vamos a usar "w" de una manera ms
interesante. Prueba esto:
>>> W = 20
>>> para yoen el rango(W):impresin(">"+""* (W-i) +"."* I * 2 +""*
(W-i) +"<")
Utilice la funcin "imprimir"
de IDLE
para crear esta
>>> W = 35
A continuacin, puede utilizar las teclas de flecha para mover el cursor hasta la
lnea que empieza con "a" y pulse Retorno, dos veces. Si usted se est
preguntando por qu hay que pulsar Intro dos veces; la primera vez es
completar el "para" comandos. Al pulsar el segundo tiempo, Python reconoce
que haya terminado ese comando y ejecuta
Ahora vamos a obtener algunos grficos por ordenador
reales van. Introduzca este:
>>> Pygame.init ()
>>> Size = (500,500)
>>> Superficie = pygame.display.set_mode (tamao)
N otas:
Ahora debera tener una pantalla en la pantalla, que tiene una superficie de 500 x 500 puntos
diminutos, o "pxeles". Eso es un gran total de 250.000 pxeles. Vamos a cambiar todo
250.000 pxeles a un color azul profundo que utilizan ese tupla "deepblue" hemos
creado.
>>> Pygame.display.update()
Actualice su pantalla
para
hacer el relleno azul
profundo que ha
Ahora tendr una superficie azul en la ventana que aparece. As que, eso fue bien divertido,
bien o realmente aburrido. Esperemos que al menos bien.
Qu tal con el otro color? Tipo:
Actualice su
pantalla
otra vez para que
aparezca la menta
N otas:
Tip ...
Pixel es la forma
abreviada de
"elemento de
imagen". En la
programacin,
un pxel puede
ajustarse a
cualquier color
que te gusta, y su
"pantalla" se
compone de
muchas filas y
columnas de
ellos, lleno tan
juntos que
desdibujan
uno en el otro y
>>> 256 ** 3
Los smbolos ** significa "elevado a la potencia de". Note "print ()" que no he
usado.
Python puede ser una gran calculadora, tambin!
El ordenador puede
mostrar
256 x 256 x 256 colores.
Eso es 16.777.216
colores
N otas:
N otas:
EesootNN:s:
>>> Pygame.display.update()
Intente cambiar algunos de los nmeros para dibujar el crculo y ver qu pasa.
Recuerde actualizar despus de cada crculo se agrega a la superficie.
Tip ...
A veces,
tenemos ms
cdigo para
escribir que
cabe
en una lnea.
Cuando vea una
lnea de cdigo,
tales como el
ltimo aqu, que
va en una nueva
lnea sin un
smbolo o guin,
que es realmente
una sola lnea de
cdigo. No
presione
Vuelva a iniciar
una nueva lnea,
No responde
Cuando se utiliza PyGame interactiva, como este, puede quedar
atascado en ocasiones. Esto se debe a PyGame est tratando de
enviar eventos de nuevo a usted - informacin sobre las cosas que
quiere que usted sepa acerca. En esta etapa, usted no necesita
saber acerca de ellos, pero an debe decirle a Python para
responder a ellas.
Escriba el cdigo y pulse Intro dos veces, y ver todo el
"eventos" que PyGame quiere que usted sepa acerca.
N otas:
N otas:
Munths casawok
Qu pesadilla. Slo acaba de empezar y ya no hay tarea. Computadoras e
informtica comparten mucho con las matemticas. Tenemos
dibujado un crculo colorido o dos, pero ahora es el momento de mirar a algn
nmero crujido.
Para empezar, vamos a ir a travs de un problema de matemticas simple que probablemente
haya sido
establecido en la escuela en algn momento:
Cules son los factores de todos los nmeros de 1 a 50? Es decir, cules son los
aspectos positivos
divisores de los nmeros de 1 a 50?
N otas:
Tip ...
Abre el editor de IDLE como antes, pero esta vez utilice el men Archivo para
seleccionar una nueva ventana de edicin. Esto ya no es el shell de Python,
pero un editor de texto. Puede escribir en su programa pero no va a ser
interpretado por el Raspberry Pi hasta que le indique a "Ejecutar". Este editor de
texto se ha ajustado para que sea muy bueno para escribir Python,
En esta ventana, escribe exactamente lo que ves aqu, incluyendo los espacios
correctos antes de cada lnea y todo en minsculas. Usted puede usar Tab para
sangrar sus lneas en el
El guin de
cuatro espacios
debe aparecer
automticamente
despus de la
lnea que
termina con dos
puntos (:). El
guin de ocho
espacios
aparecer
despus de la
segunda lnea
que termina con
Tip ...
En matemticas
informticos, los
siguientes
smbolos se
utilizan en lugar
de lo que podra
ser utilizado para:
*para
multiplicar,
en lugar de x
/para la
divisin, en
lugar de
Para hacer este programa de ejecucin, puede seleccionar "Mdulo Ejecutar" en el men de
depuracin del editor o simplemente presione F5 y se le pedir que guarde antes de poder
ejecutar. Prensa
Nota: Es importante incluir la parte ".py" de este nombre, para que Python puede
reconocer fcilmente esto como un programa que puede interpretar.
Despus de presionar "Guardar", el programa se ejecutar y podrs ver un
montn de pantalla de los nmeros en la cscara pitn. Este es el resultado de
su programa, que muestra toda la
N otas:
N otas:
tl Fyobonuncci Sequence
Vamos a escribir otro programa para elaborar una famosa secuencia
matemtica. Cada nmero en la secuencia de Fibonacci es simplemente los dos
nmeros anteriores sumados; empezando por 0 y 1. Crear un nuevo archivo
usando IDLE y el nombre de
El siguiente ser calcular los nmeros en la secuencia hasta el primer valor que
es mayor que 100.
primero = 0
impresin(Primero, final ="")
segundo = 1
mientras (Primera <100):
impresin(Segundo
extremo ="") Tercero =
primero + segundo
primero = segundos
segundo = tercero
Y el resultado
es:
0 1 1 2 3 5 8 13 21 34 55 89 144
Este programa debe ser ms fcil de seguir que el primero. Tiene un solo lazo,
pero, en lugar de usar "para", utiliza "tiempo". Este bucle continuar mientras
que la variable "primero" es menos de 100. Usted debe ser capaz de ver que
"144" en la pantalla, ya que es el primer valor que pas esta prueba. Vea lo
que sucede cuando se cambia
el nmero 0
En casi toda la computacin, el nmero de recuento comienza con 0. En el
mundo real, es comn a contar desde 1. Esto puede ser muy confuso hasta que
se acostumbre a ella - y an ms confuso si usted comienza a usar uno de los
pocos lenguajes de programacin eso contar desde 1. La historia de contar
desde 0 en la informtica se deriva de la indexacin en la memoria. Se puede
decir el primer elemento de la memoria es una distancia 0 desde el inicio de su
memoria. Los idiomas que se basan en 1 compensar este
Esto puede llevar a an ms confusin en el otro extremo de su rango de
contado. Si usted comienza a 0 y necesita 10 nmeros consecutivos, el ltimo
nmero ser 9. El "rango ()" funcin no est generando los nmeros de la
primera a la ltima serie, que est empezando en el primer nmero y que le da
los valores consecutivos despus de eso. Es por ello que en el ejemplo de los
factores, el programa parece contar del 1 al 51. Comenzar en
1 y me dan 51 nmeros consecutivos. He aqu una manera de iterar (es decir,
recuento) a travs de
>>> [X
para
Xen
el rango(0,
10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [X
para
Xen
el rango(1,
51)]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50]
N otas:
Decimal
10
11
100
101
110
111
1000
1001
Pitones en directo
Los experimentos anteriores que han tirado en la parte ms profunda, usando
IDLE para entrar en los programas y ejecutarlos. IDLE requiere que usted
tenga un escritorio grfico (llamado un "interfaz grfica de usuario", o "GUI"),
pero cuando empezaste tu Raspberry Pi, slo te muestra una gran cantidad de
texto en la pantalla. Esto se llama el "Terminal
En la infancia del sistema operativo Linux (el sistema utilizado por el Raspberry
Pi), interfaces grficas no eran comunes. Acceso a una sola computadora se
pareca mucho el acceso a la Internet hoy en da: una pantalla y un teclado fijado
en una consola con un cable en la parte posterior de una caja grande que
contiene el hardware. Al acceder a su ordenador a travs de un cable de este
tipo, que no quieres que esperar para las imgenes para descargar, por lo que
simplemente tena una pantalla de texto. Ver cualquier pelcula que contiene un
ordenador viejo que 1990 y vers algunos ejemplos. Sin embargo, esto sigue
siendo la forma ms eficaz para controlar un ordenador y muchos servidores web
(esas cosas que
Entonces, qu tiene esto que ver con pitones vivas? Cuando estabas
escribiendo lneas de cdigo Python para dibujar crculos en PyGame al
N otas:
Interpretacin Python
Los equipos utilizan instrucciones en el microprocesador para el control de ellos,
y estos son muy rpidos pero muy complicado. Los lenguajes de programacin,
como Python, se inventaron para cerrar la brecha entre lo que la gente piensa
acerca de los problemas y la forma en que un ordenador puede procesar datos.
Para mantener el mejor rendimiento, las computadoras se convierten, o
"compilar",
las
instrucciones
legibles
en
esas
complejas
instrucciones
$ Python
Usted debe ver:
pi @ raspberrypi: ~$ Python
Python 3.2.2 (por defecto, 04 de septiembre 2011,
09:51:08) [Raspberry Pi] Tipo "ayuda", "derecho de
autor", "crditos" o "licencia"
para ms informacin.
>>>
Observe cmo el indicador ha cambiado de "$" para ">>>". Esto muestra que
Python est activo. Cuando desee volver a la terminal de Linux, escriba "quit ()"
y pulse Intro, pero no hagas eso todava. Cuando vea el "$" del sistema, usted
tiene
Ahora, en el Python, escriba:
Tip ...
>>> A = 0
>>> mientras (A <10 000): a + = 1; impresin("Raspberry Pi ="
Usuarios,
A)
...
Un punto y coma
(;) se utiliza para
separar dos
comandos sin
necesidad de
pulsar Intro.
No es una buena prctica para poner todo el cdigo para un bloque en una lnea
como sta. Puede pulsar Retorno despus de cada instruccin aqu y Python se
mostrar "..." para indicar que est esperando ms instrucciones, pero recuerde
que debe sangrar cada lnea
>>> A = 0
>>> mientras (A <10 000):
... A + = 1
...
impresin("Raspberry Pi =" Usuarios, A)
...
$ Nano factors.py
Con un poco de ensayo y error, usted debera ser capaz de utilizar nano para
cambiar el programa
leer:
$ Python factors.py
Usted debe ver la salida del programa en la ventana de terminal de Linux, como lo hizo en el
IDLE Python Shell.
Para el resto de esta seccin Python, utilizaremos IDLE, pero, si lo prefiere, puede
utilizar un editor de texto diferente y ejecutar sus programas de la terminal de Linux
como
N otas:
Tip ...
Cuando vea
puntos
suspensivos (...)
significa que
Python est
esperando ms
instrucciones a
seguir sus
instrucciones ",
mientras que".
Simplemente
pulse Retorno
N otas:
Tip ...
importacin
cadena
importacin
aleatorio
# Crear una lista de 4 caracteres
= secretas [random.choice ('ABCDEF')para artculo en el rango(4)]
# Decirle al jugador lo que est pasando
impresin("He seleccionado un cdigo secreto de 4 caracteres de
las letras
A, B, C, D, E y F. ")
impresin("Puede que haya repetido alguna.")
impresin("Ahora, tratar de adivinar lo que eleg.")
yourGuess = []
mientras que la lista(YourGuess) = secreto:
yourGuess = entrada("Introduzca un 4 letras conjetura: por
ejemplo ABCD:") .upper ()
si len(YourGuess) = 4:
continuar
# Gire la conjetura en una lista, como el
secreto impresin("Lo has adivinado",
YourGuess)
# Crear una lista de tuplas que comparan el secreto con la
conjetura comparingList = cremallera(Secreto, yourGuess)
# Crear una lista de las letras que coinciden
# (Esto ser 4, cuando las listas coinciden exactamente)
correctList = [Speg para Speg, el grupo de expertos en
comparingList si Speg
== El grupo de expertos]
# Contar cada una de las letras en el secreto y la conjetura
# Y anote la menor cantidad en cada
fewestLetters = [min(Secret.count (j), yourguess.count (j)) para
jen 'ABCDEF']
Puedes adivinar la secuencia nmero establecido por el equipo? El equipo
selecciona una secuencia de cuatro cartas de un conjunto de seis. Usted entra
en una secuencia de cuatro letras que usted piensa que el equipo seleccionado y
se informe cuntos eran exactamente
Aqu, de nuevo,
se puede ver
lneas de cdigo
que no caben
en una sola
lnea. No
presione
Regresar al
inicio de una
nueva lnea,
acaba de dejar
Cartas Corregir
= Nmero en
correctList
= 2.
Las cartas no
utilizadas
= Menor
cantidad correcta
N otas:
viene
despus
del
"#"
es
ignorado
por
el
ordenador.
clase,
que
se
conoce
como"
cadenas
de
N otas:
def int2roman(Nmero):
numeralOrder = [1000,900,500,400,100,90,50,40,10,9,5,4,1]
numeralLetters = {
1000: "M", 900: "CM", 500: "D", 400: "CD",
100: "C", 90: "XC", 50: "L", 40: "XL",
10: "X", 9: "IX", 5: "V", 4: "IV",
1: "YO" }
resultado = ""
si nmero <1 o nmero> 4999:
aumentar ValueError
para valor en numeralOrder:
mientras nmero> = valor:
resultado + = numeralLetters
[valor]
nmero - =
valor retorno resultado
probar:
impresin(Int2roman (int(entrada("Introduzca un nmero entero
(1-4999):"))))
excepto ValueError:
Este programa introduce la idea de una funcin. A los grupos de funciones
junto comandos en un bloque. Es el mtodo bsico por el cual usted puede
crear sus propios comandos de Python. Las funciones pueden tener variables
que se les da y que puede devolver una respuesta una vez que se hayan
terminado. Son grandes para la reutilizacin de las instrucciones sobre
diferentes datos y la obtencin de resultados. En este caso, se necesitar un
nmero decimal normales
El siguiente comando ejecuta una serie de funciones en un
solo:
N otas:
excepto ValueError:
impresin("Intntalo de nuevo")
solucionar
esos bichos
Un "error" es la jerga informtica por un error en su programa. No he
puesto intencionadamente errores en los listados, as que si usted
encuentra que no puede ejecutar un programa o se da una respuesta
extraa, que ha introducido alguna manera un error. El trmino ha estado
presente desde la poca de Thomas Edison (c. 1878), pero a menudo el
caso reportado de una polilla que causa un problema dentro de una
computadora alrededor 1947 consolid el trmino en el mundo de las
computadoras.
La capacidad de localizar a los insectos es una habilidad invaluable
para todos los programadores. Con todas las mejores intenciones y
planificacin, se pueden cometer errores. Al iniciar el programa, es
mejor que escribir en los ejemplos enumerados aqu. Puede ser que
tome ms tiempo, pero que estn en formacin. Usted est entrenando
para escribir y cmo evitar cometer errores de escritura. Su capacidad
de cdigo de prueba de lectura se incrementar a medida que trabaja a
travs de estos ejemplos.
Cuando usted encuentra un error, don't pnico y empezar a cambiar el
cdigo al azar. Mira el perfil, mirar a su cdigo, y trabajar a travs de cada
parte, lgicamente, para averiguar lo que usted debe ver, en comparacin
con lo que en realidad se est viendo. Los errores dadas por Python ser
confuso pero es slo siguiendo las instrucciones en el cdigo y que le
dice por qu no puede continuar.
En algn momento, usted descubrir que los programadores utilizan
otro programa llamado un depurador para analizar y encontrar errores
en su cdigo ya que se ejecuta. Usted no necesita el depurador por el
momento, pero no hay un mtodo alternativo. El mtodo ms fcil es
aadir "imprimir ()" comandos a su cdigo para averiguar lo que est
pasando en las variables y lo lejos Python es a travs de su programa.
Piense en ello como la insercin de una sonda en el cdigo que le diga
lo que est sucediendo.
N otas:
N otas:
N otas:
N otas:
Fyolm search
# Ordenar un archivo completo de nombres de cine
# Funcin para comparar el elemento minsculas con el
searchfor def Comparar (artculo):
retorno buscar en item.lower ()
# Cargar el archivo en una lista y
# Cierre el archivo porque el contenido se encuentra ahora en la
memoria
con abierta("Filmlist","R")como pelcula:
filmlist = film.read (). splitlines ()
searchfor = entrada("Enter parte de la pelcula \
nombre que est buscando: ") .lower (). Tira ()
# Usar la funcin incorporada de filtro, que lo har
# Llamar al primer parmetro en cada artculo en
# La lista y, si es verdad, utilizar el elemento
foundlist = filtro(Comprese, filmlist)
para nombre en foundlist:
impresin(Nombre)
Al igual que en el experimento anterior, el plan consiste en cargar una lista de
nombres de cine y despus
procesarlos. En este caso, el requisito es encontrar una pelcula solicitada por el
La lista de pelculas que hemos creado previamente se carga en memoria.
Texto para "searchfor" se solicita por parte del usuario. Esto es inmediatamente
convertido a caracteres en minsculas y espacios adicionales despojados.
Durante la bsqueda, cualquier ttulo de la pelcula tambin se convertir en
minsculas antes de comprobar de manera que el caso no ser relevante para
Hay una funcin de Python llamado "filtro", que tendr una lista y generar una
nueva lista mediante la filtracin de las entradas que no pasan una prueba. En
este caso, nuestra prueba de la voluntad
Por ltimo, las entradas de la lista de elementos encontrados se
imprimen a la pantalla.
Lneas
largas
La lnea de entrada tiene una mitad de camino carcter "\" a travs de
la pregunta. Esto se aadi porque la cola era larga. Si la pregunta de
entrada se escribe en una sola lnea, no necesitara este personaje. Un
carcter "\" al final de una lnea es un marcador de continuacin.
Indica que la lnea no ha terminado todava y continuar en la
siguiente lnea del programa. Cuando se ejecuta el programa, este
personaje no aparecer en el resultado - que slo es utilizado por el
intrprete programa para no perder de vista el flujo del cdigo.
N otas:
Hasta este punto, que los datos sean procesados se ha impreso a la pantalla;
pero podra fcilmente haber sido impreso en papel o por escrito en un archivo.
Hemos estado poniendo el texto directamente sobre la salida de la consola. Si
desea dibujar en una ventana en la que tendr que utilizar una biblioteca grfica
ventana. En esta seccin estamos utilizando la biblioteca "PySide" (una versin
de la biblioteca "Qt4"), aunque otro - llamado "Tk" - viene
Cuando le dices a un ordenador para cambiar la imagen que est mostrando, lo
hace cambiando el color de los pxeles en la pantalla de ordenador. Como
ocurre con casi todos los ordenadores actuales, la pantalla en un Raspberry Pi
es separada en lo que se denominan "ventanas". Estas ventanas "ven" sobre
una superficie estirable. Todo lo que ves en una pantalla grfica del ordenador
es en realidad un dibujo dentro de una ventana; incluso el dibujo de texto
Una ventana debe ser controlado por una aplicacin (una aplicacin), por lo que este
se crea por primera vez. La aplicacin debe estar en ejecucin para la ventana que
se mostrar y, para ello, debe quedarse en un bucle sin fin: el bucle principal. Antes
de bucle, debe definir cmo desea que la ventana para mirar y cmo cada parte va a
reaccionar a
Para responder a las influencias externas, como el movimiento del ratn o del teclado
pulsaciones de teclas, debe reemplazar funciones de eventos. Algunos "widgets" (como empuje
botones) pueden conectarse una funcin a una seal, como "clic".
En el experimento, se demuestran los dos mtodos
para la deteccin de cambios. Cuando se hace clic
en el botn, la funcin "buttonClicked" se llama. El
otro est respondiendo al cursor del ratn se mueve
sobre el widget y cambiar la etiqueta para mostrar la
posicin del ratn (pero slo cuando en la ventana,
no cuando el
N otas:
N otas:
LyoNebraska drawyong
# Incluye el sistema, matemticas y mdulos de interfaz grfica
de usuario importacin sys, matemticas
desde PySide.QtGui importacin *
desde PySide.QtCore importacin *
clase SketchWindow(QWidget):
def
en eso (S, el ttulo, sorteo,
tamao): sper(SketchWindow, auto).
init () self.setWindowTitle (ttulo)
anchura, altura = self.setGeometry
tamao (60, 60, ancho, alto)
self.windowSize = tamao
self.draw = empate
def paintEvent(Self, evento):
qp = QPainter () qp.begin
(auto)
pen = QPen (Qt.yellow, 4)
qp.setPen (pluma)
self.draw (qp, self.windowSize)
qp.end ()
# Esta funcin empate no est dentro de la clase
SketchWindow def drawSine(Contexto, tamao):
puntos anchura,
altura = size = []
para Xen el rango(Ancho):
ngulo = 5 * x * 2 * math.pi / anchura
QPoint = QPoint (x, (altura / 2) * (1 + Math.sin
(ngulo)))
points.append (QPoint)
context.drawPolyline (puntos)
# Crear la aplicacin y el widget y iniciarlo
aplicacin = QApplication (sys.argv)
Reproductor = SketchWindow ('Sine', DrawSine, (320200))
widget.show ()
application.exec_ ()
Para dibujar una lnea, o un grupo de lneas, primero requiere la unin del evento de pintura a
una funcin. Por lo tanto, cuando el sistema de ventanas est listo para sacar a la ventana lo
har
Antes de ir al bucle principal, tenemos que establecer una QWidget dentro de la
aplicacin. Este experimento y el ltimo introdujo el concepto de una "clase". La
comprensin de una clase es bastante complicado, pero piense en ello como un
bloque de datos que tambin define las funciones que pueden manipular los
datos. Puede crear varios bloques de datos con la misma clase y todos ellos
tendrn las mismas funciones estn realizando en
El "SketchWindow" es un tipo de QWidget, y compartir todas las funciones
tenido por un QWidget. El SketchWindow aade una nueva forma de inicializar
(__init__) o configurar el QWidget. Tambin define una nueva forma de dibujar
el contenido del widget. Eso es todo lo que tenemos que cambiar, la funcin
normal de la QWidget sigue siendo el mismo y
Observe cmo se ha redefinido el "paintEvent" con su propia funcin de la
pintura. Esta funcin pintura establece una pluma amarilla y luego utiliza la
funcin de dibujo que se le dio a la ventana de dibujo. La funcin de dibujo
dibuja una curva sinusoidal cinco veces, entre el borde izquierdo y el borde
derecho del marco de la ventana. Lo hace mediante la creacin de una lista de
puntos que representan la curva. Sine puede ir -1-1 pero el clculo hace que
esta gama de 0 a 200. Por ltimo, se une todos los puntos utilizando
En este y en el ltimo experimento, habrs notado que la parte superior izquierda
de la pantalla y el contenido de la ventana se encuentra en las coordenadas 0, 0.
Al dibujar en papel cuadriculado el origen (0,0) est en la parte inferior izquierda.
Es importante recordar esto cuando
Computadoras abordan la
pantalla con el origen de
coordenadas (0,0) en la
parte superior izquierda, a
diferencia de dibujar un
N otas:
N otas:
Munkeng un nois
Los grficos son muy bien, pero si vamos a crear software multimedia cierto,
entonces vamos a tener que dominar salida de audio tambin. Vamos a ver si
nos
importacin
numpy
importacin
ola
importacin
pygame
# Frecuencia de muestreo de un archivo WAV
SAMPLERATE = 44100 # Hz
def createSignal(Frecuencia, duracin):
muestras = int(Duracin * SAMPLERATE)
periodo = SAMPLERATE / frecuencia # En los puntos
de muestreo omega = numpy.pi * 2 / perodo
eje x = numpy.arange (muestras, dtype = numpy.float) * omega
yaxis = 16384 * numpy.sin (eje x)
# 16384 es mxima amplitud (volumen)
retorno yaxis.astype ('Int16') .Encadenar ()
def createWAVFile(Nombre de archivo, la seal):
expediente = Wave.open (nombre de archivo, 'Wb')
expediente.setparams ((1, 2, SAMPLERATE, len(Seal), 'NINGUNO',
'No comprimida'))
expediente.writeframes
(seal) expediente.close ()
def playWAVFile(Nombre del archivo):
pygame.mixer.init ()
sonar = pygame.mixer.Sound (nombre de archivo)
Sound.play ()
# Esperar a sonido para detener
la reproduccin mientras
pygame.mixer.get _ ocupada ():
pasar
# Programa principal comienza aqu
filename = '/tmp/440hz.wav'
Reproduccin de sonidos en un ordenador simplemente significa tomar datos de
un archivo, la conversin a la forma de onda de datos y luego enva de que a
hardware que convierte la forma de onda
En el Raspberry Pi, PyGame se puede utilizar para reproducir sonidos desde
un archivo. En lugar de proporcionar un archivo con algn sonido en l, vamos
a generar un archivo con los datos dentro de ella para jugar sonido. Usted
probablemente sabe que el sonido es en realidad la compresin y
N otas:
N otas:
Vamos a ir a esquiar!
Para este experimento, usted necesitar algunas pequeas imgenes ("sprites"),
que se movan alrededor de la pantalla. Puede utilizar cualquier software de
"pintura" para crear una imagen de un esquiador, que es de 20 pxeles de alto y 20
pxeles de ancho. Adems, crear una imagen de un rbol,
# PyGameSkier.py
importacin
pygame
# Un sprite mundo es un sprite pygame
clase
worldSprite(Pygame.sprite.Sprite):
def
en eso (S, la ubicacin, la
imagen): pygame.sprite.Sprite. init
(auto) self.image = foto
self.rect = self.image.get_rect ()
self.rect.left, self.rect.top = ubicacin
def dibujar(Auto, pantalla):
screen.blit (self.image, self.rect)
# Dibujar este elemento sprite en la pantalla (blit)
# Un esquiador en el mundo sabe lo rpido que va
# Y se puede mover
horizontalmente clase
worldSkier(WorldSprite):
velocidad = 5
def actualizacin(Self, direccin):
self.rect.left + = direccin * self.speed
self.rect.left = max(0, min(380, self.rect.left))
clase
SkiWorld(objeto):
Correr = Falso
keydir = 0
def
en eso (Self):
self.running = Verdadero
self.skier = worldSkier ([190,
50], pygame.image.load ("Skier.png"))
def updateWorld(Self):
# El esquiador es parte del mundo y necesita una
reforma self.skier.update (self.keydir)
N otas:
N otas:
N otas:
Laddeng trees
importacin aleatorio
clase worldTreeGroup(Pygame.sprite.Group):
velocidad = 5
def
Este grupo del rbol del mundo no hace nada todava, porque no ha sido
utilizada por el principal
juego. La siguiente lista cambia el juego principal de usar la nueva clase.
SkiWorld
Hacer estos cambios en la clase "SkiWorld", no aadirlos al final de su
programa. Vea si usted entiende cmo extender la SkiWorld lo que crear
rboles, actualizarlos, dibujarlos y compruebe si el esquiador choca con el
grupo
def
en eso (Self):
self.running = Verdadero
self.skier = worldSkier ([190, 50], pygame.image.load
("Skier.png"))
## aadiendo rboles
self.trees = worldTreeGroup (pygame.image.load ("Block.png"))
def updateWorld(Self):
# El esquiador es parte del mundo y necesita una
reforma self.skier.update (self.keydir)
## Mover las filas de rboles - la eliminacin de cualquier
## Lnea que es la parte superior de la
pantalla self.trees.update ()
## Comprobar si el esquiador ha colisionado con cualquier
## Sprites rbol en las filas de rboles en el grupo de rboles
si pygame.sprite.spritecollide (self.skier, self.trees,
Falso):
self.running = Falso
##
de
##
la
N otas:
N otas:
N otas:
lista.
Est
haciendo
una
lista
de
las
funciones
del
generador
N otas:
N otas:
N otas:
N otas:
$ Pydoc -g y
Seleccione "del navegador abierta" en el cuadro de dilogo que aparece. Esto
puede tardar 20 segundos en aparecer, as que tenga paciencia. A partir de
aqu, se puede ver todo el Python
Si usted tiene acceso a internet, hay un montn de recursos que cubren cmo
programar usando Python. Ahora usted tiene una habilidad para introducir el
cdigo, la ejecucin de cdigo
lLectura para principiantes
http://wiki.python.org/moin/BeginnersGuide/NonProgrammers
lEl aprender con Python
http://openbookproject.net/thinkcs/python/english2e /
lAprender Python The Hard Way
http://learnpythonthehardway.org/book /
lInventar con Python
http://inventwithpython.com/chapters /
lTutorial de Python
http://docs.python.org/tutorial /
Cuando usted est atascado puede probar la principal fuente de todo
conocimiento (para Python). Por ejemplo, la informacin sobre str, chr, archivo,
al azar, matemticas, PySide y heapq
lPython Reference Library
http://docs.python.org/library/
lPySide
http://www.pyside.org/docs/pyside /
lPyGame
http: //www.pygame.org
lPython ndice Paquete
http: //pypi.python.or g
Para obtener informacin acerca de impresin, mientras que, el
rendimiento, para, descanso, pasar mira:
lReferencia del lenguaje Python
http://docs.python.org/reference /
N otas:
N otas:
Interfaz hombre-mquina
Captulo 4
Funcionar,
ordenadores
necesitan insumos informacin de una
fuente externa.
Procesan esta
informacin y
producir un
resultado, llamado
N otas:
Otros puertos comunes incluyen puerto TCP 25, que se utiliza para el
protocolo de correo electrnico SMTP; los puertos 20 y 21, que se utilizan
para el protocolo de transferencia de archivos (FTP); y el puerto 161, para el
protocolo de gestin de red SNMP. Hay miles de diferentes puertos
disponibles para su uso y por lo tanto miles de diferentes maneras a
En este captulo, vamos a utilizar el Raspberry Pi para interactuar con una amplia
gama de aplicaciones de Internet, incluyendo Twitter y correo electrnico. Nos
comunicamos con cada programa a travs del puerto correspondiente,
aportaciones que hace que el programa para ejecutar una funcin especfica. Y
vamos a hacerlo todo mediante la programacin Python
Todos los ejemplos de esta seccin estn diseados para ser lo ms simple
posible. Cada ejercicio demuestra slo un tipo de comunicacin. Piense en
estos ejemplos como ingredientes de una receta que, cuando se mezclan,
producen algo mucho mejor que las partes individuales. El alcance de lo que
hacen slo est limitado por
Qu herramientas se necesitan?
Para completar los ejercicios de este captulo necesitar el programa "IDLE" que utiliz en el
ltimo captulo. Algunos de los ejercicios tambin requieren que se instale mdulos de Python
adicionales. Te lo dir cuando este es el caso. Siempre que sea posible, me han hecho estos
extras disponibles en la tarjeta SD que viene con el Raspberry Pi, a fin de buscar
por el logotipo de la
tarjeta SD!
http://goo.gl/vK3V P
N otas:
N otas:
Tip ...
importacin os
desde gorjeo importacin *
# Ir a https://dev.twitter.com/apps/new para crear su propio
# CONSUMER_KEY y CONSUMER_SECRET
# Tenga en cuenta que usted necesita para establecer el nivel de
acceso a leer y escribir
# Para este script para trabajar (Se encuentra en la pestaa de
configuracin una vez que
# Han creado una nueva aplicacin)
CONSUMER_KEY = '9HvofZMpvHo0KGZyg9ckg'
CONSUMER_SECRET = 'S75MwXN2H0h2qIYszc51WtHTbpbouhDkr6CCTBPzA'
# Obtener la ruta completa del archivo en el .twitterdemo_oauth
# Directorio personal del usuario actual
oauth_filename = os.path.join (os.path.expanduser ('~'),
'.twitterdemo_oauth')
# Get cuenta de twitter Entrar Info
si no os.path.exists (oauth_filename):
oauth_dance ('Raspberry Pi Twitter Demo',
CONSUMER_KEY,
CONSUMER_SECRET, oauth_filename)
(Oauth_token, oauth_token_secret) = read_token_file (oauth_filename)
# Conectarse a Twitter
auth = OAuth (oauth_token, oauth_token_secret,
CONSUMER_KEY, CONSUMER_SECRET)
Twitter Twitter = (auth = auth)
# Tweet una nueva actualizacin de estado
twitter.statuses.update (estado ="Hola
Mundo!")
# Mostrar todos mis tweets
para Tweet en twitter.statuses.user_timeline
Usted tiene la palabra
Trate de pensar en otras maneras en que usted podra utilizar este mecanismo. Por ejemplo,
tener una entrada de algn lugar, procesarla y twittear el resultado. Usted podra detectar el
tiempo fuera y twittear el resultado. Usted podra incluso hacer un tweet desde su telfono
mvil y que su Raspberry Pi leer y reaccionar a l (al jugar algunos
msica,
ejemplo)!
por
Al igual que en el
captulo anterior,
a veces tenemos
ms cdigo para
escribir la que
cabe en una sola
lnea. Cuando
vea una lnea de
cdigo que va en
una nueva lnea,
no pulse
Vuelva a iniciar
una nueva lnea,
simplemente
dejar
que
el
ajuste de lnea y
email-example.py:
importacin smtplib
desde email.mime.text importacin MimeText
# Crear el correo electrnico
mensaje = "" "Esta es una prueba de uso de Python en
Raspberry Pi para enviar un correo electrnico. Que se
diviertan!" ""
msg = MimeText (mensaje) msg ['Asunto'] =
'Test RP _ Python' msg ['De'] = 'Mi RP _
<My_rpi @ example.com>'msg ['Para'] =
'vosotr @ tudomain.com'
# Enviar el correo electrnico
s = smtplib.SMTP ('smtpserver') S.login ('nombre
de usuario','contrasea') S.sendmail (msg ['De'],
Msg ['Para'], Msg.as_string ()) s.quit ()
Puede modificar el programa para enviar archivos adjuntos de correo electrnico, as como texto
simple. El ejemplo de la pgina siguiente enva una imagen (como un archivo JPG) como
archivo adjunto al mensaje.
N otas:
N otas:
email-attachment.py:
importacin smtplib
desde email.mime.multipart importacin
MimeMultipart desde email.mime.text
importacin MimeText
desde email.mime.image importacin MIMEImage
# Crear correo
electrnico de varias
partes msg =
MimeMultipart () msg
['Asunto'] = 'Lily'
msg ['De'] = 'Mi RP _ <My_rpi @ example.com>'
msg ['Para'] = 'vosotr @ tudomain.com'
msg.preamble = "Este es un mensaje de varias partes en formato
MIME.
# Adjuntar texto del correo electrnico
mensaje = "" "Esta es una prueba de uso de Python en
Raspberry Pi para enviar un correo electrnico. Este correo
electrnico tambin incluye una imagen como un archivo
adjunto de correo electrnico. Que se diviertan!" ""
msg.attach (MimeText (mensaje))
# Adjuntar un archivo JPG
filename = 'picture.jpg'
con abierta(Nombre del archivo, 'Rb')como f:
img = MIMEImage (f.read
())
img.add_header ('Content-Disposition','Apego', Nombre de archivo =
nombre de archivo)
msg.attach (img)
server.py
rpc_:
desde xmlrpc.server importacin SimpleXMLRPCServer
def Hola(Name ='Mundo'):
"" "Devuelve una cadena que dice hola al nombre
dado" "" retorno "Hola,% s! ' Nombre%
def aadir(X, y):
"" "Agregue dos variables juntas y devolver el
resultado" "" retorno x + y
# Configurar el servidor
server = SimpleXMLRPCServer (("Localhost", 8000))
# Registrarse nuestras
funciones
server.register_function
(hola)
server.register_function
(aadir)
N otas:
N otas:
rpc_client.py
:
importacin xmlrpc.client
s = xmlrpc.client.ServerProxy ('Http: // localhost: 8000 ")
# Llamar a la funcin 'hola' sin parmetros
impresin(S.hello ())
# Llamar a la funcin 'hola' con un
nombre impresin(S.hello ('XMLRPC'))
# Sumar dos nmeros
impresin('2 + 3 =% s'
S.add% (2,3))
Para ejecutar este ejemplo, necesita dos ventanas libres separados - uno para el servidor y uno
para el cliente. Tiene que ejecutar el servidor primero para que te est esperando
solicitudes del cliente. Para detener el servidor, pulse Ctrl-C.
Como funciona? El programa servidor se sienta y espera a que las peticiones de
los clientes. El programa cliente, cuando se ejecuta, llama a las subrutinas
"hola" y "aadir". Las llamadas se pasan desde el cliente al programa servidor,
donde las funciones se ejecutan en realidad. El resultado se devuelve entonces
al programa de cliente, que muestra el resultado
Dnde se podra utilizar este mecanismo XMLRPC? Bueno, imagina que tienes
varias Raspberry Pis, cada uno conectado a una pantalla situada en una
habitacin diferente. Usted tambin tiene una computadora central que ejecuta
una aplicacin de control con un
Esta aplicacin central podra supervisar y controlar todas las habitaciones
mediante la comunicacin con persona Raspberry Pis - dicindoles lo que
desea mostrar en la pantalla, los dispositivos de control a travs de GPIO, y
devolver los datos registrados desde la habitacin (como los niveles de luz o
temperatura). Incluso se puede tomar fotos con una cmara! Cada Raspberry
Pi funcionara como un servidor XMLRPC; el programa de control central
actuara como
N otas:
Tip ...
Este es el nombre del equipo, el servidor web, en la que reside la pgina web.
En estos ejemplos, se utiliza el nombre de host "localhost", que significa que el
equipo en el que reside un programa.
Puerto
Este es un nmero entre 1 y 65535, que especifica el puerto TCP que se
utilizar para la comunicacin. Si no se especifica, el puerto predeterminado,
80, es utilizado.
Direccin
Esta es la direccin de la pgina web especfica que desea ver. Por ejemplo,
en el URL www.raspberrypi.org/faq slas "preguntas frecuentes" sufijo es la
direccin.
HTML (Hypertext Markup Language) es un lenguaje utilizado para describir el
diseo de una pgina web. En estos dos ejemplos aqu, te dars cuenta de que
la pgina web creada es bastante bsico. Imagnese cmo se puede mejorar
esto slo modificando
Si desea
conocer la
Direccin IP de
el Raspberry Pi,
abra el Terminal,
escriba el
comando "ifconfig"
y pulse Intro.
Este comando
no hace el
mismo trabajo
que "ipconfig"
en un equipo de
MS Windows.
N otas:
YOnputs
La entrada principal a una aplicacin web se encuentra en la forma de una
"solicitud de pgina" de un navegador web. Como parte de esta solicitud, las
variables se pasan desde el navegador web al servidor web (en este caso, su
programa). Estas variables pueden incluir cosas tales como la pgina
especfica que quieres ver, datos de acceso, los detalles sobre la forma en que
lo hara
Normalmente, existen estas variables slo por el tiempo de vida de una peticin.
Una vez que cierre su navegador, se han ido, y si usted visita el sitio de nuevo,
tendrs que especificar los detalles de su solicitud al servidor de nuevo. Si
quieres variables que persisten entre las peticiones, se puede usar un tipo
especial de variable llamada "cookie".
Entradas de su aplicacin pueden ser algo ms que solicitudes de pgina desde un navegador
web, aunque - una base de datos a menudo se utiliza para almacenar datos, por ejemplo.
Incluso se puede utilizar
Salidas
Las salidas de una aplicacin web se llaman una "respuesta". La salida est
normalmente en la forma de la HTML de una pgina web, aunque podra ser
cualquier tipo de datos, como un archivo JPG (una imagen). El contenido de
esta salida es generada por la aplicacin web. Usted podra incluso hacer que
su aplicacin produzca un tipo completamente diferente de la produccin, as
como una pgina web - por ejemplo, cambiar el mensaje en una
Tratamiento
En las pginas siguientes son dos programas Python simples que se ejecutan
como servidores web. Este cdigo tambin funcionar sin modificaciones en un
servidor en ejecucin web comercial
Para completar este ejercicio, tendr que descargar e instalar el "WebOb 1.2" mdulo de Python.
Usted encontrar esta bien en la tarjeta SD Raspberry Pi o en la web
direccin http://pypi.python.org/pypi/WebOb /
N otas:
hello-web.py:
desde WebOb importacin Peticin, Respuesta
clase Aplicacin web(objeto):
def
llamada (Self, ambiental, start_response):
# Capturar la peticin (de entrada)
req = Request (ambiental)
# Obtener la variable de nombre,
# Valor predeterminado de 'Mundo' si no se
establece name = req.params.get
('Nombre','Mundo')
# Generar el HTML de la respuesta (salida)
html = "" "
<P> Hola% s! </ P>
<Form method = "post">
Escriba su nombre: <input type = "text" name = "nombre">
<Input type = "submit" value = "Enviar formulario">
</ Form>
"" "
# Crear y devolver la respuesta
resp = Respuesta (html% nombre)
retorno resp (ambiental, start_response)
aplicacin = mdulo web ()
# Programa principal - el
servidor web si
Nombre ==
'Principal':
desde wsgiref.simple_server importacin
make_server port = 8080
httpd = make_server ('', El puerto, la
aplicacin) impresin("Sirviendo a HTTP
Ejecutar esta aplicacin en IDLE, a continuacin, poner en marcha un
navegador web. Ir a la URL "Http: // localhost: 808 0 ". Si est trabajando
desde otro equipo disponible en la misma red, cambiar "localhost" a la
direccin IP de su Raspberry Pi. Recuerde, usted puede encontrar su
direccin IP, escriba "ifconfig" en el Terminal.
Tenga en cuenta que la mayora de las pginas web son normalmente servidos
en el puerto 80. Para poder ejecutar en un puerto por debajo de 1024, su
programa se debe ejecutar con privilegios (root) "superusuario". Hemos utilizado
el puerto 8080 con este programa - esto es comnmente utilizado por web
Como funciona? La variable "nombre" se pasa a travs de su programa en la
forma de una peticin "POST". Esto se genera mediante un formulario en HTML.
La primera vez que su pgina se ve, la variable "nombre" no est definida, por
lo que un valor por defecto de "El Mundo"
N otas:
Cookes decir,s
Acabamos de ver un ejemplo utilizando un sencillo formulario. Usted puede haber
notado un inconveniente - la variable "name" de esa forma slo dura el tiempo de vida
de una peticin, entonces se pierde. Si queremos una variable permanezca entre
peticiones, tenemos que utilizar otro tipo de variable llamada "cookie". El programa
siguiente se modific una
cookies.py:
desde WebOb importacin Peticin, Respuesta
clase Aplicacin web(objeto):
def
llamada (Self, ambiental, start_response):
# Capturar la peticin (de entrada)
req = Request (ambiental)
# Obtener la variable cookiechange,
Valor # defecto es una cadena vaca
cookiechange = req.params.get ('Cookiechange','')
si len(Cookiechange.strip ())> 0:
# Cambiar el valor de la cookie si la caja cookiechange
# Se ha completado
galletas =
cookiechange
ms:
# Obtener la cookie, el valor predeterminado es
una cadena vaca galletas = req.cookies.get
('Cookies','')
# Generar el HTML de la respuesta (salida)
html = "" "
<P> La cookie se establece en '% s' </ p>
<Form method = "post">
Cambiar valor de la cookie: <input type = "text" name =
"cookiechange">
<Input type = "submit">
</ Form>
"" "
# Crear la variable de
respuesta resp = Respuesta
(html% cookie)
# Almacenar la cookie como parte de la respuesta,
Max edad # 30 da (= 60 * 60 * 24 * 30 segundos)
resp.set_cookie ('Cookies', Galleta, max_age = 60 * 60 *
24 * 30)
retorno resp (ambiental, start_response)
aplicacin = mdulo web ()
# Programa principal - el
servidor web si
Nombre ==
'Principal':
desde wsgiref.simple_server importacin
Otras lecturas
Ms informacin sobre la biblioteca "WebOb" se puede
encontrar en
http://docs.webob.org/en/latest /
Tambin hay varios marcos web de Python disponibles que hacen un montn
de trabajo para usted. Se recomienda un marco si usted est pensando en
escribir un sitio web completo. Un ejemplo muy conocido es el marco de
Django; ver
Solo hemos dado una muy pequea muestra de lo que es posible aqu - hay una
enorme
cantidad que se puede aprender acerca de cmo escribir aplicaciones web.
N otas:
Decimal
10
11
N otas:
N otas:
N otas:
En las seales de
datos en serie,
hay dos
corrientes de
informacin:
transmitir (Tx) y
Paralelo
En una seal en
paralelo,
muchos bits de
datos pueden ser
enviados o recibidos
Los datos digitales fluye dentro y fuera de un ordenador en una de dos maneras
- en serie o en paralelo. En una interfaz paralela, hay un canal de datos para
cada bit de datos que es de entrada. Piense en ello como tener un montn de
carriles en una autopista. En una interfaz en serie, slo hay un canal de datos
para cada direccin (transmisin y recepcin), que cada bit de datos nica viaja
a lo largo, uno despus del otro. Piense en ello como un solo camino. Interfaces
en paralelo son ms fciles de disear y utilizar, pero requieren ms hardware y
cable de datos para construir (al igual que la autopista tomando ms espacio
que
aplicaciones embebidas
Una aplicacin embebida es donde un equipo est integrado en otro
dispositivo. Por ejemplo, un TDT caja de un televisor o un GPS en un coche.
Si se compara una PC de escritorio con una Raspberry Pi, se puede ver que
una PC de escritorio no es adecuado como un componente para construir en
dispositivos pequeos, a diferencia de un Raspberry Pi. Un PC estndar
normalmente no tiene ninguna interfaz GPIO equipados, ya sea! Un Raspberry
Pi es mucho ms
N otas:
N otas:
N otas:
Pin Junta
3*
16
23
5*
18
24
19
10
14
21
10
15
22
25
11
17
23
11
12
18
24
13
21
26
15
22
* Tenga en cuenta que estos pines tienen una resistencia de 1.8k pull-up en el
tablero de Raspberry Pi.
Inter-Circuito Integrado (IC)
IC es una interfaz en la que se puede conectar varios dispositivos esclavos
IC. El Raspberry Pi acta como el maestro en el bus.
Pin Junta
Funcin
Descripcin
3*
SDA
Datos
5*
SCL
Reloj
Funcin
Descripcin
19
10
MOSI
21
MISO
23
11
SCLK
Reloj en serie
24
CE0
26
CE1
Funcin
Descripcin
14
TX
Transmitir
10
15
RX
Recibir
Tip ...
Tenga cuidado
con la conexin
UART!
Si utiliza
demasiada
corriente,
entonces
usted podra
fcilmente
N otas:
LeD cyorcuyot
Ahora sabemos todo acerca de los datos y opciones de entrada / salida del
Raspberry Pi, vamos a llegar
con la construccin de algo!
Se trata del circuito ms simple se puede construir para probar las salidas
GPIO de Raspberry Pi. Este circuito contiene slo dos componentes: una
resistencia de 1k y un LED (diodo emisor de luz). La resistencia se utiliza para
limitar la corriente que fluye fuera de la Frambuesa Pi y en el LED. Si hay
demasiada corriente, podra
Experimento circuito de
LED
diagrama de
Tip ...
Por favor, tenga
cuidado: si utiliza
demasiada
corriente,
entonces usted
podra fcilmente
romper algo!
N otas:
Push-bUtahton cyorcuyot
Este es el sobre el circuito ms simple que puede utilizar para probar las
entradas GPIO con su Raspberry Pi. La resistencia de 10k es lo que se conoce
como una resistencia "pull-up" - que significa que la entrada se tir alto (a 3,3
V) cuando no se pulsa el botn. Al pulsar el botn, se conecta la entrada a 0 V
a travs de la resistencia de 1k, enviando la baja entrada. La resistencia de 1k
est presente para proteger su Raspberry Pi en el caso de configurar
accidentalmente como una salida en lugar de una entrada. El Gertboard tiene
algunos
Circuito de
pulsador
experimentar el diagrama de
importacin
enhebrar
importacin
tiempo
importacin RPi.GPIO como GPIO
clase Botn(Threading.Thread):
"" "Un hilo que controla un botn GPIO" ""
def
N otas:
# Hilo de inicio de
funcionamiento
self.start ()
def planchado(Self):
si self._pressed:
# Borrar el indicador presionado ahora hemos detectado
self._pressed = Falso
Verdadero retorno
ms:
return false
def carrera(Self): =
anteriores
Ninguno
mientras 1:
# Leer canal GPIO
actual = GPIO.input (self.channel)
time.sleep (0.01) # Esperar 10 ms
# Detectar el cambio de 1 a 0 (una pulsacin de botn)
si == actual Falso y == anterior Verdadero:
self._pressed =
Verdadero
# Espera para la bandera que desea borrar
mientras
self._pressed:
time.sleep (0.05) # Esperar
50 ms anterior = corriente
def onButtonPress():
impresin('Botn ha sido presionado!')
# Crear un hilo de botn para un botn en el
pin 11 botn = Button (11)
while True:
# Pedir un nombre y decir hola
name = entrada('Introduzca un nombre (o Q para salir):')
si name.upper () == ('Q'):
impresin
descanso('Hola',
Nombre)
N otas:
Larduino yonterface
Para completar este ejercicio necesitar la extensin de puerto serie Python. Usted puede
instalar
esto
desde
la
tarjeta
SD
Raspberry
Pi
descargarlos
de
desde
el
sitio
web
de
N otas:
La lnea de comandos de
Linux
El sistema operativo en el Raspberry Pi es una versin de Linux. Con toda
probabilidad, se ve un poco como Windows o - ms probable - como el Mac
OS. Cuenta con una interfaz grfica de usuario (GUI) que le permite interactuar
con sus carpetas y archivos haciendo doble clic, clic derecho o izquierdo, o
arrastrando y soltando. Si quieres
Todo eso est muy bien, pero no hay otra manera de interactuar con Linux:
usando la interfaz de lnea de comandos (CLI). Con la CLI no hay imgenes;
nada que haga clic en. Para conseguir que su equipo haga algo, debe escribir
un comando de texto bien construido. A menudo, slo se sabr que su
comando se ha ejecutado con xito porque el equipo no responde. Si no
responde, algo
Eso suena como un trabajo duro. Realmente queremos que molestarse con
ella? S lo hacemos! Para empezar, de forma predeterminada, algunas
versiones de Linux arrancar directamente en el CLI. Para abrir la interfaz
grfica de usuario, con todas sus hermosas ventanas y mens, entonces tienes
que escribir el comando "startx" y pulse Intro. Pero eso es de ninguna manera
es la nica razn para poder familiarizarse
Con la lnea de comandos que puede hacer las cosas que no se puede hacer
uso de la interfaz grfica de usuario y se pueden hacer cosas fcilmente que
son difciles en la GUI. En comparacin con la interfaz grfica, la lnea de
comandos apenas utiliza cualquier tratamiento o grficos de potencia, por lo que
es grande si usted tiene un trabajo pesado para que el equipo haga. Y, si se
conecta remotamente a un Pi de frambuesa que no tiene su propio monitor,
entonces usted tendr que
Si eres nuevo en Linux, es posible que no est familiarizado con la lnea de
comandos en general y con los comandos de Linux en particular (que son a
veces similares a sus equivalentes de Windows, pero a menudo son
completamente diferentes). Este captulo es una breve introduccin a la magia de
la lnea de comandos. Contiene todo lo necesario para
N otas:
N otas:
El shell Bash
Para utilizar la CLI, lo que necesita saber los comandos. El conjunto de comandos por defecto
est contenida en la "cscara" que est utilizando. Hay un montn de conchas por ah, pero el
de este Raspberry Pi se llama "Bash". Bash es el shell de lnea de comandos por defecto
en la mayora de versiones de Linux, as como Mac OS, por lo que vale
la pena aprender.
Este captulo cubre muchos de los comandos ms comunes y tiles. Si usted
no puede encontrar el comando que necesita, intente buscar en lnea. Hay un
montn de buenos guas en
Tip ...
Si conoce el comando que desea usar, pero no sabe exactamente cmo usarlo
- Por ejemplo, usted no sabe exactamente la "sintaxis" derecho - se puede utilizar el
comando "man" (manual) en Linux. En la lnea de comandos puede escribir:
$ Man <comando>
hombre
Muestra informacin sobre el blanco, procedente de los manuales de
referencia en lnea.
El "sintaxis" de un
comando significa
la manera que
debe ser escrito
para hacerlo
funcionar. Que
significa el orden
de las palabras,
as como cualquier
puntuacion
importante que
tambin es
N otas:
$ Info <command>
info
Muestra documentacin en lnea sobre el objetivo.
MARCADOR
N otas:
ls -l / home / brian
Interruptor de
comandos
Objetivo
ls
Enumera los contenidos de directorios.
Interru
ptor
Parmetros
Objetivo
monte
Hace una estructura de archivos disponibles en una nueva ubicacin.
N otas:
cd ..
Por ejemplo, si est trabajando en la carpeta "/ home / brian / Documentos /
Proyecto", el comando "cd .." le tomara de nuevo a "/ home / brian / Documents".
Asegrese de dejar un espacio entre las letras "CD" y los dos puntos, de lo
contrario el
Para obtener ms informacin sobre el comando "cd" ver su entrada de
Wikipedia:
http://en.wikipedia.org/wiki/Cd_%28command%2 9
CD
Cambia el directorio de trabajo actual.
Tip ...
Los nombres de
archivos y
directorios
(carpetas) son
entre maysculas
y minsculas en
Linux, por lo que
el archivo
"my_stuff" es
$ ls
An_Gott_und_meine_Mutter.mid programacin domstica aparatos
test.mid An_Gott_und_meine_Mutter.mscz Ingeniera Fsica Cuntica
Tutora FluidR3 _ GM.ins Escuela Windaz
En el segundo, utilizamos "ls -l". Esto muestra los archivos en formato largo, que
le dice,
entre otras cosas, el tamao, el propietario y la seguridad en la configuracin de
$ Ls -l
total de 336
-rw-rw-r--. 1 brian brian 2429 02 de abril 20:27
An_Gott_und_meine_Mutter.mid
-rw-rw-r--. 1 brian brian 4085 02 de abril 19:52
An_Gott_und_meine_Mutter.mscz drwxrwxr-x. 4 brian brian 4096 02 de abril
20:38 electrodomsticos
No te preocupes, vamos a entrar en los detalles de esta
informacin ms adelante.
Para saber ms acerca de los "ls" de comandos, echar un vistazo a su entrada de
Wikipedia:
http://en.wikipedia.org/wiki/L s
N otas:
chown
Cambia la propiedad de uno de los ms archivos.
chgrp
Cambia el grupo de uno o ms archivos.
N otas:
Indica un directorio
Indica un enlace
Indica un archivo
Acceso de lectura
w Acceso de escritura
x
-
Por lo tanto, si los tres grupos tuvieron los tres tipos de acceso, veramos
"rwxrwxrwx". Sin embargo, cada vez que alguien no tiene un tipo de acceso, es
reemplazado su carta
Si volvemos a mirar nuestro ejemplo anterior, podemos
ver que:
lBrian ha de lectura y escritura en el archivo.
lLos miembros del grupo llamado "estudiantes" tambin han de lectura y
escritura en el archivo.
lTodos los dems (el "mundo"), slo tiene acceso de lectura al archivo.
La bandera "x" no aparece en absoluto. Recuerde, X representa la capacidad
de ejecutar un archivo.
Si la x de la bandera no se establece a continuacin, el archivo no se ejecutar
Pero lo que si queremos cambiar los permisos del archivo? Hay varias maneras
de utilizar el comando "chmod" para hacer esto, pero probablemente el ms fcil
es utilizar
u
para el
usuario /
propietario
u
n
para el grupo
N otas:
N otas:
chmod o + w brotplot.odt
Esto significa agregar el acceso de escritura para el grupo "otros" a
"brotplot.odt". Aadir es
indicado por el signo "ms".
chmod u + x brotplot.odt
Esto significa agregar ejecutar acceso para el usuario / propietario
para "brotplot.odt".
Para obtener ms informacin sobre el comando "chmod" ver su entrada de
Wikipedia:
http://en.wikipedia.org/wiki/Chmo d
chmod
Cambia el modo de acceso (permisos) de uno o ms archivos.
N otas:
sudo
Si tiene los permisos adecuados, ejecute el siguiente comando como
superusuario.
passwd root
Se le pedir que introduzca y confirme una nueva contrasea de root. Suponiendo que usted
puede llegar a introducir la misma contrasea dos veces, ahora tiene un usuario root y usted
N otas:
rm -r -f / *
Tip ...
Esto eliminar todos los archivos en todo el
sistema.
O es posible que distradamente
tipo:
$ Rm -r -f ./*
Eso sera simplemente eliminar los archivos en el directorio actual. Y que no
suelen obtener advertencias como usuario root (excepto sta). La primera cosa
que usted sabe sobre su
Utilice slo los privilegios de root cuando
realmente los necesite.
Para obtener ms informacin sobre el comando "su". consulte la entrada de
Wikipedia:
http://en.wikipedia.org/wiki/Su_%28Unix%2 9
Do
Convirtase en superusuario.
passwd
Crear o cambiar una contrasea asociada con el usuario
identificado.
No utilice nunca
estos comandos
cuando se opera
como
superusuario!
tocar
Actualizar el tiempo de acceso y modificacin de tiempo del archivo
con el nombre (y fechas) a la hora y fecha actuales. Si un archivo no
existe entonces un nuevo archivo se crear con un tamao de archivo
de 0.
mkdir
Crear uno o varios directorios en la ubicacin actual.
Eliminar un archivo
Para eliminar un archivo, vaya de que la ubicacin del
archivo y escriba:
$ Rm <nombre de archivo>
Para obtener ms informacin sobre el comando "rm", consulte la entrada de
Wikipedia:
http://en.wikipedia.org/wiki/Rm_%28Unix%2 9
rm
Quitar (eliminar) uno o ms archivos en la ubicacin actual.
N otas:
N otas:
Remove un dyorector y
Para eliminar un directorio, vaya a su ubicacin y el
tipo:
rmdir
Quitar (eliminar) uno o ms directorios en la ubicacin actual, siempre
y cuando estn vacos.
N otas:
N otas:
instalado
estos.
Para
Windows,
puede
descargar
PuTTY
N otas:
Qu es un servidor X?
Un ordenador Linux (u otro sistema Unix) que se ejecuta una interfaz grfica de
usuario es casi seguro que ejecutan "X", y tambin un servidor X. El X enva
comandos al servidor X sobre
Esto significa que la interfaz grfica de usuario y el servidor de X estn
separados. Esto tambin significa que puede ejecutar un programa en el
Raspberry Pi y tienen la salida grfica aparece en la pantalla del servidor X en
otro lugar de la red. Esto elimina una gran cantidad de demanda procesador de
la Frambuesa Pi. Y tambin significa que usted puede conectar su Raspberry
Pi en su red, en lugar de darle su propio
N otas:
brian @ raspberrypi: ~$
Midori y [1] 5773
Tenemos que incluir el smbolo "&" despus del nombre del programa, porque este le
dice al servidor para lanzarlo como un proceso independiente, lo que significa que
conseguimos nuestro comando
Recibimos la respuesta "[1] 5773", que es el nmero de proceso del Midori
programa ahora corriendo.
A veces obtendr errores GTK, que reportan deficiencias biblioteca en el host
(RPI) o servidor (el servidor X), pero el proceso es bastante robusto.
Midori se ejecuta en
remoto
Gnome 3 UI utilizando
el
Que es lo
siguiente?
Si usted ha trabajado a travs de este manual usted tiene una buena
comprensin de los conceptos bsicos de la informtica y usted ser capaz de
escribir un programa informtico para resolver problemas sencillos. Esta pena
repetirlo: se puede escribir una serie de instrucciones para hacer que un equipo
haga algo. Esta simple declaracin abarca un conjunto de poderosas habilidades
de pensamiento que incluyen el razonamiento lgico, la resolucin de problemas,
diseo de algoritmos y mucho ms. A partir de ahora, usted ya no es slo un
consumidor de productos digitales
Esperamos que esta breve introduccin que ha demostrado la utilidad de la
informtica, emocionante y divertido es como un hobby o una carrera. Si, en cualquier
momento mientras se sigue esta gua, sonri para s mismo o gritaste abajo, "Venid y
ved lo que he hecho!", Entonces hemos hecho nuestro trabajo - esto es, despus de
todo, por qu la Raspberry Pi se hizo. Si no ir ms lejos con su viaje Raspberry Pi,
entonces por lo menos saber lo que todo el alboroto y que no es tan difcil como la
gente piensa. Es muy probable, sin embargo, que usted ha cogido el gusanillo de
computacin y quieres
Y ahora qu? Realmente no hay manera correcta o incorrecta para continuar su
exploracin de la Raspberry Pi. Todo depende de lo que te interesa. Podra ser
tan simple como conseguir mejor en su lenguaje de programacin elegido, o la
mejora de sus habilidades de la lnea de comandos de Linux. Los proyectos
pequeos, como por ejemplo la creacin de un servidor de medios en casa o
escribiendo un juego simple, son tambin una buena manera de empezar. En
algn momento, la mayora de la gente quiere tener un ir en la interfaz del
Raspberry Pi con el mundo exterior (este es uno de sus puntos fuertes),
utilizando una tabla de ruptura como el Gertboard, o haciendo su propia interfaz.
Una vez ms, un proyecto simple como el monitoreo
A medida que su comprensin de la Raspberry Pi crece y mejorar sus
habilidades de programacin, usted encontrar que sus proyectos se vuelven
ms y ms compleja, y que el Raspberry Pi se convierte en una herramienta
muy til para la experimentacin y la creatividad. Mantenga prctica - una de
las cosas bellas acerca de la programacin es que se puede tener un archivo
de texto en blanco y crear algo que antes slo exista en su cabeza.
W sombrero
nex t?
169
N otas:
Programacin
La primera pregunta que los nuevos en la programacin se preguntan es:
"Cul es el mejor lenguaje para aprender?" En pocas palabras - no hay uno.
Slo discutir lenguajes de programacin llenara otro volumen (y te hara garra
frenticamente a su
Cada idioma tiene sus ventajas, desventajas y usos particulares, y todos los
programadores tienen sus favoritos. Todo puede ser un poco, que no es tan til
si no sabes por dnde empezar "es mejor que tu pap Mi pap". En ltima
instancia, son los conceptos computacionales subyacentes que se aprende
durante la programacin que realmente
La primera lengua que se aprende no es importante. Elige uno y obtener la
programacin!
[Actualizacin: el autor de esta declaracin ha tenido desde que esconderse,
despus de que fue atacado en su supermercado local por una horda de
programadores enojados, que arroj
Por lo tanto, elegir un idioma y empezar. A menos que tenga razones para no
hacerlo, luego continuar con Python parece sensato. Con el tiempo, aprender
otros idiomas
W sombrero
nex t?
170
N otas:
N otas:
W sombrero
nex t?
171
N otas:
se
ha
aadido
Menos desafos en lnea formales pueden ser un gran motivador. Estos existen
para
ambos
lenguajes
especficos,
como
el
adictivo
Python
Desafo
El fin
Esperamos que usted haya encontrado este manual til y que el aprendizaje de
programa ha sido como la mente en expansin como lo fue para los autores cuando
escribieron sus primeras lneas de cdigo. Las computadoras son cosas asombrosas
y ser capaz de controlarlos es un
Mantenga en la programacin, la piratera, jugar, experimentar y crear. Y por encima
todo, divertirse!
W sombrero
nex t?
172