Guía de Iniciación PingüinoVE

31
PingüinoVE - Guía de Iniciación Proyecto Nacional de Hardware Libre PingüinoVE Documento para la edición colaborativa y distribuida de la primera: GUÍA DE INICIACIÓN PINGUINO PAA LA COMUNIDAD PINGÜINOVE Objetivos: Obtener en un ciclo ágil de edición documental colaborativa (3 a 5 días), una primera versión publicable, bajo libre licenciamiento, de la 1ª “Guía de Iniciación PingüinoVE, con el propósito de estimular, y continuar impulsando la creación de documentación técnica para el proyecto en idioma español para factibilizar el uso del proyecto por nuevos usuarios interesados, y muy especialmente, lograr a la par, mediante este ejercicio de edición colaborativa, una primera ejercitación real práctica que nos permita sistematizar la experiencia y factibilizar su replicación, para las iniciativas documentales siguientes. Plan Básico de Trabajo: 1. Invitación a suscripción voluntaria a la iniciativa, entre los miembros de la lista PingüinoVE. 2. Confirmar la lista de miembros que constituirán el equipo de trabajo. 3. Distribuir roles entre los colaboradores suscritos a la iniciativa: Redactores y Revisores. 4. Abordar la edición del índice, mediante lluvia de ideas de todos, sobre éste documento. 5. Distribuir tareas de edición, según el índice acordado entre los Redactores y Revisores. 6. Editar el documento. 7. Convenir el cierre (o extensión de plazo) publicar en Forjas y difundir en redes sociales. Equipo de Trabajo y Roles (voluntarios confirmados entre jue 5 y mar 10 de mayo 2001): 1. Pablo Bacouros Redactor 2. Juan Pablo Toledo Redactor 3. Alexis Sanchez Redactor 4. Rafael Torrealba Revisor 5. Bakhos Mousa Revisor 6. Arturo Cuicas Revisor 7. Rafael Salazar Revisor (posible aporte como redactor) 8. Joan Espinoza Redactor 9. Ali Moreno Redactor (y porque no... Revisor) Formato de Publicación Propuesto al concluir la 1ª versión del documento: Formatos Libres ODT y docBook para continuidad de edición y PDF para distribución. Modelos de Licenciamiento propuestos: Creative Commons BY-SA o FDL.

Transcript of Guía de Iniciación PingüinoVE

Page 1: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

Proyecto Nacional de Hardware Libre PingüinoVEDocumento para la edición colaborativa y distribuida de la primera:

GUÍA DE INICIACIÓN PINGUINO

PAA LA COMUNIDAD PINGÜINOVE

Objetivos:Obtener en un ciclo ágil de edición documental colaborativa (3 a 5 días), una primera versión publicable, bajo libre licenciamiento, de la 1ª “Guía de Iniciación PingüinoVE, con el propósito de estimular, y continuar impulsando la creación de documentación técnica para el proyecto en idioma español para factibilizar el uso del proyecto por nuevos usuarios interesados, y muy especialmente, lograr a la par, mediante este ejercicio de edición colaborativa, una primera ejercitación real práctica que nos permita sistematizar la experiencia y factibilizar su replicación, para las iniciativas documentales siguientes. Plan Básico de Trabajo:

1. Invitación a suscripción voluntaria a la iniciativa, entre los miembros de la lista PingüinoVE.2. Confirmar la lista de miembros que constituirán el equipo de trabajo.3. Distribuir roles entre los colaboradores suscritos a la iniciativa: Redactores y Revisores.4. Abordar la edición del índice, mediante lluvia de ideas de todos, sobre éste documento.5. Distribuir tareas de edición, según el índice acordado entre los Redactores y Revisores.6. Editar el documento.7. Convenir el cierre (o extensión de plazo) publicar en Forjas y difundir en redes sociales.

Equipo de Trabajo y Roles (voluntarios confirmados entre jue 5 y mar 10 de mayo 2001):

