lunes, 19 de junio de 2017

Tarjeta PINGUINO basada en el microcontrolador PIC 18F2550

En este articulo trataré de explicar como construir una tarjeta electrónica "open source" que tiene su propio entrono de programación y además dispone de un bootloader para subir programas sin necesidad de programador; Otra de las características importantes es que es multi-plataforma; Es decir que trabaja en los sistemas operativos WINDOWS, LINUX y MAC OS X.





Los elementos necesarios para su construcción son los siguientes:
  • PIC 18F2550 
  • REGULADOR DE VOLTAJE 7805 
  • DIODO 1N4007 
  • CAPACITOR de 470nF, 1uF 10uF, 22pF X 2 
  • RESISTENCIAS DE 330, 10K 1M 
  • DIODO LED 
  • CONECTOR USB TIPO B 
  • PULSANTE NORMALMENTE ABIERTO 
  • CRYSTAL 20Mhz 
  • VARIOS ESPADINES (CONECTORES EN LINEA) 


Debido a la sencillez de este circuito fácilmente puede ser montado en un protoboard; o si prefiere puede construir una placa; Para ello descargue los archivos CAD en el siguiente enlace:


El Entorno de programación y el bootloader son gratuitos y los puede descargar en la siguiente dirección:


Pin-Out de la tarjeta Pinguino

Este hardware dispone de: 18 entradas/salidas digitales, 1 modulo UART para comunicaciones seriales, 2 salidas PWM de 3 KHz, 5 entradas analógicas, 1 Pulsador de Reset que permite iniciar en modo bootloader durante los primeros cinco segundos; luego de ello pasará a modo RUN

Al igual que en ARDUINO, los pines de la tarjeta PINGUINO son numerados desde el 0 al 17; en la siguiente tabla se describen algunas características que poseen los mismos: 

Nombre del PinE/S DigitalesEntrada analógicaOtrasPin en el chipNombre Microchip
0SinohwI2C I/O - SPI SDI21RB0/AN12/INT0/FLT0/SDI/SDA
1SinohwI2C SCL - SPI SCK22RB1/AN10/INT1/SCK/SCL
2Sinohw-23RB2/AN8/INT2/VMO
3Sinohw-24RB3/AN9/CCP2/VPO
4Sinohw-25RB4/AN11/KBI0
5Si--26RB5/KBI1/PGM
6Si--27RB6/KBI2/PGC
7Si--28RB7/KBI3/PGD
8Si-Serial Tx17RC6/TX/CK
9Si-Serial Rx - SPI SDO18RC7/RX/DT/SDO
10Si--11RC0/T1OSO/T13CK
11Si-PWM12RC1/T1OSI/CCP2/UOE
12Si-PWM13RC2/CCP1
13SiSiall-2RA0/AN0
14SiSiall-3RA1/AN1
15SiSiall-4RA2/AN2/VREF-/CVREF
16SiSiall-5RA3/AN3/VREF+
17SiSiall-7RA5/AN4/SS/HLVDIN/C2OU
RUNSolo salida-MODO RUN run6RA4/T0CKI/C1OUT/RCV
USB+--USB16RC5/D+/VP
USB---USB15RC4/D-/VM
Vusb--USB14VUSB
Reset--Interruptor de reinicio1MCLR/VPP/RE3
Vdd (5V)---20Vdd
Vss (GND)---8Vss
Vss (GND)---19Vss
OSC1--Quartz9OSC1/CLKI
OSC2--Quartz10OSC2/CLKO/RA6
  • Note hwEntrada analógica disponible en hardware, pero no soportada en software.
  • Note allSi un pin entre el 13 y el 17 es usado como entrada analógica, todos estos pines son configurados como entradas analógicas.
  • Note run: Si conectas una resistencia de 330 ohm en serie con un LED indicará MODO RUN/STOP no lo puedes usar como salida digital.

El Entrorno de Programacion de PINGUINO



El lenguaje de programación de PINGUINO, esta basado en Python y es muy similar al de ARDUINO que está basado en JAVA; Sin embargo, sigue en fase de desarrollo y no ha alcanzado la madurez que tiene ARDUINO; Las librerías disponibles son pocas y dejan mucho que desear, hay que tener en cuenta que es un compilador gratuito y que su código fuente esta abierto para que los desarrolladores lo vayan mejorando. Una de las novedades que esta llamando la atención es que la plataforma permite también programar mediante diagramas de bloques al estilo de Flowcode o Visualino.


Existen también algunas librerías estándar que facilitan mucho la programación y cada día van apareciendo nuevos aportes que hacen los usuarios de PINGUINO; esperemos que este proyecto no muera, sino que por el contrario siga enriqueciéndose. Si esas interesado en como crear librerías para PINGUINO y así contribuir a que este proyecto avance te invito a que revises el siguiente articulo:


A continuación se muestra un listado de librerías disponibles para la plataforma PINGUNO:

