Tutorial Completo Raspberry Pi

Guía práctica desde configuración básica hasta proyectos avanzados

1. Resumen de Raspberry Pi B+

Características principales

Procesador Broadcom BCM2835 (ARM11 700MHz)
RAM 512MB
Conectividad 4 USB 2.0, Ethernet 10/100
GPIO 40 pines

Comparación con modelos recientes

Característica Pi B+ Pi 4
CPU 1 núcleo 700MHz 4 núcleos 1.5GHz
RAM 512MB 2GB-8GB
USB 4x USB 2.0 2x USB 3.0, 2x USB 2.0

Usos recomendados

  • Proyectos educativos
  • Control básico de GPIO
  • Servidores ligeros
  • Prototipado electrónico

2. Conexión SSH y VNC

Conexión por SSH

1

Habilitar SSH

sudo raspi-config # Seleccionar Interfacing Options > SSH > Enable
2

Conectar desde otro dispositivo

ssh pi@192.168.1.100 # Contraseña predeterminada: raspberry

Conexión por VNC

1

Instalar servidor VNC

sudo apt install realvnc-vnc-server
2

Habilitar en raspi-config

sudo raspi-config # Interfacing Options > VNC > Enable

3. Configurar VNC para Tablet

Ajustar resolución

sudo nano /boot/config.txt

Añadir estas líneas para resolución 1280x720:

hdmi_group=2 hdmi_mode=85 hdmi_force_hotplug=1

Configuración en cliente VNC

Android/iOS

  • Usar aplicación RealVNC Viewer
  • Activar opción "Scale to fit"
  • Ajustar calidad según conexión

Windows/Mac

  • Descargar VNC Viewer
  • Configurar tamaño de pantalla fijo
  • Usar compresión para mejor rendimiento

4. Python en Raspberry Pi

Librerías esenciales

RPi.GPIO

import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.OUT)

gpiozero

from gpiozero import LED led = LED(17) led.on()

Ejemplo completo: Control LED

from gpiozero import LED, Button from signal import pause led = LED(17) button = Button(2) button.when_pressed = led.on button.when_released = led.off pause()

5. Interfaz Tkinter para Arduino

Código completo

import tkinter as tk from tkinter import scrolledtext import serial class SerialMonitor: def __init__(self, root): self.root = root self.root.title("Monitor Serial") # Configuración serial self.serial_port = serial.Serial('/dev/ttyACM0', 9600, timeout=1) # Interfaz self.text_area = scrolledtext.ScrolledText(root, width=60, height=20) self.text_area.pack(pady=20) # Botones btn_frame = tk.Frame(root) btn_frame.pack() tk.Button(btn_frame, text="Limpiar", command=self.clear).pack(side=tk.LEFT) tk.Button(btn_frame, text="Salir", command=root.quit).pack(side=tk.LEFT) # Actualización periódica self.update_serial() def update_serial(self): if self.serial_port.in_waiting: data = self.serial_port.readline().decode('utf-8').strip() self.text_area.insert(tk.END, data + '\n') self.text_area.see(tk.END) self.root.after(100, self.update_serial) def clear(self): self.text_area.delete(1.0, tk.END) if __name__ == "__main__": root = tk.Tk() app = SerialMonitor(root) root.mainloop()

Instalación requerida

sudo apt install python3-tk python3-serial