Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Retour d expérience Installation windows
13-03-2014, 01:25 AM, (This post was last modified: 13-03-2014, 01:26 AM by Callmea.)
#11
RE: Retour d expérience Installation windows
Bonsoir,

Je pense que demain j'aurais un peu de temps à consacrer au wiki Smile

Concernant le programmeur universel, je trouve que c'est une bonne idée. Lorsque j ai voulu me creer mon pinguino avec un pic18f4550, j'ai tenté d'utiliser une methode similaire pour graver le bootloader Pinguino à partir d'un arduino, malheureusement sans succès. Peut être un problème qui était dû à mon installation..
Je ne sais pas si ça pourrait t'aider, ni non plus si cela fonctionne bien, mais je te donne les liens que j'avais trouvés :
https://sites.google.com/site/thehighspa...ino-pic18f

https://bitbucket.org/JoseFuzzNo/arduino-as-pic18f-programmer-for-linux

Si cela fonctionne (je n aurais pas eu de chance alors), ça pourrait peut être te donner des pistes.Idea

Mais c'est vrai que ton projet, super intéressant se rapproche de l'initiative sur Arduino.

Pourquoi pas tester, il me reste un pic18F4550 vierge, mais je vais en recommander (pas forcément ce modèle), par contre je reste dans le 8 bits car je ne connais pas les 32 bits, et je ne sais si mon jdm très vieux accepterait les 32 bits.

Je suis en train de regarder également les bootloader AN3051 de microchip et tiny loader, basés sur le TTL (sérial) au lieu de l'USB, car quand j ai voulu m'intéresser aux pics, je me suis focalisé sur la mémoire (96ko flash), en oubliant de vérifier le support USB, j ai donc prix des pic18F4865. et je voulais donc utiliser le serial du pinguino (relié au pc via l usb) pour y installer les programmes via un bootloader ttl. Ce serait super un bootloader pinguino supportant le serial Smile
Reply
13-03-2014, 10:53 AM,
#12
RE: Retour d expérience Installation windows
(12-03-2014, 09:50 PM)xapon66 Wrote: Je veux bien essayer, j'ai deux cartes pinguino, une 8 bits et une 32 bits, quelques pic18 vierges et une ICD3 à ma disposition au boulot. Où se trouve le programme hôte ?

.py   programmer8.py (Size: 20.29 KB / Downloads: 1)
.pde   programmer8.pde (Size: 17.94 KB / Downloads: 1)

(12-03-2014, 09:50 PM)xapon66 Wrote: Pour changer de sujet, je suis en train de dessiner une carte d’extension pour Pinguino 47j53B. Est-il possible d'en avoir les dimensions exactes ainsi que la position des connecteurs ?
Ce sera une carte avec entrées optocouplées et analogiques, sorties relais, analogique et une ou deux PWM. Couplée à la Pinguino 47j53B et un afficheur, on aura un joli petit automate.
Ça serait cool ça Smile !
Tu utilises Kicad ? J'ai fait une lib. pour ce Pinguino dans le but de l'intégrer à d'autres montages.
Je peux aussi t'envoyer tout le dossier Kicad de la carte. Dis-moi.
It is easier to complain than it is to do, but it is better to do than it is to complain.
Reply
13-03-2014, 11:07 AM,
#13
RE: Retour d expérience Installation windows
(13-03-2014, 01:25 AM)Callmea Wrote: Je suis en train de regarder également les bootloader AN3051 de microchip et tiny loader, basés sur le TTL (sérial) au lieu de l'USB, car quand j ai voulu m'intéresser aux pics, je me suis focalisé sur la mémoire (96ko flash), en oubliant de vérifier le support USB, j ai donc prix des pic18F4865. et je voulais donc utiliser le serial du pinguino (relié au pc via l usb) pour y installer les programmes via un bootloader ttl. Ce serait super un bootloader pinguino supportant le serial Smile