1
1wire Library
B
Bluetooth Library
Bulk Library
C
CDC Library
D
DCF77 Library
DS1306 Library
DS18B20 Library
E
EEPROM Library
Ethernet Library
Examples
F
Flash Library
G
GLCD Library
I
I2C Library
Interrupt Library
K
Keypad Library
KS DHTxx Library
L
LCD (I2C) Library
Lcdlib Library
M
MMC Library
P
PID Library
Port Expander Library
PS/2 Keyboard Library
PWM Library
R
RTCC Library
S
SD Library
SD8 Library
Serial Library
Servo Library
Sound Library
SPI Library
Stepper Library
System Library
U
USB Library
Z
ZigBee Library

Algunas librerías de ARDUINO también son soportadas por PINGUINO, pero otras no han sido desarrolladas todavía, no porque el microcontrolador PIC no pueda soportarlas sino más bien por la falta de interés que han tenido los usuarios en este proyecto; esperemos sin embargo que vaya evolucionando a través de los años y que vayan apareciendo nuevos aportes: dejo a continuación un listado de librerías que son y no son soportadas por las ambas plataformas: 

Librería Standard 

✔ EEPROM - reading and writing to "permanent" storage
✖ Ethernet - for connecting to the internet using the Arduino Ethernet Shield
✔ LiquidCrystal - for controlling liquid crystal displays (LCDs)
✔ SD - for reading and writing SD cards
✔ Servo - for controlling servo motors
✔ SPI - for communicating with devices using the Serial Peripheral Interface (SPI) Bus
✔ Stepper - for controlling stepper motors
✔ Wire - Two Wire Interface (TWI/I2C) for sending and receiving data over a net of devices or sensors.

Comunicación (networking y protocolos)

✔ OneWire - control devices (from Dallas Semiconductor) that use the One Wire protocol.
✔ XBee - for communicating with XBees in API mode
✔ Debounce - for reading noisy digital inputs (e.g. from buttons)
✔ Improved LCD library fixes LCD initialization bugs in official Arduino LCD library
✔ GLCD - graphics routines for LCD based on the KS0108 or equivalent chipset.
Generación de Frecuencias y AUDIO
✔ Tone - generate audio frequency square waves in the background on any microcontroller pin
Motores y PWM
✖ TLC5940 - 16 channel 12 bit PWM controller.

Relojes

✔ DateTime - a library for keeping track of the current date and time in software.

Utilidades

✔ PS2Keyboard - read characters from a PS2 keyboard.
✖ TextString aka String - handle strings
✖ PString - a lightweight class for printing to buffers
✖ Streaming - a method to simplify print statements

Librerías Especificas para PINGUINO

✔ Interrupt - Simple interrupt manipulation library (OnEvent, OnTimer0, OnChange, ...)
✔ PWM - Native PWM hardware support
✔ DS18B20 - specific one-wire temperature sensor library
✔ Zigbee - MRF24J40 wireless module
✔ Android ADB - provides an Android class to use Pinguino 32 with devices with Android 1.6 and up
✖ Android ADK - provides an Android class to use Pinguino 32 with devices with Android 2.3.4 and up
✔ RTCC - Real Time Clock and Calendar library
✔ USB - Native USB hardware support with CDC (USB-Serial), host and OTG (On-The-Go) support
✔ PCF8574 - I2C I/O expander library
✔ LCDI2C - for controlling liquid crystal displays (LCDs) with I2C protocol
✔ List - High-level library to manipulate lists
✔ DCF77 - Read and decode the atomic time broadcasted by the DCF77 radiostation
✔ printf - Print formatted data to output (CDC, LCD, Serial, ...)
✖ Charge Time Measurement Unit - Interface with capacitive touch sensors, Capacitance Measurement
✔ Oscillators - change CPU clock frequency on-the-fly
✔ Low-power - Run your Pinguino in low power modes (Watchdog, Sleep and Deep Sleep)
✔ ST7565
✔ PID 

Librerias de ARDUINO no Soportadas por PINGUINO (Tarea por hacerse)

✖ Firmata - for communicating with applications on the computer using a standard serial protocol.
✖ SoftwareSerial (NewSoftSerial) - for serial communication on any digital pins (Pinguino32 gives you up to 9 serial channels)
✖ Matrix - Basic LED Matrix display manipulation library
✖ Sprite - Basic image sprite manipulation library for use in animations with an LED matrix
✖ Messenger - for processing text-based messages from the computer
✖ Simple Message System - send messages between Arduino and the computer
✖ SSerial2Mobile - send text messages or emails using a cell phone (via AT commands over software serial)
✖ Webduino - extensible web server library (for use with the Arduino Ethernet Shield)
✖ X10 - Sending X10 signals over AC power lines
✖ SerialControl - Remote control other Arduinos over a serial connection
✖ LedControl - for controlling LED matrices or seven-segment displays with a MAX7221 or MAX7219.
✖ LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips.
✖ LedDisplay - control of a HCMS-29xx scrolling LED display.
✖ Metro - help you time actions at regular intervals (supported in Interrupt library)

Bien Amigos; espero que la información aquí expuesta haya resultado de utilidad, me despido hasta una próxima ocasión.

No hay comentarios.:

Publicar un comentario

CONSTRUYA UN ANALIZADOR DE ESPECTRO CON ARDUINO Y WINAMP

Este articulo explica como hacer un analizador de espectro utilizando el reproductor de música WINAMP y el Plugin "gen_crownsoft_lcd...