1. Pablo Bacouros Redactor2. Juan Pablo Toledo Redactor3. Alexis Sanchez Redactor4. Rafael Torrealba Revisor5. Bakhos Mousa Revisor6. Arturo Cuicas Revisor7. Rafael Salazar Revisor (posible aporte como redactor)8. Joan Espinoza Redactor9. Ali Moreno Redactor (y porque no... Revisor)

Formato de Publicación Propuesto al concluir la 1ª versión del documento:Formatos Libres ODT y docBook para continuidad de edición y PDF para distribución. Modelos de Licenciamiento propuestos:Creative Commons BY-SA o FDL.

Page 2: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

PROPUESTA DE INDICE DE CONTENIDOS Consideraciones importantes:El documento, por su naturaleza “introductoria” debería ser:

● “suficiente”, pero de reducido tamaño (aprox. 40 páginas),● con poco o ningún texto “retótico”,● lenguaje técnico “sencillo”, aunque: acrónimos y tecnicismos complejos en Glosario.● rico en ilustraciones y ejemplos.● explicaciones objetivas, cortas, claras y precisas.

Por favor indique a continuación los tópicos/temas técnicos que considera vitales para eśta Guía: Sólo coloque el nombre del tema propuesto. Si desea ampliar detalles, o consideraciones respecto a su propuesta temática, realicelo con absoluta libertad y detalle en las páginas siguientes. Es libre de plantear de cara a cada tema propuesto, porque/cómo si/no incluirlo, agregarlo, reordenarlo, eliminarlo, renombrarlo, entre otros. Los cuadros/columnas con el nombre de cada miembro del equipo serviran para:

1. Votar quiénes están de acuerdo o no con la inclusión de cada tema en la Guía (no para saber quién lo propuso).

2. Luego, asignar la edición de los mismos, una vez se convenga el contenido temático.

Tema / Capítulo / Sub-Capítulo Pblo Juan Alexis Torrealba Bakhos

Salazar ArturoJoan

Ali

Introducción Y y y

Qué es Hardware Libre Y y y

Qué es Pingüino (Dispositivo) Y y y

Qué es PingüinoVE (Proyecto) Y y y

Cómo Instalar el IDE Pingüino Y Y y y

Hola Mundo Pingüino Y y y

ABC del Software de Pingüino Y y y

ABC del Hardware de Pingüino Y Y y y

Detalle Caracteristicas del Tecnicas de Pinguino (PWM, UART, ADC, Manejo de Puertos) con ejemplos

Y Y y y

Referencia del Lenguaje Y Y y y

Page 3: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

Dónde conseguir más Información

Y y y

Preguntas y Respuestas Frecuentes

Y y y

Soluciones a Problemas Comunes

Y Y y y

Cómo contribuir con PingüinoVE

Y y y

Glosario de Términos y Acrónimos

Y y y

Referencias (Libros y/o URLs) Y y y

Anexos Y Y y

Espacio para comentarios, recomendaciones, sugerencias, objeciones, y demás propuestas de cambios, inclusiones y eliminación de temas: PABLO BACOUROS: JUAN PABLO TOLEDO:

● Está excesiva la referencia técnica dentro del índice● Los ejemplos también superan por mucho las necesidades de un usuario no iniciado en la

electrónica● Falta una introducción a los componentes básicos: resistencia, capacitor, diodo, diodo emisor de

luz y quizás hasta el transistor y la protoboard.● Sigo creyendo que las imágenes hechas en fritzing son muy esclarecedoras (para quien lea

esquemáticos es muy simple), pero hace falta algo más amigable y atractivo para el principio del libro, donde será crucial el primer contacto que tenga el lector no iniciado. Fritzing será muy útil luego de que se haga la introducción a los componentes, cuando ya se tenga idea de cómo se ven, cómo se miden, cómo se usan en un proyecto simple de electrónica (sin el pinguino) y esté claro que no muerden.

● En vez de hacer ejemplos abstractos sería bueno que tengan razón de ser, proyectos que puedan interesarle a un niño.

ALEXIS SANCHEZ:Hace Mucho tiempo se intento comenzar esto... este fue el primer resultado, realizado en docbook

