Sei sulla pagina 1di 27

PROYECTO DE SISTEMAS

OPERATIVOS
SISTEMAS DE CONTROL DESDE EL TERMINAL DE LINUX
JUAN CARLOS GUAA
OSCAR ESPAA
JULIO GONZALEZ

OBJETIVOS
Revisin de los dispositivosopen source
hardwaredisponibles en el mercado.

Explicar laarquitectura de un sistema informtico.


Desarrollar una aplicacin sobreel S.O. GNU/Linux.
Presentar la aplicacin fundamentada con conceptos
de S.O.

OPEN SOURCE HADWARE


El hardware de cdigo abierto es un trmino para denominar artefactos tangibles como
mquinas, dispositivos, u otros objetos del mundo fsico cuyo diseo ha sido publicado de
forma tal que cualquier persona pueda fabricar, modificar, distribuir y usar esos objetos.

Arduino y Raspberry PI son dos de los ms conocidos del momento en cuanto a


posibilidad de desarrollo. Sin embargo, ambas plataformas no son estrictamente libres
como por ejemplo, en Raspberry PI lo es el software y sus controladores, dado que sus
componentes pertenecen a marcas comerciales.

El modelo de Arduino ha tenido un gran impacto en el medio tecnolgico debido a su


gran sencillez y capacidad de uso en el terreno del Hardware Libre actual y a partir de
este dispositivo podemos hacer una variedad de dispositivos con mltiples propsitos.

ARQUITECTURA DE UN SISTEMA
INFORMTICO (COMPUTACIONAL)
Es el trmino general que se aplica a la estructura de un
sistema informtico o de una parte del mismo. El trmino se
aplica as mismo al diseo del software de sistema por
ejemplo el sistema operativo y tambin se refiere a la
combinacin de hardware y software.

La arquitectura de ordenadores se refiere a toda una


estructura y a los detalles necesarios para que sta sea
funcional.

ARDUINO
Arduinoes una plataforma de hardware de cdigo abierto,
basada en una sencilla placa con entradas y salidas,
analgicas y digitales, en un entorno de desarrollo que
est basado en el lenguaje de programacin Processing.
Es un dispositivo que conecta el mundo fsico con el
mundo virtual, o el mundo analgico con el digital.

Esencialmente debemos entender una cosa y es


queArduino es un microcontrolador programable.Es
decir, lo conectamos a nuestro ordenador y le
programamos una funcin a sus sensores.

CARACTERISTICAS DEL ARDUINO UNO


Microcontroladores: ATmega328
Tensin de funcionamiento: 5V
Voltaje de entrada: 7-12V
Voltaje de entrada: 6-20V
Digital pines E/S: 14 (de las cuales 6 proporcionan salida PWM)
Pines de entrada analgica:6
Corriente DC por Pin E/S: 40 mA
Corriente DC de 3.3V Pin: 50 mA
Memoria Flash 32 KB ( ATmega328 ) de los cuales 0,5 KB utilizado por el gestor de
arranque

SRAM 2 KB ( ATmega328 )
EEPROM 1 KB ( ATmega328 )
Velocidad del reloj: 16 MHz

ENTORNO DE DESARROLLO
DE ARDUINO
Para programar la placa es necesario descargarse de la
pgina web de Arduino el entorno de desarrollo (IDE). Se
dispone de versiones para Windows y para MAC, as como las
fuentes para compilarlas en LINUX. Existen en la web
versiones para distintos sistemas operativos.

ESTRUCTURA BSICA DE UN PROGRAMA


La estructura bsica de programacin de Arduino es bastante simple y divide
la ejecucin en dos partes: setup y loop.

Setup() constituye la preparacin del programa y loop() es la ejecucin. En la


funcin Setup() se incluye la declaracin de variables y se trata de la
primera funcin que se ejecuta en el programa. Esta funcin se ejecuta una
nica vez y es empleada para configurar el pinMode (p. ej. si un determinado
pin digital es de entrada o salida) e inicializar la comunicacin serie.

La funcin loop() incluye el cdigo a ser ejecutado continuamente (leyendo


las entradas de la placa, salidas, etc.).

