Sie sind auf Seite 1von 21

Hardware para Linux Embebido

BeagleBone Black

Raspberry Pi B+

Cubie Board

ODROID-XU3

1
Linux Embebido - CDIP.SE 04

Hardware para Linux Embebido

Galileo Gen I

Radxa ROCK

WRTnode
2
Linux Embebido - CDIP.SE 04

Comandos en Linux Embebido


BUSY BOX

Es un programa que combina muchas utilidades


estndares de Unix/Linux en un solo ejecutable.
Posee varios comandos:

www.busybox.net

ls

Muestra el contenido de un directorio

touch

Cambia

fecha

hora

de

archivos

crea archivos vacos

cp

Copia archivos y directorios

mv

Mueve (renombra) archivos

mkdir

Crea directorios

rm

Remueve archivos y directorios

chmod

Cambiar permisos de un archivo

less

Visor de archivos similar al more

echo

Escribe un archivo

cat

Lee un archivo

vi

Editor de archivos
3
Linux Embebido - CDIP.SE 04

Comandos en Linux Embebido


BUSY BOX

www.busybox.net

Posee varios comandos:

echo

Simplemente enva al terminal los argumentos pasados

cat

Muestra en pantalla el contenido archivo

tail

Permite examinar el final de un archivo

head

Permite examinar el comienzo de un archivo

sort

Ordena una lista o un archivo

chmod

Cambia los permisos de un archivo o directorio

ln

Crea enlaces de archivos (duros y blandos)

ps

Lista los procesos que se estn ejecutando

pgrep

Busca procesos especificados

pstree

Ver los procesos en formato de rbol

jobs

Control de tareas y p

fg

Enva los procesos a primer plano

bg

Enva los procesos a segundo plano

Para practicar: Mquina Virtual Online con BusyBox


4
Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido


BUSY BOX

Como crear un Script para luego poder ejecutarlo


1) Conectarse por SSH a la placa

SSH
www.busybox.net

2) Crear un archivo con el encabezado correspondiente


#

echo "#!/bin/ash" > script.sh

3) Cambiar los permisos para permitir la ejecucin


#

chmod [permisos] script.sh

Permisos:
777 - Rwxrwxrwx
755 - Rwxr-xr-x

4) Ejecutamos el script
#

./script.sh
5
Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido


BUSY BOX

Como

editar

un

Script

1) Una vez conectado por por SSH a la placa


SSH
www.busybox.net

2) Instalaremos el editor nano que es simple de usar. Para ello


actualizamos los repositorios
#

opkg update

3) Completado esto, se procede a solicitar la instalacin del editor


#

opkg install nano

4) Para editar el script.sh creado anteriormente ejecutamos:


#

nano script.sh
6
Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido


BUSY BOX

Ejemplo 1: echo

cat

Archivo: ejemplo01_echo_cat.sh
#!/bin/ash
www.busybox.net

echo "Se muestra en pantalla esta lnea"

$(echo "Contenido a colocar en" > archivo.txt)

echo "Se escribio el archivo..."

cat archivo.txt

7
Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido


BUSY BOX

Ejemplo 2: for
Archivo: ejemplo02_for.sh
#!/bin/ash

www.busybox.net

echo "Comienzo del bucle"

for i in $(seq 0 5)
do
echo $(date -u)
$(sleep 1s)
done

echo "Fin del bucle"

8
Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido


BUSY BOX

Ejemplo 3: if
Archivo: ejemplo03_if.sh
#!/bin/ash

www.busybox.net

local var1
var1="texto"

if [ "${var1}" = "texto" ]
then
echo "Dentro del if"
fi

9
Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido


BUSY BOX

Ejemplo 4: if
Archivo: ejemplo04_if.sh
#!/bin/ash

www.busybox.net

if [ -f /tmp/2015-10-09.txt ]
then
echo "El archivo existe."
else
echo "El archivo no existe."
fi

10
Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido


BUSY BOX

Ejemplo 5: while
Archivo: ejemplo05_while.sh
#!/bin/ash

www.busybox.net

while true
do
echo $(date -u)
$(sleep 1s)
done

11
Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido


BUSY BOX

Ejemplo 6: while
Archivo: ejemplo06_while.sh
#!/bin/ash

www.busybox.net

local variable1
variable1="texto"

while true
do
$(sleep 1s)
echo ${variable1}
done

12
Linux Embebido - CDIP.SE 04

Scripts en Linux Embebido


BUSY BOX

Ejemplo 7: while
Archivo: ejemplo07_while.sh
#!/bin/ash