Merci pour les liens.
Tu trouveras plusieurs bootloader Série sur le net. En ajouter le support dans l'IDE fait partie des projets mais non-prioritaires. Si tu veux te pencher là-dessus c'est parfait. Tu peux aussi programmer tes 4865 par ICSP en créant un Pinguino 4865 dans boards.py et en modifiant certains fichiers. Tu peux commencer par digitalw.c où tu trouveras déjà le support (caché Wink ) des Pinguino 1220, 1320, 14k22 et 4685.
Si tu mets des fichiers à jours n'oublie pas de me les faire parvenir pour que je mette l'IDE à jour.
It is easier to complain than it is to do, but it is better to do than it is to complain.
Reply
16-03-2014, 08:19 PM,
#14
RE: Retour d expérience Installation windows
(13-03-2014, 11:07 AM)regis Wrote:
(13-03-2014, 01:25 AM)Callmea Wrote: Je suis en train de regarder également les bootloader AN3051 de microchip et tiny loader, basés sur le TTL (sérial) au lieu de l'USB, car quand j ai voulu m'intéresser aux pics, je me suis focalisé sur la mémoire (96ko flash), en oubliant de vérifier le support USB, j ai donc prix des pic18F4865. et je voulais donc utiliser le serial du pinguino (relié au pc via l usb) pour y installer les programmes via un bootloader ttl. Ce serait super un bootloader pinguino supportant le serial Smile

Merci pour les liens.
Tu trouveras plusieurs bootloader Série sur le net. En ajouter le support dans l'IDE fait partie des projets mais non-prioritaires. Si tu veux te pencher là-dessus c'est parfait. Tu peux aussi programmer tes 4865 par ICSP en créant un Pinguino 4865 dans boards.py et en modifiant certains fichiers. Tu peux commencer par digitalw.c où tu trouveras déjà le support (caché Wink ) des Pinguino 1220, 1320, 14k22 et 4685.
Si tu mets des fichiers à jours n'oublie pas de me les faire parvenir pour que je mette l'IDE à jour.

Bonsoir,

Désolé pour la réponse tardive, je n'ai pu revenir avant. Je viens de modifier la page du wiki http://wiki.pinguino.cc/index.php/Window...bUSB_1.2.1, dis moi si celà te convient.

Pour le mode ICSP, je vais regarder je te remercie car je ne le connais pas du tout. Débutant sur pinguino et les pics de manière générale je vais étudier cela Smile. En parlant de bootloader série, je pense à essayer le tiny bootloader dans un premier temps. Mais il est clair que je vais me pencher sur digitalw.c Smile

Une question une librairie pour les ecran nokia 5110 a t-elle été portée? Si non, je suis en train de regarder un exemple pour ces écrans sur le site de l arduino. Ils se basent sur une classe apparemment et la librairie PCD8544. Si j'ai bien compris sdcc ne supportant pas le C++, il va falloir l adapter. Donc le plus simple, corrige-moi si je me trompe merci, est de la remplacer par une structure, et transformer les méthodes en fonctions qui prendraient en paramètre la structure? J'ai souvent faire de la conversation c -->C++ mais rarement l inverse Big Grin
Reply
17-03-2014, 09:56 AM,
#15
RE: Retour d expérience Installation windows
(16-03-2014, 08:19 PM)Callmea Wrote: Je viens de modifier la page du wiki http://wiki.pinguino.cc/index.php/Window...bUSB_1.2.1, dis moi si celà te convient.
Ça m'a l'air pas mal.

(16-03-2014, 08:19 PM)Callmea Wrote: une librairie pour les ecran nokia 5110 a t-elle été portée?
Pas à ma connaissance.

(16-03-2014, 08:19 PM)Callmea Wrote: Si j'ai bien compris sdcc ne supportant pas le C++, il va falloir l adapter. Donc le plus simple, corrige-moi si je me trompe merci, est de la remplacer par une structure, et transformer les méthodes en fonctions qui prendraient en paramètre la structure? J'ai souvent faire de la conversation c -->C++ mais rarement l inverse Big Grin
Tu peux partir de la lib. Adafruit qui est très simple : https://github.com/adafruit/Adafruit-PCD...CD-library, ajouter une fonction PCD8544_init() et transformer les méthodes en fonction :
par ex. void Adafruit_PCD8544::drawPixel(int16_t x, int16_t y, uint16_t color)
en void PCD8544_drawPixel(u16 x, u16 y, u16 color)
Il y a déjà des lib. trigo, graphics et font qui sont disponibles et que tu peux appeler histoire de ne pas ré-inventer la roue à chaque fois. Tu pourras prendre ex. sur la lib. SSD1306.
It is easier to complain than it is to do, but it is better to do than it is to complain.
Reply
17-03-2014, 11:48 PM,
#16
RE: Retour d expérience Installation windows
Bonsoir, merci pour ces conseils Smile

Je retesterais la librairie Adafruit, que j'ai testée sur arduino, librairie fonctionnelle et assez sympathique. Par contre niveau flash ça me prenait un peu trop de ko. C'est pourquoi je m etais rabattu sur cette lib, la PCD8544, très légère.

Je vais donc essayer de porter celle-ci dans un premier temps, mon premier portage avec pinguino voir sdcc quand il sera terminé, je le partagerais au cas où ça puisse intéresser du monde.
Reply
18-03-2014, 10:07 AM,
#17
RE: Retour d expérience Installation windows
(17-03-2014, 11:48 PM)Callmea Wrote: Je vais donc essayer de porter celle-ci dans un premier temps, mon premier portage avec pinguino voir sdcc quand il sera terminé, je le partagerais au cas où ça puisse intéresser du monde.

Moi, parce que je viens de me commander un de ces petits écrans Big Grin
Je serais ton beta-testeur si tu veux bien.
It is easier to complain than it is to do, but it is better to do than it is to complain.
Reply
20-03-2014, 02:34 AM, (This post was last modified: 20-03-2014, 02:36 AM by Callmea.)
#18
RE: Retour d expérience Installation windows
Bonsoir,

Je me décide de sortir de ma grotte pour faire part de mon avancement Big Grin
Pour le beta testeur, c'est avec plaisir Smile

Ces petits ecrans (je viens d'en recevoir un monté sur pcb), sont vraiment sympathiques (petite reso mais très sympas). Leur seul vrai défaut est d'être alimenté en 2,7V (3,3V max), mais les signaux (enfin pour le mien, modèle chinois), sont compatibles 5V.
Pour le connecter à mes pinguinos/arduinos 5V, j'ai essayé mon pont de résistance diviseur, mais sans succès l'écran devant posséder une résistance interne. Puis j'ai enlevé une résistance (j utilise 3 résistances pour mes ponts), et là miracle, jça marche et j obtiens 2,8V Wink

Donc Pour le faire marcher voici mon branchement (si cela peut t aider)

-Vcc : Pont de resistance de 2 r de 1,8kohms, je connecte le vcc entre ces deux résistances soit 2,8V/
-Data : des resistances de 10K.
-Led : Vers ground.

Alors pour la librairie, j'ai pas mal lutté, mais j'ai bien avancé même si il reste des parties que je vais devoir améliorer :

J'ai créé une structure PC8544 qui contient les éléments de l objet provenant de la librairie arduino.

J'ai choisi une structure pour tenter de garder un tant soit peu la "logique" objet, et pour pouvoir gérer plusieurs écrans le cas échéant. j'ai créé en lieu et place du constructeur la fonction Init.

Toutes les fonctions ont donc été modifiées pour s'articuler de la sorte
PCD8544__nomdefonction (PCD8544 *display,arg1,arg2,argX).
Seul le pointeur a été rajouté aux fonctions. Ainsi la gestion de différents écrans devrait se faire sans collision.

J'ai du (temporairement) supprimer les références à PROGMEM et mem_cpy_b (remplacé par un memcpy standard) pour le stockage en rom des glyph, ne connaissant pas sdcc, et n'ayant pas trouvé comment procéder avec ce compilateur, si quelqu un a une idée je prends, car pour l'instant je passe par des const Smile

J'ai récupéré dans les libs arduino, la fonction shiftout, que je n ai pas trouvée sur pinguino.

J'ai créé un pdl, et refait en conséquence le fichier include. Me reste à réécrire la méthode virtuelle print, et ça devrait être testable sous peu Smile

Par contre je n'ai pas saisi quelques subtilités, dans la librairie originale sur Arduino, ils urtilisent les fonctions digitalWrite (avec une majuscule), et sur pinguino je n'ai trouvé que digitalwrite. cela m'a pas mal pris la tête au début car sdcc n'etant pas très bavard, j'obtenais uniquement implicit déclaration comme message d'erreur. Idem pour delay que je n'ai pas réusi à faire fonctionner en direct, mais en regardant le fichier delay.c, j'ai trouvé delayms qui rempli la même fonction.

Peut être quelque chose m'a échappé?
Reply
20-03-2014, 10:49 AM,
#19
RE: Retour d expérience Installation windows
(20-03-2014, 02:34 AM)Callmea Wrote: J'ai récupéré dans les libs arduino, la fonction shiftout, que je n ai pas trouvée sur pinguino.
Je l'ai implanté dans la lib. ledcontrol.c mais elle devrait être placée ailleurs, accessible à tous :

Code:
void shiftOut(u8 dataPin, u8 clockPin, u8 bitOrder, u8 val)
{
    u8 i;
    u8 bitMask;

    for (i = 0; i < 8; i++)
    {
        if (bitOrder == LSBFIRST)
            bitMask = (1 << i);
        else
            bitMask = (1 << (7 - i));

        digitalwrite(dataPin, (val & bitMask) ? HIGH : LOW);
        digitalwrite(clockPin, HIGH);
        digitalwrite(clockPin, LOW);            
    }
}

(20-03-2014, 02:34 AM)Callmea Wrote: J'ai créé un pdl, et refait en conséquence le fichier include. Me reste à réécrire la méthode virtuelle print, et ça devrait être testable sous peu Smile
Je vais publier les derniers changements dans l'IDE sous peu. Tu regarderas les fichiers __cdc.c, lcdlib.c, stdio.c, graphics.c, trigo.c et SSD1306.c. Elle te permettrons de recréer les fonctions printf, print, printNumber, printFloat, la gestion des polices de caractère et toutes les fonctions graphiques (il te suffit juste de créer une fonction drawPixel).

(20-03-2014, 02:34 AM)Callmea Wrote: Par contre je n'ai pas saisi quelques subtilités, dans la librairie originale sur Arduino, ils utilisent les fonctions digitalWrite (avec une majuscule), et sur pinguino je n'ai trouvé que digitalwrite. cela m'a pas mal pris la tête au début car sdcc n'etant pas très bavard, j'obtenais uniquement implicit déclaration comme message d'erreur. Idem pour delay que je n'ai pas réusi à faire fonctionner en direct, mais en regardant le fichier delay.c, j'ai trouvé delayms qui rempli la même fonction.
Oui c'est normal.
Le language "Pinguino" adopte une syntaxe C++ que ne comprend pas le compilateur C SDCC.
L'IDE traduit donc les fonctions famille.nom() dans leur nom en C grâce aux fichiers pdl. Le nom C de la fonction digitalWrite() est digitalwrite(), pour delay() c'est Delayms().
Pour les fonctions famille.nom(), il faudrait renommer les équivalents C en famille_nom().
Toutes les fonctions avec un nom du style digitalWrite devrait avoir le même nom en C.
Faut juste trouver le courage de le faire. En tous cas j'essaie de m'y tenir pour toutes les nouvelles librairies.

Quand tu penses que ton fichier est prêt, attache-le à ce post si tu veux.
It is easier to complain than it is to do, but it is better to do than it is to complain.
Reply
21-03-2014, 04:39 PM,
#20
RE: Retour d expérience Installation windows
(20-03-2014, 10:49 AM)regis Wrote:
(20-03-2014, 02:34 AM)Callmea Wrote: J'ai récupéré dans les libs arduino, la fonction shiftout, que je n ai pas trouvée sur pinguino.
Je l'ai implanté dans la lib. ledcontrol.c mais elle devrait être placée ailleurs, accessible à tous :

Code:
void shiftOut(u8 dataPin, u8 clockPin, u8 bitOrder, u8 val)
{
    u8 i;
    u8 bitMask;

    for (i = 0; i < 8; i++)
    {
        if (bitOrder == LSBFIRST)
            bitMask = (1 << i);
        else
            bitMask = (1 << (7 - i));

        digitalwrite(dataPin, (val & bitMask) ? HIGH : LOW);
        digitalwrite(clockPin, HIGH);
        digitalwrite(clockPin, LOW);            
    }
}

(20-03-2014, 02:34 AM)Callmea Wrote: J'ai créé un pdl, et refait en conséquence le fichier include. Me reste à réécrire la méthode virtuelle print, et ça devrait être testable sous peu Smile
Je vais publier les derniers changements dans l'IDE sous peu. Tu regarderas les fichiers __cdc.c, lcdlib.c, stdio.c, graphics.c, trigo.c et SSD1306.c. Elle te permettrons de recréer les fonctions printf, print, printNumber, printFloat, la gestion des polices de caractère et toutes les fonctions graphiques (il te suffit juste de créer une fonction drawPixel).

(20-03-2014, 02:34 AM)Callmea Wrote: Par contre je n'ai pas saisi quelques subtilités, dans la librairie originale sur Arduino, ils utilisent les fonctions digitalWrite (avec une majuscule), et sur pinguino je n'ai trouvé que digitalwrite. cela m'a pas mal pris la tête au début car sdcc n'etant pas très bavard, j'obtenais uniquement implicit déclaration comme message d'erreur. Idem pour delay que je n'ai pas réusi à faire fonctionner en direct, mais en regardant le fichier delay.c, j'ai trouvé delayms qui rempli la même fonction.
Oui c'est normal.
Le language "Pinguino" adopte une syntaxe C++ que ne comprend pas le compilateur C SDCC.
L'IDE traduit donc les fonctions famille.nom() dans leur nom en C grâce aux fichiers pdl. Le nom C de la fonction digitalWrite() est digitalwrite(), pour delay() c'est Delayms().
Pour les fonctions famille.nom(), il faudrait renommer les équivalents C en famille_nom().
Toutes les fonctions avec un nom du style digitalWrite devrait avoir le même nom en C.
Faut juste trouver le courage de le faire. En tous cas j'essaie de m'y tenir pour toutes les nouvelles librairies.

Quand tu penses que ton fichier est prêt, attache-le à ce post si tu veux.

Bonjour,
Merci pour ces explications. Etant habitué au c,cela ne m'a pas posé plus de soucis que cela, mais j'imagine que le débutant en programmation souhaitant porter du code arduino soit un peu déboussolé.

C'est malin, le coup des pdls, vous avez fait du bon travail. Smile

Par contre la question que je me pose, est comment procéder pour des objets multiples avec cette méthode? Pour ma lib des écrans nokias (encore ne dev par manque de temps), j'ai tout placé dans une structure, et des fonctions qui prennent comme paramètre un pointeur sur cette structure dans le cas où l'utilisateur voudrait gérer plusieurs écrans en parallèle.

C'est quand même dommage que contrairement aux uc atmel, il n'y ai pas de compilateur C++ open source pour les pics 8 bits (pas trouvé).Sad

Tiens en parlant d'écran et comme tu m as dit que ça t intéressait, en attendant de finir ma librairie nokia, j'ai compilé avec succès l'exemple fourni sur le site arduino avec très peu de modifications ( à part le fameux ShifOut Big Grin et une ou deux declarations de variables).

Par contre pas de buffering, et donc pas d'adressage de pixel individuel mais exemple très fonctionnel et surtout léger (cf. attachement) Smile.


Attached Files
.pde   goodnokia.pde (Size: 7.86 KB / Downloads: 3)
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)