jueves, 31 de enero de 2013

Introducción


Pingüino es un dispositivo electrónico, basado en el uso de un único, pero poderoso y complejo Chip Microcontrolador, que es capaz de actuar como un Controlador Lógico de Procesos Embebido, pues puede recibir y procesar datos del exterior a través de sensores o transductores conectados a sus entradas (de luz, temperatura, sonido, otros), para procesarlos lógicamente, y en función de ello, generar cambios sobre su entorno a través de actuadores o transductores conectados a sus salidas (lámparas, motores, pistones, otros) con total autonomía de un computador personal, aunque puede permanecer conectado a éste, aún luego de ser programado, para enviar y recibir datos desde y hacia el mismo.

Pingüino es Software Libre y Hardware de Fuentes Abiertas
Los Planos del Hardware y el Código Fuente del Software de Pingüino se desarrollan y distribuyen bajo el modelo de Software Libre, que permite a cualquier persona, darle uso para cualquier propósito, estudiarlo, realizar modificaciones y redistribuirlo, bajo éstos mismos términos.
Ésta característica fundamentalmente, hace de Pingüino un dispositivo de especial interés para aficionados, entusiastas, estudiantes, docentes, profesionales y emprendedores que pueden hacer uso pleno de estas libertades, para acceder al conocimiento tecnológico que sustenta su creación, y a partir de éste, desarrollar nuevos conocimientos, tecnologías y/o dispositivos para dar solución a necesidades individuales y grupales.

Pingüino está derivado de Arduino
Pingüino fué creado a finales del año 2008 por el Ing. Electrónico Francés Jean Pierre Mandon, como parte de los proyectos de su empresa HackingLabs, y de su labor docente en la Universidad Aix Provence en Francia. Jean Pierre observó la posibilidad de diseñar un dispositivo similar a Arduino, pero "portándolo" desde la plataforma de Microcontroladores ATMEGA de ATMEL (de Arduino) a los Microcontroladores

PIC de Microchip.
La intención principal de éste cambio fué aprovechar sus conocimientos en la plataforma PIC, y la excelente oportunidad que representaba que algunos modelos de PICs (PIC18F2550 y 4550) integran ya una interfaz USB, que en el caso de Arduino se implementa a través de un chip adicional que actúan como adaptador/convertidor Serial (RS-232) a USB (Bus Serial Universal).

En el diseño de Pingüino, J.P. Mandón también decantó por otras alternativas respecto a Arduino a nivel de Software, optando por el Lenguaje de Programación Python y la Biblioteca de Interfáces Gráficas WxWidgets para el desarrollo del IDE o Entorno de Programación (versus Java para Arduino), y por GPUTILS (Utilidades GNU para PICs) y SDCC (Small Device C Compiler) basado en GNU gcc (versus AVR-GCC para Arduino).

Construcción

Materiales
1 Resistencia 10 k
2 Resistencia 470
1 Resistencia 220
2 Condensador 22pF ceramico
1 Condensador 220nF poliester
2 Condensador 100uF electrolitico
1 Condensador 100nF ceramico
1 Led rojo
1 Led verde
1 Cristal 20MHz
1 Diodo 1N4007
1 Pulsador
1 Conector USB
1 Conector para bateria
1 Zocalo 40 pines
1 PIC18F4550
1 LM7805CT


Circuito






Placa impresa


Algunas imágenes del Pinguino PIC terminado






Instalación

Para la instalación del IDE de Pinguino

Paso 1. Primero instalaremos los drivers setup.exe en C:/LibUSB


Paso 2. Instale el Python python-2.6.6.msi


Paso 3. Descomprime el IDE y ejecutalo x4-easy-rev857.rar



Abra el programa en el pinguino_start.bat


Paso 4. Conecte el Pinguino y cuando le pida los drivers seleccione la ruta C:/LibUSB/Driver


Tiene que quedar reconocido de esta manera


Paso 5. Por ultimo configure en el IDE que trabajara con el Micro 4550 esto en el menú Pinguino - Seleccionar tarjeta



version 11 - linux
antes instalar las librerias
python-pyside
python-pip
python-wheel
python-setuptools
python-bs4
python-usb

instalar
pinguino-ide.deb
pinguino-libraries.deb
pinguino-linux32-sdcc-mpic16.deb

miércoles, 30 de enero de 2013

Led


void setup()
{               
    pinMode(7, OUTPUT);    
}

void loop()
{
    toggle(7);            // alternate ON and OFF
    delay(1000);        // wait for a second
}

martes, 29 de enero de 2013

pulsador


const int buttonPin = 2;
const int ledPin =  7;
int buttonState = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);    
}

void loop(){
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}
  else {
digitalWrite(ledPin, LOW);
  }
}

lunes, 28 de enero de 2013

leds secuenciales


int compteur;                                    // definit une variable entiere pour le compteur
int i;                                            // variable servant a l'initialisation

void setup(void)
{
    for (i=0;i<8;i++)
    {
        pinMode(i,OUTPUT);                        // definit les broches 0 a 7 en sortie
        digitalWrite(i,LOW);                    // fixe un niveau 0 sur les sorties
    }
}



void loop(void)
{
    for (compteur=0;compteur<8;compteur++)        // pour compteur variant de 0 a 7
    {
        digitalWrite(compteur,HIGH);            // allume la led compteur
        if (compteur==0)
            digitalWrite(7,LOW);                // si led courante=0 eteindre la led 7
        else
            digitalWrite(compteur-1,LOW);        // sinon eteindre la led d'indice -1
        delay(500);                                // attendre 500 milli-Secondes
    }
}

domingo, 27 de enero de 2013

rgb


#define a1 11
#define a2 12
int valu = 0;

void setup()
{

}
void loop(){
analogWrite(a1, 255);
analogWrite(a2, 0);
delay(1000);
analogWrite(a1, 0);
analogWrite(a2, 255);
delay(1000);
}