void setup()
{
inMode(pin, OUTPUT); // Establece 'pin' como salida
}
void loop()
{
digitalWrite(pin, HIGH); // Activa 'pin'
delay(1000);
// Pausa un segundo
digitalWrite(pin, LOW); // Desactiva 'pin' delay(1000);
}

COMUNICACION SERIE ARDUINO - PC

El puerto serie del Arduino Uno usa los pins 0(RX) y 1(TX). Estos estn conectados al
controlador FTDI (ATmega 16u2) que es el que permite la traduccin del formato serie
TTL a USB. Estos pins no pueden ser utilizados mientras se usa la comunicacin serie.
El puerto serie del Arduino utiliza un buffer de 64 bytes. Para entender el uso del buffer
normalmente se usa el ejemplo de la sala de espera del mdico. Esta sala de espera es
el buffer, que tiene una capacidad de 64 pacientes. Cada paciente es 1 byte. Para usar
el puerto serie del Arduino hay varias funciones de programacin que hay que saber:

-begin(velocidad) Abre el puerto serie y establece la velocidad. La velocidad de


conexin(baudios o Baud Rate) es la velocidad que llegan los datos al puerto
serie.Normalmente se usa 9600bps o 115000bps.
-available() Esta funcin devuelve el estado del buffer del puerto serie y rebela si hay
datosdentro de este.
-read() Lee un carcter del buffer. Es importante entender que lee un solo carcter (byte).
-write() Escribe caracteres a travs del puerto serie. A diferencia de read(), escribe
tantoscaracteres como quieras.
-print() Imprime los datos al puerto serie como texto ASCII.
-println() Imprime los datos al puerto serie como texto ASCII seguido de un retorno de
carro(ASCII 13, o \r) y un carcter de avance de lnea (ASCII 10, o \n). Este comandotiene
la mismaforma queSerial.print().
-flush() Vaca el buffer de entrada de datos.
-end() Desactiva la comunicacin serie, permitiendo a los pines 0(RX) y 1 (TX) ser
usadoscomo entradas o salidas digitales. Para volver a activar la comunicacin serie, llamar
lafuncinSerial.begin().

En este cdigo usamos una librera llamada #include<termios.h> que es


la que se encarga de abrir el puerto COM SERIAL, manejar la velocidad de
los baudios, la entrada y salida de datos asi como los caracteres que se
van a manejar y el tamao en bits, esta libreeria es en realidad una
estructura que maneja entradas y salidas, de datos(strings,enteros,etc).
Tambin podemos apreciar el uso funciones, condicionales, bucles.
El manejo de la librera #include<stdlib.h> para el uso de string de
caracteres.
Para la entrada y salida de datos desde y hacia al Arduino, usamos lo
que es comunicacin COM o puerto Serie, por el cual van a navegar los
datos.
en el siguiente programa en C, enviamos y recibimos los mismos, desde
y hacia nuestro dispositivo open source.
Nota: Para poder utilizar el puerto que en nuestro caso fue /dev/ttyACM0
debemos antes de eso colocar en el terminal
sudo chmod 777 /dev/ttyACM0

DESARROLLO DEL PROGRAMA EN C (GNU/LINUX)


1. Para iniciar testeamos para, un diagnostico del Arduino y si este se
encuentra conectado
Para esto usamos el comando lsusb

2. Una vez comprobada la conexin del Arduino, vamos a ver cual es el


puerto en el cual se encuentra conectado.
Esto lo hacemos con el comando dmesg | grep Arduino

Una vez testeado el puerto de la conexin del Arduino, que en nuestro


caso fue el puerto /dev/ACM0 proseguimos a realizar el cdigo.

3. Para la realizacin del cdigo utilizamos el terminal del


GNU/LINUX usando el editor gedit

Codigo en C

DESARROLLO DEL PROGRAMA EN


ARDUINO

CIRCUITO ESTADO DEL SISTEMA

CIRCUITO MODELO DE CONTROL DE UN


MOTOR

Potrebbero piacerti anche