PDF de programación - Programando en Java Raspberry Pi

Imágen de pdf Programando en Java Raspberry Pi

Programando en Java Raspberry Pigráfica de visualizaciones

Publicado el 25 de Abril del 2019
1.378 visualizaciones desde el 25 de Abril del 2019
559,6 KB
65 paginas
Creado hace 8a (08/05/2015)
Programando en Java

Raspberry Pi (RPi)

2015/05/08
Juan V. Capella

Contenido

● Objetivo



Introducción

● Tecnología Java
● Clases y objetos. Herencia
● Aplicaciones y Applets
● Tipos de datos y estructuras
● Operadores
● Networking
● GPIO
● GUI

armpower.blogs.upv.es

2

Objetivo



Introducirse en la programación en Java con la Raspberry Pi

● Aprender a desarrollar aplicaciones distribuidas

armpower.blogs.upv.es

3

Introducción

● Lenguaje de programación desarrollado por Sun Microsystems a principios

de los años 90

● La motivación principal Java: Write Once, Run Anywhere

● Proporcionar un lenguaje independiente de la plataforma y un entorno de ejecución ligero y

gratuito, para poder implementarlo en cualquier dispositivo

● Al tener que ser ejecutado mediante la JVM hace que no sea tan rápido

como con otras opciones, por ejemplo C/C++.

● Java es Orientado a Objetos
● Java es Multi-hilo
● No hay punteros
● Recolección de Basura “Garbage Collection”

● Responsable de liberar cualquier memoria que pueda ser liberada. Esto se realiza de

manera automática durante la vida del programa Java.

● El programador se libera de la carga de tener que liberar la memoria no utilizada.

● Seguridad



Java fue diseñado para hacer más fácil el desarrollo de código sin bugs

armpower.blogs.upv.es

4

Tecnología Java

● Lenguaje programación (JAVA)
● Entorno de desarrollo (JDK). Herramientas:

● Compilador (javac)



Intérprete (java)

● Generador de documentación (javadoc)
● Una herramienta para empaquetar los .class
● Etc…

● Entorno en tiempo de ejecución de Java (JRE)



formado por una Máquina Virtual de Java (JVM), un conjunto de bibliotecas Java
y otros componentes necesarios para que una aplicación escrita en lenguaje
Java pueda ser ejecutada

armpower.blogs.upv.es

5

Fases

Proceso generación

Proceso ejecución

Código fuente

Byte‐Code

Fichero 
.java

Compilación

Fichero 
.class

Plataforma 
Windows

Plataforma 

Linux

Plataforma 



Resultados

Java Virtual Machine (JVM)

Tarea

Escribir el programa

Herramienta a
usar
Cualquier editor de
texto o IDE

Compilar el programa Compilador Java

Ejecutar el programa

(javac)
Intérprete Java
(java)

Salida

Fichero .java

Fichero .class
(Java bytecodes)
Salida programa

armpower.blogs.upv.es

6

Clases y objetos

● Las clases están compuestas por un conjunto

de miembros (datos y funciones)

● Una clase se usa como el modelo que deben

seguir los objetos

● Un objeto es una instancia de una clase
● Las clases y objetos son similares a los tipos

de datos y a las variables

armpower.blogs.upv.es

7

Clases y objetos

class Persona {

int dni;
String nombre;
int peso;
string profesion;

}

Definición de clase

Creación de objeto

Persona juan = new Persona();

armpower.blogs.upv.es

8

Herencia

Vehículo

Clase base o
superclase

Dos_Ruedas

Cuatro_Ruedas

Bicicleta

Moto

Coche

Camión

Clases derivadas o subclases

armpower.blogs.upv.es

9

Una aplicación en Java

Toda aplicación java debe
estar dentro de una clase

Método main()

public class HolaMundo {

public static void main(String [] args) {
System.out.println(”¡Hola Mundo!”);
}
}

armpower.blogs.upv.es

10

Applets

● Programa escrito en Java que puede ejecutarse en un navegador
web utilizando la Java Virtual Machine (JVM), o en el AppletViewer
de Sun.

Código fuente

Byte‐Code

Fichero 
.java

Compilación

Fichero 
.class

<html>

<APPLET CODE = 
“miApplet.class” width
= 100 height = 100>
</APPLET>


Resultados

armpower.blogs.upv.es

11

Un applet en Java

Importación de paquetes

import java.awt.*;
import applet.Applet;
public class miApplet extends Applet {

public void paint(Graphics g) {
g.drawString(”¡Hola Mundo!”,50,50);
}
}

Los Applets no tienen

método main()

armpower.blogs.upv.es

12

Tipos de datos

● byte, short, int, long
● float, double
● boolean

armpower.blogs.upv.es

13

La clase String

● Se usa para almacenar cadenas de caracteres.
● Se pueden usar para: examinar los caracteres

contenidos en un texto, buscar subcadenas, comparar
cadenas, etc.

armpower.blogs.upv.es

14

Vectores en Java

● Almacenan valores de un mismo tipo
● El índice del vector identifica cada elemento

int vect[] = {2,7,1};
String[] s = {“hola”, “mundo”};

armpower.blogs.upv.es

15

Estructuras de control en Java: if

● if(){ }
● if(){ }else{ }
● if(){ }else if(){ }

armpower.blogs.upv.es

16

Estructuras de control en Java: Bucles

● for(;;){}
● while(){}
● do{}while();

armpower.blogs.upv.es

17

Estructuras de control en Java: switch-case
int a = 2;
switch(a){

case 1: a++;
break;
case 2: a = a + 4;
break;
default: a = a + 50;

}

armpower.blogs.upv.es

18

Declaración de variables

● Se pueden declarar variables en cualquier lugar del código
● Al declarar la variable podemos inicializar el contenido
● No se permite el uso de variables sin previa inicialización