Page 4: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

http://pinguino.org.ve/descargas/Aportes/manual.pdf

● Apoyo el uso de la licencia Creative Commons BY-SA me parece la mas adecuada para este tipo de desarrollos.

● Esta documentacion aunque sera extensa, sera no mas que una guia referencia para comenzar a trabajar con Pinguino. Esta guia debera contar con al menos una mension de todas las funciones primarias de Pinguino, entiendase... del manejo de una LCD, es Lcd.begin, Lcd.home, Lcd.print y otras, no siendo primarias las de configuracion de la lcd, como Lcd.leftToRight, ya que seria muy extensa la documentacion.

● Para las imagenes, recomiendo el ampliamente usar el modulo Fritzing de BD4550, ya que es una de las 2 tarjetas de produccion nacional y por ahora es la unica que esta en Fritzing, asi como usar Esta herramienta para la completa creacion de graficos, esquematicos y demas por su amigabilidad en las imagenes.

● No hay q olvidar que esta version sera la colaborativa de bosquello y llenado de informacion, luego esta sera llevada a algun formato mas configurable, y sobre todo portable, como docbook, latex incluso Scribus. Pero eso sera un trabajo como quien diria de Post Produccion.

● Toda esta información de una forma u otra debe llevarse a la wiki, ya que la wiki siempre sera la principal centro de documentacion y actualizacion, un libro no es tan actualizable como una wiki, pero una wiki no sera tan portable como un libro :D

● Eliminar los tutoriales, pero agregarlos en la seccion donde se habla de esto, por ejemplo en vez de agregar un tutorial de Comunicacion con una pc usando el puerto UART, en donde se explica lo que son los modulos de comunicacion, agregar alli el ejemplo completo, los ejemplos deben ser lo mas cortos posibles, especificos y funcionales, basicamente un “Hola Mundo” de la funcion a manera de no hacer tan largo el libro.

RAFAEL TORREALBA:

.- Propongo hacer énfasis también en la parte de la Comunidad de Pinguino, no lo veo en las Primeras secciones, debería haber una Sección después de las Secciones de Que es Pinguino, Que es Pinguino-VE, una de Comunidad Pinguino mundial y Comunidad Pinguino-VE. Propongo que sea un tópico aparte y no agregarlo a como contribuir con Pinguino. Uno de los aspectos mas importantes de la tecnología libre es el desarrollo comunitario, se que al final se hace referencia pero propongo colocarlo en las primeras secciones, es muy importante..- Seria excelente agregar también la forma de poder adquirir los dispositivos bases, para comenzar a trabajar con Pinguino, ¿se pueden adquirir en cualquier tienda electrónica?, ¿Que cosas si y que cosas no?..- Investigando, encontre que en la pagina de fritzing.org, tienen un starter kit. http://fritzing.org/shop/starter-

kit/,

algo asi es que recomiendo que debe ir, al principio..- Ejercicios Prácticos, con muchos dibujos, tutoriales ejemplos en: http://sites.google.com/site/

pinguinotutorial/beginners/led-blinkBAKHOS MOUSSA:

Viendo la guia y las propuestas de los compañeros, propongo lo siguiente:

Page 5: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

● La parte de los diagramas y seria bueno hacer una guia aparte con la simbologia de electronica de

los componentes mas usados en pinguino. Tambien se puede agregar como un anexo. o usar un forma de diagrama de tipo cableado, pero para circuitos grandes (por si llega a existir) seria muy engorroso entenderlos, por eso prefiero la primera opcion.

● Seria bueno enseñar o explicar como funciona un protoboard, porque de seguro los que no son electronicos no saben nada de eso aqui hay les dejo un link http://www2.ing.puc.cl/~dmery/arqui/el_protoboard.pdf

● codeblock y fritzing seria bueno ir en otra guia separada para asi no complicariamos tanto la persona que inicializa.

● separar informacion entre principiante, intermedio y avanzado, a que me refiero con esto dejar solamente aqui en esta primera guia de "INICIALIZACION" lo que se necesita para saber programar en pinguino, en el mercado hay libros de distintos que atras dicen que el nivel del libro. entonces la idea es que podemos separar esta guia en 3 principiante, que es la que queremos realizar ahora se podria tomar referencia la guia de inicializacion de arduino que tiene 20 paginas y explica lo basico y necesario. Luego se podria crear una guia para intermedios y avanzados con informacion mas especifica y amplia. Por ejemplo un principiante no le intereza ahora usar memorias eeprom la idea es que el que lea esta guia empieze a trabajar en pinguino y sepa hacer el manejo basico del dispositivo y aprenda a hacer cosas para impresionar a sus amigos y eso.

ARTURO CUICAS:

● Estoy de acuerdo en que los tutoriales deben ser los mas breves y sencillos posibles, básicamente que sirvan de apoyo a la teoría y permitan al lector poder imaginar sus variantes, además que cosas muy complejas pueden asustar a los iniciados.

RAFAEL SALAZAR:

● Sugiero colocar en la sección Instalacion MS Windows un aparte referido a Windows 7 ya que es diferente y ha generado problemas a algunas personas, esta parte esta documentada en ingles en el wiki de pingüino internacional (http://wiki.pinguino.cc/index.php/Windows_7) (seria cuestión de traducir probar y adaptar a nuestros objetivos)

● Se debe hacer incapie en la instalación deI IDE en todas las plataformas posibles ya que sin el IDE instalado no tenemos nada y los principiantes podrían fustrarce y abandonar

JOAN ESPINOZA:

● Sugiero que se desarrollen los mismos tutoriales que irán al Wiki, y Portal, para resolver transversarlmente las 3 necesidades.

● Para tales fines, sugiero emplear la estructura de contenido de tutoriales planteada por Alexis Sanchez en el Wiki.

● En el apartado “Referencia del Lenguaje” considero muy provechoso, apoyarnos en el esfuerzo de catalogación de instrucciones y librerías, del CheatSheet y el Cubo, recientemente publicados, y referirnos sólo a las instrucciones heredadas de Arduino/Wiring y una compilación muy básica, muy elemental de las estructuras de control y operadores de C ANSI.

Page 6: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

● Propongo que no se incluya en ésta Guia el detalle de uso de las Librerías Pingüino, de las Librerías C ANSI, ni de las Librerías SDCC. Pues perdería su caracter “introductorio”, y ampliaría en complejidad el documento. Estos temas, aunque requieran documentación deberían ser objeto de otro manual de Referencia, dedicado a la Programación SDCC.

ALI MORENO:

● En los comentarios pues creo que uds ya tocaron los temas mas relevantes ;)

Page 7: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

bitacora del editorCada vez que se realize una edicion colocar aqui que se hizo, fecha y quien para llevar

una especie de control de veriones.

10-05 Pablo Bacouros>> Redacción de los conceptos 1 y 2.18-05 Rafael Salazar >> Inicio de Redacción sobre I2C19-05 Alexis Sanchez>> Bitacora del Editor, Se comenzo a finalizar el paso 4 y comenzar al 5.29-05 Alexis Sanchez >> Definicion de Indice y Comienzo de la etapa de asignacion de contenido.31-05 Alexis Sanchez >> Finalizado Modulo PWM22-07 Pablo Bacouros >> hola mundo

Page 8: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

INDICE GENERAL

INDICE GENERALINTRODUCCIÓN

¿Qué es Hardware Libre?:¿Qué es Pingüino? (Dispositivo)Qué es PingüinoVE (Proyecto)Qué es PingüinoVE (Comunidad Venezolana)Cómo Instalar el IDE Pingüino

Instalación en GNU/LinuxInstalación en MS-WindowsInstalación en MAC OS

Hola Mundo PingüinoBootloaderIDE

Compilacion y CargaSDCCPinguino 2550Pinguino 4550Pinguino 32X

COMPILADOR SDCCEstructura de un programaTipos de datosLas constantesVariablesOperadores

AsignaciónAritméticosRelacionalesLógicosDe bits

PunterosFuncionesDeclaraciones de control

if - elseSwitchForWhile / Do-While

ComentariosLa gestión de los puertos

Manejo de indivivual de un Pin

Page 9: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

Manejo de Grupal de PinesLCDLCD gráficoTeclado (keypad 3x4)

Las interrupciones y los temporizadoresInterrupciones

Cambio en Pin0Cambio en Pin1Cambio en Pin2Cambio entre los pines 4 y 7Comparador 1Comparador 2Contador por Timer0Contador por Timer1Contador por Timer2Contador por Timer3

Convertidor Analógico - DigitalModulo PWM

PWM.setdutycycleEjemplo:

Modulos de ComunicacionComunicacon RS232Interfaz Inter-Circuitos (I2C)

Memoria EEPROMMemoria FLASHUSB - Universal Serial Bus

USB CDC (Communication Device Class)DÓNDE CONSEGUIR MÁS INFORMACIÓNPREGUNTAS Y RESPUESTAS FRECUENTESSOLUCIONES A PROBLEMAS COMUNESCÓMO CONTRIBUIRGLOSARIO

TérminosAcrónimos

AnexosTemas (Skins)i18nPack

INTRODUCCIÓN

Page 10: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

¿Qué es Hardware Libre?:El termino Hardware Libre[1], surge de la necesidad de hacer referencia a un nuevo concepto en el desarrollo de tecnologías accesibles y disponibles, para el uso o acceso del publico en general donde el estudio, modificación, reproducción y distribución son “Legales”.

¿Qué es Pinguino? (Dispositivo)

Pingüino es un Dispositivo Electrónico y Embebido capaz de realizar tareas complejas, procesando distintos tipos de datos; por los puerto periféricos de entrada y salida que lo conforman.

Un Pinguino puede ser programado con instrucciones lógicas para automatizar procesos industriales y/o particulares, donde una ventaja de su plataforma de desarrollo es interactuar con el hardware de manera sencilla y rápida.

¿Qué es Pinguino? (Comunidad Internacional)

Qué es PingüinoVE (Proyecto)

PingüinoVE es un proyecto base en el cual pueden derivar otros proyectos que den soluciones particulares a diferentes problemas de un colectivo o sociedad.

Qué es PingüinoVE (Comunidad Venezolana)

PingüinoVE es una comunidad orientada a difundir el uso y el desarrollo de hardware libre nacional.

Cómo Instalar el IDE Pingüino1.- Obtener el IDEAccedemos a www.pinguino.cc y entramos a la seccion de Download

Page 11: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

Solo seleccionamos el sistema operativo que vamos a usar y descargamos.

2.- Descomprimimos de los archivos Se descomprimen los archivos contenedores del IDE en alguna carpeta de facil acceso.

T3.- Instalación de las dependencias.

Page 12: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

GNU/Linux

● Debian y/o Derivados$ sudo apt-get install libusb-1.0-0 python-wxgtk2.8 python-usb

● Fedora (Buscas los siguientes paquetes en el Mandriva Control Center)● libwxPythonGTK2.8● libwxPythonGTK2.8-devel● libusb1.0_0● libusb1.0-devel

Descarga e instala pyusb desde: https://sourceforge.net/projects/pyusb/files/

Microsoft Windows● Descarga e Instala Python 2.5.2 http://www.python.org/ftp/python/2.5.2/python-2.5.2.msi● Descarga e Instala wxpython 2.8 http://downloads.sourceforge.net/wxpython/wxPython2.8-

win32-unicode-2.8.9.1-py25.exe● Descarga e Instala pyusb http://bleyer.org/pyusb/PyUSB-1.5.win32-py2.5.exe● Descarga e Instalal pyusb http://sourceforge.net/projects/pyusb/files/PyUSB%200.x/0.4.1/

pyusb-0.4.1.win32-py2.5.exe/download para windows XP● LibUSB 1.2.1

Pinguino necesita LibUSB para comuninicarse con la computadora. No instalar versiones previas a 1.2.1.Descarga: http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.1.0/libusb-win32-src-1.2.1.0.zip/download. y extrae los archivos1. Desconecta el Pinguino2. Necesitas saber que Procesador tienes

■ Si tu computadora es una X86 32 bit system:i. Ve a la carpeta libusb-win32-bin-1.2.1.0\bin\x86.ii. Renombra el archivo libusb0_x86.dll a libusb0.dll.iii. copia este nuevo archivo en c:\Windows\system32\.iv. Copia el libusb0.sys en c:\Windows\system32\drivers\.

○ Si tu computadora es una X86 64 bit system:i. Ve a la carpeta libusb-win32-bin-1.2.1.0\bin\x86ii. Renombra el archivo libusb0_x86.dll a libusb0.dll.iii. copia este nuevo archivo en c:\Windows\syswow64\iv. Copia el libusb0.sys en c:\Windows\system32\drivers\.

○ Si tu computadora es una AMD 64 bit system:i. Ve a la carpeta libusb-win32-bin-1.2.1.0\bin\amd64ii. copia este nuevo archivo c:\Windows\system32\ folder,iii. Copia el libusb0.sys en c:\Windows\system32\drivers\.

○ If your computer is an intel IA64 bit system:

Page 13: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

i. Ve a la carpeta libusb-win32-bin-1.2.1.0\bin\ia64.ii. copia este nuevo archivo en c:\Windows\system32\.iii. Copia el libusb0.sys en c:\Windows\system32\drivers\.

● Windows XP1. Antes de Conectar tu placa debes descargar el Driver de Microchip modificado

por el Proyecto Pinguino: http://www.hackinglab.org/pinguino/download/driver%20pinguino%20windows/

2. Extrae los archivos en una nueva carpeta.3. Ahroa es momento de conectar tu Pinguino, Windows preguntara sobre el driver.

Selecciona la carpeta donde descomprimiste los archivos en el paso anterior.4. Para verificar la conexion ir a C:\Program Files\LibUSB-Win32\bin\ y ejecuta

testlibusb-win.exe● Para Windows 7

1. Descarga el driver pinguino w7 http://www.hackinglab.org/pinguino/download/driver%20pinguino%20windows/driver%20pinguino%20w7.zip

2. Extrae los archivos en la carpeta libusb-win32-bin-1.2.1.0.

Mac OS X 10.6.x Vamos a necesitar las Herramientas de Desarrollo para Mac OS X Developer Tools para compilar todo lo necesario. If you type: gcc in a terminal and get "command not found", you need to install the compiler and its associated OS X SDKs (Software Development Kits) which are all included in the Mac OS X developer tools package. You can install the developer tools package from your Mac OS X installation DVD. The latest versions may be downloaded from developer.apple.com.

libusb● Download the libusb 0.1.4 universal binary for Snow Leopard from here and run the install

package.pyusb

● Download the pyusb 0.4.3 source code from here● Before you compile and install the pyusb source code, you need to fix the paths in setup.py

for Snow Leopard by:1. adding '-L/Developer/SDKs/MacOSX10.6.sdk/usr/lib' to the extra_link_args2. adding '-I/Developer/SDKs/MacOSX10.6.sdk/usr/include' to the extra_compile_args

and then you can compile and install pyusb with the command sudo python setup.py install.wxPythonWhile wxPython is already installed, it is only a 32 bit installation which is not compatible with the default 64 bit Python installation. To fix this, you need to open a terminal and type:defaults write com.apple.versioner.python Prefer-32-Bit -bool yesIf you ever need to re-enable the 64 bit version you simply type:defaults write com.apple.versioner.python Prefer-32-Bit -bool no to reverse the process.

4.- Creando Permisos de Usuario (Necesario para GNU/Linux)

Page 14: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

$ sudo groupadd microchip 2>/dev/null$ sudo usermod -a -G microchip $USER$ sudo cp 41-microchip.rules /etc/udev/rules.d/$ sudo cp 26-microchip.rules /etc/udev/rules.d/

5.- Lanzamos el IDE$ sudo python Pinguino/pinguinobeta9-05.py

Page 15: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

Hola Mundo Pingüino

(Primer Ejemplo PASO a PASO de Uso de Pingüino - Encender y apagar un LED)

Descripción General: El primer paso para hacer una aplicacion con pingûino es configurar los repectivos “Pin” que

constituyen los puertos del micro-controlador principal. De manera que esta configuracion de los puertos establecen los procesos de escritura y/o lectura de forma digital y/o analogica. Paso 1: Definicion o Configuración de los puertos para flujo de Lectura/Escritura, en el cuerpo de la sentencia setup(). Paso: 2: Diseño de algoritmo donde se estable cuando, como o porque debe encender y/o apagar un LED. en el cuerpo de la sentencia void().

Lista componentes necesarios para la elaboración de su primera practica :

1. Protoboard2. Resistencias 3. Cables4. LED.5. Pinguino.6. IDE.7. Codigo Fuente.8. Animo y Confianza

Page 16: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

ABC del Software de Pingüino

(Descripción General de las herramientas de Software la Plataforma Pingüino)

BootloaderCargador de Arranque de Pingüino

IDEEntorno Integrado de Desarrollo

Compilacion y CargaComo Compilar y Cargar a nuestro Pinguino

SDCCCompilador C para Pequenos Dispositivo

Page 17: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

ABC del Hardware de Pingüino

Pinguino 2550Caracteristicas tecnicas de Pinguino usando un 18F2550

Pinguino 4550Caracteristicas tecnicas de Pinguino usando un 18F4550

Pinguino 32XCaracteristicas de Pinguino Usando un Pic a 32Bits

Page 18: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

COMPILADOR SDCCQue es SDCC

Estructura de un programa

Tipos de datos

Las constantes

Variables

Operadores

Asignación

Aritméticos

Relacionales

Lógicos

De bits

Page 19: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

Punteros

Funciones

Declaraciones de control

if - else

Switch

For

While / Do-While

Comentarios

La gestión de los puertos

Manejo de indivivual de un PinCon este ejemplo simplemente vamos realizar un primer ejercicio, el cuale es el encendido y apagado de 1 LED, para mostrar como es el manejo de un pin.

Page 20: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

