Cómo habilitar SPI / I2C en Raspberry Pi (y para qué usarlos)
La Raspberry Pi se puede utilizar para casi cualquier cosa. Desde los centros multimedia domésticos hasta las configuraciones personalizadas de juegos retro, es seguro decir que el Pi y las computadoras similares de una sola placa se están volviendo ubicuas.
Cuando empiezas a experimentar con los pines GPIO en Raspberry Pi, las cosas se ponen aún más interesantes. Ya hemos cubierto lo que hacen todos esos pines, así que ahora veamos cómo habilitar los protocolos SPI e I2C en tu Pi y por qué es posible que desees.
Qué es SPI en Raspberry Pi?
Antes de bucear, veamos brevemente qué hacen estos dos protocolos.
SPI (o Interfaz Periférica Serial) permite que un microcontrolador como el Pi se comunique con más de 100 componentes periféricos a la vez. El microcontrolador actúa como un “dominar” a todos los “esclavo” Componentes, y pueden comunicarse con ellos a alta velocidad. Este diagrama describe una conexión SPI simple:
Si es la primera vez que lee sobre SPI, puede parecer bastante intimidante, pero manténgalo.! SCLK es la velocidad de reloj establecida por el maestro que determina la velocidad a la que se comparte la información entre los dispositivos.
En cada ciclo (o “garrapata”) del reloj, tanto el maestro como el esclavo envían y reciben un bit de información. Esto es lo que el MOSI (Master Out Slave In) y MISO Los pines (Master In Slave Out) son para.
los SS o el pin Slave Select (marcado CE0 o CE1 en la Pi) se utiliza para indicar a un dispositivo esclavo que se comunique con el maestro, o no, en un momento dado. En la mayoría de los casos, cada dispositivo esclavo requiere su propio pin SS, pero puede compartir los pines SCLK, MOSI y MISO.
Algunos dispositivos pueden ser “margarita encadenada” para compartir un pin SS, manteniendo el total de pines utilizados hasta cuatro, más dos para alimentación y tierra. SPI es conocido por ser increíblemente rápido y se usa comúnmente en los registros de desplazamiento o ADC (convertidores analógico a digital) para pasar datos entre dispositivos.
El canal de YouTube de Startups aumentadas tiene un manual fácil de seguir para SPI que explica el protocolo con más detalle:
Cómo habilitar SPI en Raspberry Pi
Para habilitar SPI en tu Raspberry Pi, abre Raspi-config desde la terminal introduciendo:
sudo raspi-config
Navegar a Opciones de interfaz, y en el siguiente menú seleccione P4 SPI Habilita / deshabilita la carga automática del módulo de kernel SPI. Seleccionar Sí en el indicador de la ventana. SPI ahora está habilitado!
Alternativamente, puede habilitar SPI desde /boot/config.txt expediente. Abra una ventana de terminal y escriba:
sudo nano /boot/config.txt
Busca una línea que lea # dtparam = spi = on y quitar el # símbolo. De cualquier forma que habilite SPI, reinicie su Pi y SPI se habilitará.
¿Qué puedes hacer con SPI en Raspberry Pi??
Si bien hay cientos de proyectos diferentes que utilizan muchos periféricos SPI diferentes, un buen proyecto de inicio es la programación de su propio lector RFID..
Usamos el lector MFRC-522 en nuestro DIY Smart Lock con Arduino y RFID. Tutorial DIY Smart Lock con Arduino y RFID. Smart Lock con Arduino y RFID. Aquí se explica cómo construir un simple bloqueo inteligente basado en RFID usando un Arduino como la columna vertebral y un Pocos componentes baratos. Lee mas . Para una introducción a RFID con sabor a Raspberry Pi, echa un vistazo a las instrucciones detalladas de piddlerintheroot.
Este tipo de configuración no es solo para la electrónica de hobby tampoco. En nuestra colección de los mejores proyectos de Raspberry Pi Los 13 mejores proyectos de Raspberry Pi de 2017 Los 13 mejores proyectos de Raspberry Pi de 2017 Quedarás impresionado por estos proyectos Raspberry Pi impresionantemente creativos. Lea más, presentamos un sistema MES a gran escala que se ejecuta con Raspberry Pi y RFID, como parte de una operación de fábrica a gran escala en Europa..
Qué es I2C en Raspberry Pi?
I2C es un protocolo de comunicación creado por Phillips Electronics, que ha visto una oleada de uso en proyectos de hobby basados en microcontroladores. La razón de esto es obvia: usa solo dos cables en lugar del mínimo de SPI. También está bien soportado por las bibliotecas hechas por el usuario. Hay muchos componentes diseñados para ser utilizados con I2C en Raspberry Pi. Si bien es más lento que SPI, aún funciona lo suficientemente rápido para la mayoría de los usos diarios..
Al igual que SPI, el protocolo tiene una dominar dispositivo, como el Pi, y un esclavo Dispositivo, como una pantalla, registro de desplazamiento o controlador de motor.
La primera conexión entre los dispositivos es la SCL (Reloj serie) que establece el maestro para sincronizar la transferencia de datos. La segunda línea es la ASD (Datos en serie) que transfiere los datos entre todos los dispositivos en el bus I2C.
El dispositivo maestro comienza la comunicación con un comienzo poco, y un bit de siete dirección hexadecimal. Esto debe coincidir con el dispositivo esclavo para que puedan comunicarse. Así es como se pueden usar tantos dispositivos con solo dos cables..
El dispositivo maestro especifica si quiere leer o escribir (R / W) el esclavo, antes de recibir un acuse de recibo o ACK atrás.
YouTuber Augmented Startups proporciona una vez más una mirada fácil y detallada de I2C:
Cómo habilitar I2C en Raspberry Pi
I2C también está habilitado en el Pi a través de la Raspi-config menú. Abre el terminal y entra:
sudo raspi-config
Usa los cursores para seleccionar Opciones de interfaz, seguido por P5 I2C Habilita / deshabilita la carga automática del módulo del kernel I2C. Confirme que desea habilitar el protocolo y debería ver una pantalla de confirmación.
Al igual que con SPI, también puede habilitar I2C modificando su archivo config.txt. Abre una terminal y escribe:
sudo nano /boot/config.txt
Modificar #dtparam = i2c_arm = on, la eliminación de la # símbolo.
Reinicie su Pi, y I2C está listo para ir!
¿Qué puedes hacer con I2C en Raspberry Pi??
I2C es ideal para cualquier proyecto que requiera un gran número de resultados. Un uso típico es para pantallas LCD, que requieren hasta 16 pines para su uso. I2C reduce esto a solo dos para comunicación y dos para alimentación y tierra.
Muchas pantallas LCD vienen con un I2C “mochila” adjuntas, lo que las hace mucho más fáciles de configurar y libera el resto de sus pines Pi para otros sensores y periféricos.
TheRaspberryPiGuy tiene un tutorial detallado de YouTube sobre cómo configurar y utilizar una pantalla LCD con I2C en Raspberry Pi
Usando SPI y I2C salva los pines!
SPI y I2C en Raspberry Pi no son para principiantes en electrónica de pasatiempos completos, pero tampoco son nada de lo que temer.
Antes de sumergirse, sería una buena idea seguir nuestra guía para principiantes de Raspberry Pi para aprender lo básico..
Trabajar a través de algunos proyectos de ejemplo es la mejor manera de aprender, y esperamos ver lo que se te ocurre. Quién sabe qué extrañas y maravillosas creaciones de Raspberry Pi. 10 Proyectos más extraños de Raspberry Pi. 10 Proyectos más extraños de Raspberry Pi. Hay un científico loco dentro de cada uno de nosotros, y la Raspberry Pi permite que su loco interior salga y juegue. A veces, las cosas se ponen raras. Muy raro. Leer más harás?
Explorar más sobre: Raspberry Pi.