www.busybox.net

local hora
hora=$(date)
$(sleep 10)

while true
do
echo ${hora}
hora=$(date)
$(sleep 1s)
done

13
Linux Embebido - CDIP.SE 04

Hardware Intel Galileo Gen I

Intel Quark SoC X1000 @ 400MHz


DDR3 256MB
10/100 Mbit Ethernet
PCI Express
Micro SD
USB 2.0
UART
RS-232
8 MB Flash
JTAG port

Arduino Shield Compatible

14 entradas/ salidas digitales (6 compatibles con PWM)


6 entradas analogicas
Bus I2C
Bus SPI
ICSP (SPI) in-circuit serial programming (6 pines)
UART (puerto serie)
VIN (alimentacin externa)
Salida 5V, 3.3V y GND ( voltajes de referencia)
Reset
14
Linux Embebido - CDIP.SE 04

Esquemtico Intel Galileo Gen I

15
Linux Embebido - CDIP.SE 04

Configurando los perifricos

16
Linux Embebido - CDIP.SE 04

Configurando los perifricos

# Configuramos el GPIO 28 como entrada


echo -n "28" > /sys/class/gpio/export
echo -n "in" > /sys/class/gpio/gpio28/direction

# Configuramos el GPIO 3 como salida


echo -n "3" > /sys/class/gpio/export
echo -n "out" > /sys/class/gpio/gpio3/direction

# Configuramos el GPIO 17 como salida PWM


echo -n "5" > /sys/class/pwm/pwmchip0/export
echo -n "1" > /sys/class/pwm/pwmchip0/pwm5/enable
echo -n "0" > /sys/class/pwm/pwmchip0/pwm5/duty_cycle
echo -n "1000000" > /sys/class/pwm/pwmchip0/pwm5/period

# Configuramos el Conversor Analogico Digital 0


echo -n "37" > /sys/class/gpio/export
echo -n "out" > /sys/class/gpio/gpio37/direction
echo -n "0" > /sys/class/gpio/gpio37/value

17
Linux Embebido - CDIP.SE 04

Leer o escribir una salida/entrada

# Leer la entrada del GPIO 28


cat /sys/class/gpio/gpio28/value

# Escribimos la salida del GPIO 3


echo -n "0" > /sys/class/gpio/gpio3/value
echo -n "1" > /sys/class/gpio/gpio3/value

# Off
# On

# Configuramos el GPIO 17 como salida PWM


echo -n "0" > /sys/class/pwm/pwmchip0/pwm5/duty_cycle
echo -n "1000000" > /sys/class/pwm/pwmchip0/pwm5/period

# Leer la entrada del Conversor AD 0


cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw

18
Linux Embebido - CDIP.SE 04

Conversor Analogico Digital (DAC)


Caractersticas importantes:

Resolucin:

Resolucin = Vmax / (L - 1)
L niveles = 2 ^ N bits

Frec. de muestreo:
f muestreo > 2 * f max de la seal

Ejemplos:
Vmax

DAC 8 bits

L = 256

Resolucin = 5V / (256 - 1) = 0,0196 V


0

DAC 10 bits

L = 1024

Resolucin = 5V / (1024 - 1) = 0,0049 V

19
Linux Embebido - CDIP.SE 04

Modulacin por Ancho de Pulso (PWM)


Caractersticas importantes:

Periodo ( T ):

Periodo = 1 / frecuencia

Ciclo til ( Duty Cycle):

Tiempo en que se encuentra activo

Ejemplos:

20
Linux Embebido - CDIP.SE 04

Problemas
1)

Crear un programa que prenda un led cuando se presione algn pulsador.


Nota: Usar GPIO3 para la salida del led

2)

Agregar al programa anterior el uso de un Buzzer, mediante la implementacin


del mdulo PWM
Nota: Usar en modo salida el D5 del Shield de expansin

3)

Reutilizando el cdigo anterior, modificar el periodo o frecuencia del tono


mediante el uso del conversor A/D.
Nota: Usar el la entrada A0 del Shield de expansin

4)

Escribir en un documento los datos del GPIO28 (D4) y el conversor A/D (A0).
Luego, hacer accesible va Web, mediante el uso de un navegador.
Nota: Usar el la entrada D4 y A0 del Shield de expansin. Adems escribir
dentro del la carpeta /www/pages/

Nota: Subir al claroline los 7 ejemplos y los 4 problemas, bajo el nombre de Tarea 2.
21
Linux Embebido - CDIP.SE 04