int numCoches, identificador;

armpower.blogs.upv.es

19

Alcance y bloques de código

● Los bloques se definen con {}
● Las variables declaradas en ese bloque solo existen en

ese bloque

{
int numCoches = 0;
}
{
numCoches++
}

Dará error!

armpower.blogs.upv.es

20

Conversión de tipos

● La conversión automática se realiza siempre que el tipo de

la expresión a la derecha pueda ser transformado de
forma segura al tipo de la expresión a la izquierda
● Vamos, que no se puede convertir automáticamente un

float a un int porque el primero requiere de más
espacio de almacenamiento que el segundo, lo que
puede resultar en pérdida de información

● Para forzar la conversión → conversión explicita:

int v1;
float v2=3.47;
v1 = (int) v2;

armpower.blogs.upv.es

21

Operadores

● ==
● !=
● >
● <
● <=
● >=
● &&
● ||
● !

armpower.blogs.upv.es

22

Interfaz de programación en red:

Sockets en JAVA

● Al comunicarse dos procesos siguen un modelo Cliente / Servidor:

1. Petición

cliente

Internet

servidor

2. Respuesta

Cliente:
●Inicia la comunicación
●Solicita un servicio al servidor
●Ejemplo:

● Un cliente web solicita una página

Servidor:
● Espera peticiones
● Proporciona el servicio solicitado
● Ejemplo:

● El servidor web envía la página

solicitada por el cliente

armpower.blogs.upv.es

23

Interfaz de programación en red:

Sockets en JAVA

● Clientes y servidores utilizan protocolos de transporte

Los procesos de las

aplicaciones residen en
el espacio de usuario

HTTP

POP3

FTP

DNS

Los procesos de los

protocolos de

transporte forman

parte del S.O.

TCP

API

Red

UDP

Enlace de datos

Físico

●Se necesita un mecanismo para ponerlos en contacto
● API (Application Programming Interface)

armpower.blogs.upv.es

24

API socket

● Permite a las aplicaciones utilizar los protocolos de la

pila TCP/IP

● Define las operaciones permitidas y sus

argumentos
● Parecido a la forma de acceder a los

FTP

ficheros en Unix

● Operaciones: open, read, write, close

HTTP

POP3

DNS

socket
socket
socket

socket socket
TCP

socket
UDP

Red

Enlace de datos

Físico

armpower.blogs.upv.es

25

Socket

● Es una abstracción del sistema operativo

● Las aplicaciones los crean, los utilizan y los cierran cuando ya

no son necesarios

● Su funcionamiento está controlado por el sistema operativo

● Comunicación entre procesos

● Los procesos envían y reciben mensajes a través de sockets
● Los mensajes fluyen entre sockets

proceso
socket
Transpor
te
Enlace
Físico

Red

proceso
socket
Transpor
te
Enlace
Físico

Red

Internet

Identificación de los sockets

● La comunicación en Internet es de socket a socket
● El proceso que está comunicándose se identifica en

Internet por medio de su socket
● El socket tiene un identificador
Identificador = dir. IP del computador + núm. puerto

IP:128.1.1.1
Puerto:
1245

cliente
socket
Transpor
te
Enlace
Físico

Red

servidor
socket
Transpor
te
Enlace
Físico

Red

IP:62.3.3.
3
Puerto:
80

Internet

Tipos de sockets

● Sockets TCP

● Sockets UDP

● Las aplicaciones piden al

S.O. una comunicación
controlada por TCP:

● Orientada a la conexión
● Comunicación fiable y

ordenada

● También se denominan
sockets de tipo Stream

● Las aplicaciones piden al

S.O. una comunicación
controlada por UDP:

● Transferencia de bloques

● También se denominan

sockets de tipo Datagram

de datos

● Sin conexión ni fiabilidad ni

entrega ordenada
● Permite difusiones

cliente
socket

TCP

servidor

sock
et
TCP

bytes

cliente
socket
UDP

servidor
socket
UDP

datagramas

Los sockets en Java

● Dentro del paquete java.net existen tres clases de

sockets:
TCP
● Socket
TCP
● ServerSocket
● DatagramSocket Cliente/Servidor UDP

Cliente
Servidor

● También hay otras clases auxiliares que facilitan la

programación de aplicaciones en red

http://java.sun.com
http://java.sun.com

Direcciones IP en Java

Clase InetAddress
● InetAddress es la clase que se utiliza para

almacenar direcciones IP

● Algunos métodos importantes

● InetAddress getByName(String nombre)

● Obtiene la dirección IP asociada a un nombre

● String getHostAddress()

● Devuelve la dirección IP en formato "aa.bb.cc.dd"

● String getHostName()

● Devuelve el nombre del host

Sockets TCP

● Cliente:

● Crea un socket (sclient) y

lo conecta con el del
servidor

● Transfiere información

● Cierra el socket y la

conexión (a veces lo hace
el servidor)

● Servidor:

● Ha de estar en ejecución

cliente

sclient

cliente

sclient

cliente

sclient

servidor

sclient = new Socket(...)

sserv

in.readLine()
out.print()

sclient.close()

servidor

sserv

servidor

sserv

● Debe haber creado un socket (sserv) donde recibir a

los clientes que conectan con él

Clientes TCP

Clase Socket
● Constructores

● Socket(InetAddress dirIP, int puerto)

● Socket(String nombre, int puerto)

● Crea un socket y lo conecta con el servidor indicado
● Socket(InetAddress dirIP, int puerto,

InetAddress dirIPLocal, int puertoLocal)

● Socket(String no
  • Links de descarga
http://lwp-l.com/pdf15795

Comentarios de: Programando en Java Raspberry Pi (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad