Autor Tema: Placa de desarrollo Picuino  (Leído 51803 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Placa de desarrollo Picuino
« Respuesta #75 en: 04 de Diciembre de 2011, 13:47:41 »
Es visual C++ 2008. Sinceramente, el proyecto ni la mas remota idea de donde esta o si sigue dentro de mi PC   :(

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Placa de desarrollo Picuino
« Respuesta #76 en: 04 de Diciembre de 2011, 14:19:11 »
Estoy hasta el santo  xFm!!#F¿Ñ¨ :rayito: m>/¬&   del bendito interface USB.

Pruebas hasta el momento:


1. Jan Axelson USB:
    Firmware para C18 con Framework de Microchip: Compila y funciona
    Host para PC con VC6: No compila
    Host para PC con VisualBasic 6: funciona, pero no reconoce que esté conectado el PIC


2. Prácticas con USB en VisualC (by Sucky):
    Firmware para C18 con Framework de Microchip: Compila y funciona
    Host para PC con VisualC++ 2008: No consigo compilarlo.


3. Microchip HID Bootloader:
    Funciona el firmware y el programa Host.
    Sólo sirve para transferir un programa al micro.


4. Tutorial del proyecto Pinguino:
    Bootloader basado en Vasco PUF. Funcionan los led y el ordenador reconoce el dispositivo.
    Entorno de desarrollo basado en Python (compila)
    No consigo descargar el código compilado (.hex) al microcontrolador.


5. Principles of Engineering:
   Lab 2 peripheral firmware for PIC18F2455 in assembler and in C
   Aplicación que simula un teclado USB. (compila y funciona OK)
   El firmware funciona y envía comandos al PC que son interpretados como teclas de un teclado.
   Hay que ejecutarlo sobre un editor de texto para recibir los datos.
   Si no tienes cuidado te desbarata todo porque actúa como un teclado real.
   No le veo muchas aplicaciones prácticas.


6. Osciloscopio USB:
   Firmware para CCS: funciona
   Host para VisualBasic 6: compila y funciona
   
   Esta es la primera aplicación que hace algo y que he conseguido que funcione.
   La parte host está programada en VisualBasic (lo conozco más y es más sencillo)
   El único problema está en el firmware que es para CCS y por ahora ya no me queda cabeza para aprender otro compilador más.
   

7. Vasco PIC USB Framework:
   Proyecto OpenSource muy interesante.
   Código C para el compilador SDCC, (compilador tambien OpenSource)
   El Bootloader de la placa pinguino utiliza este Framework modificado.
   
   No consigo compilar más que cosas sencillas en este compilador, de manera que por ahora no me atrevo a intentar
   una aplicación que envíe y reciba datos entre el PIC y el PC. Cuando se me enfrien las neuronas intentaré continuar.


No consigo en ninguna de ellas tener una aplicación que funcione y que yo pueda modificar sin tener que leerme un millón de líneas de código y manuales.


Saludos!
« Última modificación: 05 de Diciembre de 2011, 14:15:43 por picuino »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Placa de desarrollo Picuino
« Respuesta #77 en: 04 de Diciembre de 2011, 15:24:26 »
Respecto al ejemplo que subí yo, que error indica al compilar?
No contesto mensajes privados, las consultas en el foro

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Placa de desarrollo Picuino
« Respuesta #78 en: 04 de Diciembre de 2011, 18:36:43 »
El código VisualC++ es el siguiente:
Código: [Seleccionar]
#include "Form1.h"
#include "stdafx.h"

using namespace HIDClass;


private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
                 // Initialize class with Vendor ID, Product ID, and report size)
                MCHPHIDClass::USBHIDClassInit (0x4D8, 0x003F, 64);
             }

private: System::Void cb_Led4_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {
             unsigned char OutputPacketBuffer[64];  //Allocate a memory buffer equal to our report size

             OutputPacketBuffer[0] = 0x80;      // Cambiar el estado de los leds.-
             OutputPacketBuffer[1] = 0x00;      // Borramos todos, si está checkeado colocamos un 1 en el lugar correcto.-
             if(cb_Led1->Checked==true){
                OutputPacketBuffer[1]+=1;
             }
             if(cb_Led2->Checked==true){
                OutputPacketBuffer[1]+=2;
             }
             if(cb_Led3->Checked==true){
                OutputPacketBuffer[1]+=4;
             }
             if(cb_Led4->Checked==true){
                OutputPacketBuffer[1]+=8;
             }
             // enviamos:
             if (MCHPHIDClass::USBHIDWriteReport(OutputPacketBuffer, 2) == true){
                lb_Estado->Text = "USB: Conectado";
                lb_Estado->ForeColor=Color::Green;
             }else{
                lb_Estado->Text = "USB: Desconectado";
                lb_Estado->ForeColor=Color::Red;
             }
           
         }
         
         
private: System::Void tm_Ticks_Tick(System::Object^  sender, System::EventArgs^  e) {
                 unsigned char OutputPacketBuffer[64];  //Allocate a memory buffer equal to our report size
                 unsigned char InputPacketBuffer[64];   //Allocate a memory buffer equal to our report size
               
                 // Comenzamos leyendo estado de los pulsadores:
                 OutputPacketBuffer[0] = 0x81;          //0x81 Leer Pulsadores.-
                 if (MCHPHIDClass::USBHIDWriteReport(OutputPacketBuffer, 1) == true){
                     lb_Estado->Text = "USB: Conectado";
                     lb_Estado->ForeColor=Color::Green;
                     MCHPHIDClass::USBHIDReadReport(InputPacketBuffer); // leemos datos.-
                     //InputPacketBuffer[0] Estado pulsadores.-
                     cb_SW2->Checked=false;
                     cb_SW3->Checked=false;
                     if((InputPacketBuffer[0]&1)==1){ // Mascara para obtener bit que nos interesa.-
                        cb_SW2->Checked=true;
                     }
                     if((InputPacketBuffer[0]&2)==2){
                        cb_SW3->Checked=true;
                     }

                     // Ahora leemos valor del potenciometro:
                     OutputPacketBuffer[0] = 0x37;          //0x37 Leer Pot.-
                     if (MCHPHIDClass::USBHIDWriteReport(OutputPacketBuffer, 1) == true){
                         MCHPHIDClass::USBHIDReadReport(InputPacketBuffer);
                         //InputPacketBuffer[0] dato LSB
                         //InputPacketBuffer[1] dato HSB
                         
                         // Cargamos en barra de progreso valor enviado en 10 bits.-
                         pb_AN0->Value=((Int16)InputPacketBuffer[1]*256 + InputPacketBuffer[0]);
                     }else{
                         lb_Estado->Text = "USB: Desconectado";
                         lb_Estado->ForeColor=Color::Red;
                     }
                     
                 }else{
                     lb_Estado->Text = "USB: Desconectado";
                     lb_Estado->ForeColor=Color::Red;
                 }   
             }

Los errores de compilación que genera: (sólo he copiado los errores que genera hasta la línea 11 del código)

Código: [Seleccionar]
1>Compilando...
1>Form1.cpp
1>.\Form1.cpp(4) : error C2871: 'HIDClass' : no existe ningún espacio de nombres con este nombre
1>.\Form1.cpp(6) : error C2059: error de sintaxis : 'private'
1>.\Form1.cpp(8) : error C2653: 'MCHPHIDClass' : no es un nombre de clase o espacio de nombres
1>.\Form1.cpp(8) : error C3861: 'USBHIDClassInit': no se encontró el identificador
1>.\Form1.cpp(11) : error C2059: error de sintaxis : 'private'
.
.
.



El compilador es Visual C++ 2008 Express Edition spanish

Saludos.
« Última modificación: 04 de Diciembre de 2011, 18:48:49 por picuino »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Placa de desarrollo Picuino
« Respuesta #79 en: 04 de Diciembre de 2011, 20:02:14 »
 :roll: Te conviene crear una aplicación desde 0, y de ahí ir agregando las funciones (Seguro que si sacas la parte de USB tampoco te compila ese proyecto  :? ). Porque trabajas en el main.cpp si se maneja todo desde el .h ? Hay errores que si  trabajaras con el proyecto correctamente no te saldrían  ;-)

Después anda agregando funciones de a poco, por ejemplo solamente MCHPHIDClass::USBHIDClassInit (0x4D8, 0x003F, 64). Si no te vuelves loco buscando errores  :x


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Placa de desarrollo Picuino
« Respuesta #80 en: 04 de Diciembre de 2011, 20:23:32 »
:roll: Te conviene crear una aplicación desde 0, y de ahí ir agregando las funciones (Seguro que si sacas la parte de USB tampoco te compila ese proyecto  :? ). Porque trabajas en el main.cpp si se maneja todo desde el .h ? Hay errores que si  trabajaras con el proyecto correctamente no te saldrían  ;-)

Después anda agregando funciones de a poco, por ejemplo solamente MCHPHIDClass::USBHIDClassInit (0x4D8, 0x003F, 64). Si no te vuelves loco buscando errores  :x


Saludos!

Animo picuino! cuando un codigo no me compila es mejor empezar de cero e ir agregando etapas, recuerda: divide y venceras!
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Placa de desarrollo Picuino
« Respuesta #81 en: 05 de Diciembre de 2011, 14:12:55 »
Gracias por los ánimos, porque a veces los necesito.

El otro día tardé varias horas símplemente en instalar visual C++.
Parece fácil, pero me encontré con que la partición del disco del sistema operativo estaba casi llena y tuve que hacer espacio primero. Entre ese y otros problemas...

Además nunca he programado en Visual C++. Parece que la adaptación puede ser facil, pero he llegado a tardar más de 1hora hasta que me di cuenta de que había que crear un formulario  :huh: y hasta que encontré después la barra de herramientas para editar formularios :roll:.

Bueno... que voy a comenzar a aprender VisualC++ desde cero (seguiré toda la serie de Sucky desde el ejemplo 1  ;-) )
y después comenzaré el proyecto USB desde cero.

Cuando llegue os comento.

Saludos.


Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Placa de desarrollo Picuino
« Respuesta #82 en: 05 de Diciembre de 2011, 15:35:23 »
Este inicio de tutorial que a realizado Ariel te va a venir bien, es de VB, pero en general los pasos a seguir son similares: http://www.ucontrol.com.ar/forosmf/programacion-en-visual-basic/visual-basic-2008-creando-interfaces-para-pic-desde-cero/


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Placa de desarrollo Picuino
« Respuesta #83 en: 11 de Diciembre de 2011, 12:07:48 »
Creo que conocer el stack USB y la programación en Visual C++ me llevará bastante tiempo, de manera que he decidido ir poco a poco con el USB y mientras tanto seguiré desarrollando aplicaciones para la placa Picuino.

Ahora quisiera retomar algunos temas que se han tratado al comienzo del hilo y creo que son interesantes.

Saludos!

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Placa de desarrollo Picuino
« Respuesta #84 en: 11 de Diciembre de 2011, 12:41:25 »
Mi opinión es que para conseguir algo popular tienes que combatir contra Arduino, cuyos puntos fuertes son el hardware, su ubicuidad y, sobre todo, su entorno de desarrollo integrado.

En http://pinguino.cc ya han logrado todos estos valores... pero han llegado tarde ¿cómo aproximarse ahora a Arduino que lleva años de ventaja y ha calado en la comunidad DIY de bajo nivel?

Aportando algo más ¿qué? Hay entra en juego la imaginación  :mrgreen:


Bien, creo que tengo claro que no quiero combatir contra Pinguino ni contra Arduino.

¿Qué más puede aportar la placa Picuino?


Frente a la placa Arduino:
  • Microprocesador PIC ;-)
  • Interface USB nativo (Arduino utiliza un conversor USB-RS232)
  • Posibilidad de emular periféricos HID (por ejemplo interruptores de expansión para el Flight Simulator)
  • Conectores de expansión estandar con alimentación incluida, que facilita conectar placas de expansión
  • Placas de ampliación o Shields que no tiene Arduino


Frente a la placa Pinguino:
La placa pinguino parece estar orientada sólo a realizar pruebas sencillas con el microcontrolador y, como mucho, controlar un montaje realizado sobre placa protoboard.
Esto creo que limita bastante en la parte hardware. No es fácil conectarle un módulo de ampliación o shield, ni encontrar módulos de expansión ya diseñados y probados.
En cuanto al entorno de desarrollo, creo que el de pinguino es suficiente y puede funcionar con Picuino. No creo que sea necesario volver a realizar otro.
Por mi parte, prefiero programar en un editor de texto estandar.

Donde creo que Picuino puede añadir algo más a la placa Pinguino es en:
  • Conectores estandar para ampliar con facilidad la placa y que añaden alimentación
  • Placas de expansión hardware fáciles de conectar y programar.
  • Firmware para manejar las placas de expansión con facilidad. (algo parecido a lo que hace CCS con los periféricos del PIC)

Para esto creo que necesito vuestro aporte:
¿Qué placas de expansión creeis que sería más interesante empezar a desarrollar?

Os dejo algunas ideas que ya he tenido:
  • Placa para realizar curvas de funcionamiento de componentes VI-Tester (ya desarrollado el hardware)
  • Placa de adaptación de niveles RS-232 (ya desarrollada, me falta publicarlo)
  • Placa de control de motores DC.
  • Placa con 2 mosfet para realizar pruebas con fuentes de alimentación conmutadas
  • Control de tiempo y de potencia (por ejemplo para una para insoladora a leds).
  • Medidor de inductancia y de capacidad
  • Display LCD y teclado


Saludos!
« Última modificación: 11 de Diciembre de 2011, 22:14:36 por picuino »

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Placa de desarrollo Picuino
« Respuesta #85 en: 11 de Diciembre de 2011, 15:00:48 »
- Ethernet
- Radio RF


Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Placa de desarrollo Picuino
« Respuesta #86 en: 11 de Diciembre de 2011, 15:30:56 »
Por cierto picuino... podríamos colaborar en algunas placas, aunque sólo en la parte del esquemático, porque mi "estándar" usa una geometría un poco diferente a la de tu picuino.

Por ejemplo, el shield LC meter está en mi lista. Cuando tenga el esquemático lo publicaré por si quieres aprovecharlo.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Placa de desarrollo Picuino
« Respuesta #87 en: 11 de Diciembre de 2011, 16:05:00 »
El estandar de conexión es importante para que la placa sea compatible, pero cuesta muy poco trabajo adaptar un tipo de conector a otro.

El mayor problema consiste en hacer:
    Un esquemático que funcione (que esté probado y corregido).
    Un firmware que funcione y libre de errores.


En cuanto a colaborar, por mi parte encantado.

Hace ya tiempo construí un medidor LC basado en el 16F628 que funciona fenomenal. El harware está probado y va muy bien. En cuanto al firmware, habría que adaptarle al 18F2550 y añadirle algunas mejoras.
Te dejo el enlace de la página del LC-meter para que me comentes que te parece el esquema:
    http://ironbark.bendigo.latrobe.edu.au/~rice/lc/index2.html
Este montaje se adapta bien a valores de LC para radiofrecuencia (valores pequeños con factor Q alto)


Otro montaje que permite medir LC es el montaje que acabo de publicar:
     https://sites.google.com/site/picuino/picuino-18f2550/vi-tester
Permite medir capacidad, inductancia, resistencia en serie de un condensador y de una bobina (miliohmios).
Mide bien valores de capacidad e inductancia grandes y puede calcular incluso la corriente de saturación de la bobina.
Esto se adapta muy bien a bobinas y condensadores usados en fuentes  de alimentación conmutadas.


Saludos!
« Última modificación: 11 de Diciembre de 2011, 16:10:13 por picuino »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Placa de desarrollo Picuino
« Respuesta #88 en: 11 de Diciembre de 2011, 16:09:38 »
- Ethernet
- Radio RF

Ethernet: Si alguien colabora con el esquemático y firmware, puedo diseñar el PCB. Se puede adaptar un montaje ya realizado.

Radio RF: ¿Propuestas concretas? ¿Bluetooth? ¿Radiocontrol para maquetas?

Saludos.

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Placa de desarrollo Picuino
« Respuesta #89 en: 11 de Diciembre de 2011, 17:13:10 »
Yo estoy trabajando en la versión más antigua del primer LC que has puesto que recurre a un LM311: https://sites.google.com/site/vk3bhr/home/lcm1

La única variación que he introducido es sustituir el relé por un switch... cuando lo tenga listo lo publico

El shield Ethernet es un gran problema... no por el hardware, sino por el stack TCP/IP... para mí es muy complicado usar la de Microchip y estoy estudiando otras alternativas (pingüino aún no la tiene lista), como JAL.

En radio RF, yo estoy trabajando sobre el CC1101


 

anything