Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Biblioman
www.aquihayapuntes.com
18/09/2013
http://www.youtube.com/watch?v=tGGR9jogIBo
Biblioman
www.AquiHayApuntes.com
Pgina 2
Nota: La Rev.2 de la placa incluye otro conector con ocho pines de expansin que estn a la
izquierda del principal y que no tiene soldado ningn zcalo y que por detrs de la placa viene
rotulado como P5 (ese conector no lo utilizaremos en estos ejemplos), al final del artculo
viene un enlace donde se explica en detalle todos los conectores de la Raspberry Pi.
Hay que tener en cuenta tambin que el puerto GPIO de la Raspberry Pi no est protegido ante
cortocircuitos y sobretensiones. Los pines son compatibles con niveles de 3.3V y como mximo
la corriente que pude circular por cada pin es de 50 mA por tanto si queremos conectar
dispositivos que funcionan a niveles de 5V o que consuman una corriente mayor deberemos
hacerlo a travs de un Buffer o cualquier otro circuito que nos adapte los niveles de tensin y
de corriente, de no hacerlo as podremos provocar daos en el hardware de nuestra raspberry
Pi.
Biblioman
www.AquiHayApuntes.com
Pgina 3
http://www.youtube.com/watch?v=WdA-mIvBBTw
Biblioman
www.AquiHayApuntes.com
Pgina 4
Comentario
El circuito es muy sencillo, como comento en el vdeo se utilizan dos adaptadores de niveles:
por un lado el Buffer 74LS126 cuyo datasheet lo podis descargar desde aqu.
Y que permite adaptar los 3.3 V de la Raspberry Pi a los 5v necesarios para el rel de potencia y
el otro adaptador es el propio rel que a travs de sus contactos nos permite encender o
apagar una bombilla de 220 V AC de 60 W de potencia.
Biblioman
www.AquiHayApuntes.com
Pgina 5
Aunque el mdulo se puede conseguir fcilmente por Internet y a muy buen precio.
Cdigo fuente
GPIO.pro
#------------------------------------------------#
# Project created by QtCreator 2013-06-29T18:24:51
#
#------------------------------------------------QT
+= core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = GPIO__1
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS
+= mainwindow.ui
RESOURCES += \
iconos.qrc
mainwindows.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
Biblioman
www.AquiHayApuntes.com
Pgina 6
main.cpp
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainwindows.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_Encender_clicked()
{
system("echo 0 >/sys/class/gpio/gpio23/value");
}
void MainWindow::on_Apagar_clicked()
{
system("echo 1 >/sys/class/gpio/gpio23/value");
}
void MainWindow::on_actionConfigurar_triggered()
{
system("echo 23 >/sys/class/gpio/export");
system("chmod 777 -R /sys/class/gpio/gpio23 ");
system("echo out >/sys/class/gpio/gpio23/direction");
}
void MainWindow::on_actionSalir_triggered()
{
system("echo 23 >/sys/class/gpio/unexport");
exit(0);
Biblioman
www.AquiHayApuntes.com
Pgina 7
Fcil no? ..
Configurando el puerto serie de la Raspberry Pi.
A diferencia de la Beagleboard en la Raspberry Pi la UART viene por defecto configurada para
ser utilizada como entrada y salida de datos de la consola de comandos del sistema operativo
(esto es til como debugger para saber que est ocurriendo en nuestra Raspberry Pi cuando
por ejemplo no tengamos salida de vdeo). Esto significa que para poder utilizar el puerto serie
como usuario en nuestras aplicaciones, previamente deberemos de configurarlo para ello. En
el siguiente video tutorial se describe dicho proceso paso a paso:
Biblioman
www.AquiHayApuntes.com
Pgina 8
http://www.youtube.com/watch?v=udMGUW5W4nI
Biblioman
www.AquiHayApuntes.com
Pgina 9
http://www.youtube.com/watch?v=uxSIS9K4PdI
Fuentes de informacin
http://qt-project.org/wiki/QtSerialPort
http://elinux.org/RPi_Low-level_peripherals
http://elinux.org/GPIO
http://code.google.com/p/qextserialport/
http://www.raspberrypi.org/
BCM2835 Datasheet
Mi conclusin
Los desarrolladores de Raspberry Pi decidieron poner como lenguaje oficial de la Raspberry Pi
Phyton un lenguaje muy poderoso sin duda pero basado en script, aunque hay programas para
hacer interfaces grficas con Phyton los sistemas operativos disponibles y optimizados para la
Raspberry Pi no incluyen ninguno. Bajo mi punto de vista s que es verdad que un sistema
embebido con limitados recursos hardware no es ideal para correr complejas aplicaciones
grficas ya que se comeran todos los recursos del sistema solo para presentar y refrescar la
interfaz grfica del usuario, pero tambin es verdad que a veces podemos necesitar crear
pequeas aplicaciones con un entorno grfico como las mostradas en este artculo y en ese
caso Qt va muy bien bajo mi punto de vista.
Me gustara que los desarrolladores de la Raspberry dieran mas soporte a Qt tanto en la
actualizacin de las libreras de Qt en sus repositorios como un mayor apoyo a la hora de
utilizar compiladores cruzados. He creado esta versin en .pdf del artculo para que los que
opinen igual que yo lo podis distribuir libremente y as el uso de Qt en la Raspberry pueda
llegar a ms gente que an no lo conozca. No s, quizs si furamos muchos los que
pensramos as algn da veamos alguna distribucin para la Raspberry Pi con Qt instalado.
Biblioman
www.AquiHayApuntes.com
Pgina 10
Autora
Autor de este artculo: Biblioman
Versin: 1.01
Pgina Web: http:\\www.aquihayapuntes.com
Email: email.Biblioman@gmail.com
Canal YouTube: http://www.youtube.com/user/biblioman09
Biblioman
www.AquiHayApuntes.com
Pgina 11