void setup() { // Indicamos que la salida de la señal sera digital y en el Pin 7 pinMode(7, OUTPUT); } void loop() { digitalWrite(7, HIGH); //Encendemos el led delay(1000); // Esperamos un segundo digitalWrite(7, LOW); // Apagamos el led delay(1000); // Esperamos un segundo}

Manejo de Grupal de Pinesimportante ya que aqui no se tiene un PORTB, PORTC, hay q explicar como se hace esto

LCD

Teclado (keypad 3x4)

Las interrupciones y los temporizadoresQue es una Interrupcion y un Temporizacion

Interrupciones

Cambio en Pin0

Cambio entre los pines 4 y 7

Comparador 1

Page 21: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

Contador por Timer1

Convertidor Analógico - Digital

Modulo PWMEl Modulo PWM (Puslse Width Modulation) o Modulación de Ancho de Pulso, Permite obtener

una señal periódica a la cual se le puede modificar el Ciclo de Trabajo, Con esto modificamos el tiempo durante el cual a señal de se encuentra en estado alto o bajo, de modo que el voltaje promedio aplicado a la carga es proporcional al tiempo en alto de la señal.

Esta función esta implementada en los pines 11 y 12 de Pinguino (18F2550 y 18F4550).

PWM.setdutycycleCon una sintaxis PWM.setdutycycle( pin, ciclo ), donde pin indica que pin sea usado para la salida

de la señal y dato s(ciclo) era el valor asignado a la señal, esta debe estar entre 0 y 1023, siendo este su rango de trabajo.

Ejemplo:Descripción del Circuito:Control de Potencia de un motor DC a través de pulsadores. Diagrama y Montaje:

Page 22: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

Código del Programa:

#define MASPWM 0

#define MENOSPWM 1

#define SALIDA 11

int pwm;

int paso;

void subirpwm(){

delay(100);//Retardo de 100ms para evitar señal de Rebote pwm = pwm + paso;

PWM.setdutycycle(SALIDA,pwm);

}

void bajarpwm(){

delay(100);//Retardo de 100ms para evitar señal de Rebote pwm = pwm - paso;

PWM.setdutycycle(SALIDA,pwm);

}

void setup(){

pinMode(MASPWM, INPUT);

pinMode(MENOSPWM, INPUT);

Page 23: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

pwm = 0;

paso = 256;

}

void loop(){

if(digitalRead(MASPWM)) {subirpwm();}

if(digitalRead(MENOSPWM)) {bajarpwm();}

}

Modulos de Comunicacion

Comunicacon RS232

Interfaz Inter-Circuitos (I2C) I2C es un bus de comunicación serial sincrono, su nombre se deriva de las iniciales de Inter-Integrade-Circuit y su protocolo fue desarrollado por Philips Inc. para la transferencia de data entre integrados a nivel de PCB. El protocolo I2C se implementa a través de dos hilos, uno para la señal de reloj (SCL) y uno para la data (SDA), siendo la señal de reloj generada por un dispositivo Maestro sincronizando de esta manera toda transferencia de data a los dispositivos Esclavos. En todo bus I2C debe existir al menos un dispositivo Maestro (pudiendo existir mas de uno , configuración multi-maestro) y uno o mas Esclavos. El dispositivo Maestro es el único que puede iniciar la transferencia de data, decidir con cual dispositivo se realiza, el sentido de la misma ( envío o recepción) y cuando se finaliza. Cada dispositivo Esclavo conectado al bus tiene asignada una dirección codificada en 7 o 10 bit.

Memoria EEPROM

Memoria FLASH

Page 24: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

USB - Universal Serial Bus

USB CDC (Communication Device Class)

Page 25: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

DÓNDE CONSEGUIR MÁS INFORMACIÓN

Comunidad Nacional PingüinoVE

Sitio Oficial del Proyecto / Comunidad http://www.pinguino.org.veWiki Oficial del Proyecto http://wiki.pinguino.org.veTwitter e Identi.ca @pinguinove

Comunidad Internacional Pingüino

Sitio Oficial de Hacking Lab Otras Fuentes de Información

Page 26: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

PREGUNTAS Y RESPUESTAS FRECUENTES

Page 27: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

SOLUCIONES A PROBLEMAS COMUNES

Page 28: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

CÓMO CONTRIBUIR

GLOSARIO

TérminosArduino Proyecto predecesor de Pinguino.Pinguino Dispositivo Microcontrolador para Computación Física y prototipado rápido.HardwareSoftwareFirmwareMicrocontroladorMicroprocesador

Acrónimos

Page 29: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

BIOS Sistema Básico de Entrada/Salida (del inglés Basic Input Output System)USB Bus Serial Universal (del inglés: Universal Serial Bus)PIC Controlador de Interfaces Programables (de inglés: Programmable Interface Controller)HL Hardware LibreSL Software LibreGNU Proyecto GNU (del inglés: GNU is not UNIX)GPL Licencia Pública General (del inglés: Gerenal Public License)CC Creative Commons: Licenciamiento de Obras PCB Print Circuit Board (Tarjeta soporte de los componentes electronicos)

Page 30: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

FUENTES DE REFERENCIA Sitios Web [1] - http://www.pinguino.org.ve Sitio Oficial del Proyecto y comunidad PingüinoVE[2] - http://www.openmoko.org Proyecto dedicado a Liberar telefonos moviles .[3] - http://www.hackinglab.org Consejos y Trucos para Hackear Juguetes. Bibliografía Fuente viva

Page 31: Guía de Iniciación PingüinoVE

PingüinoVE - Guía de Iniciación

Anexos

Temas (Skins)Juego de Iconos para personalización del IDE

i18nPackPaquete de Internacionalización