Projet - Horloge Tetris et plus

J'ai rapidement jeté un coup d'oeil à la doc.
L'interface n'est pas super compliquée mais il y a quand même des contraintes de timing car seul 2 lignes ne peuvent être allumée en même temps.
Il faut donc balayer l'écran en permanence un peu comme le balayage TV.

Ca ne me semble pas très compliqué mais j'ai quand même un doute. Y'a un risque de foutre 60€ en l'air.

barbudor:
J'ai rapidement jeté un coup d'oeil à la doc.
L'interface n'est pas super compliquée mais il y a quand même des contraintes de timing car seul 2 lignes ne peuvent être allumée en même temps.
Il faut donc balayer l'écran en permanence un peu comme le balayage TV.

Ca ne me semble pas très compliqué mais j'ai quand même un doute. Y'a un risque de foutre 60€ en l'air.

Merci beaucoup, c'est super sympa de ta part.

Du coup comme me l'as conseillé DizHell je vais regarder chez sureelectronics. Je vous tiens au courant !

Et merci encore à tous !

EDIT : La différence entre les P7.62 et les P4 c'est uniquement le taille des LEDS ? C'est plus avantageux de commander sur sureelectronics que sur ebay...

Maraumax:
La différence entre les P7.62 et les P4 c'est uniquement le taille des LEDS ? C'est plus avantageux de commander sur sureelectronics que sur ebay...

c'est indiqué sur les descriptif :
P7.62 : "2416 5mm dots" soit des Led de 5mm
P4 : "24
16 3mm dots" soit 3 mm

Regarde bien les dimensions total des matrice en 3 et 5 mm, pour ma part en 5mm je trouve celà trop grand.
Sinon moi j'ai commandé sur ebay mais c'est sureelect qui était directement le vendeur, il doivent avoir une boutique ebay de mémoire à vérifier.

Autre chose pour les monoCouleur tu peux en mettre jusqu’à 4 maximum en serie.
Pour les BiCouleur je ne sais pas le nombre maxi.

Bon courage et regarde bien les tuto sur les HT1632(C).

DizHell:

Maraumax:
La différence entre les P7.62 et les P4 c'est uniquement le taille des LEDS ? C'est plus avantageux de commander sur sureelectronics que sur ebay...

c'est indiqué sur les descriptif :
P7.62 : "2416 5mm dots" soit des Led de 5mm
P4 : "24
16 3mm dots" soit 3 mm

Ok c'est bien ce qu'il me semblait. Ca fait une sacré différence de prix entre les deux.

J'en ai donc commendé 2 en P4, je vais bien me documenté sur les HT1632C (j'ai pris en biccouleur) entre temps !

Maraumax:
J'en ai donc commendé 2 en P4, je vais bien me documenté sur les HT1632C (j'ai pris en biccouleur) entre temps !

Je pourrai t'aidé sur l'utilisation de ces matrices et de la classe HT1632C.

Bon courage.

DizHell:

Maraumax:
J'en ai donc commendé 2 en P4, je vais bien me documenté sur les HT1632C (j'ai pris en biccouleur) entre temps !

Je pourrai t'aidé sur l'utilisation de ces matrices et de la classe HT1632C.

Bon courage.

Merci beaucoup, j'ai téléchargé la lib et regardé les exemples, pour le moment ça va :stuck_out_tongue:

Sinon j'ai réalisé une image avec les bonnes proportions de ce que ça pourrais donner :

Vous en pensez quoi ? Sinon je pourrais indiquer un nombre de tweet, mails... ? des idées ? :stuck_out_tongue:

Nickel,

ça me rappel mon projet... :smiley:

En attendant tes matrices je te donne le lien vers la librairie que j'utilise pour contrôler les matrice bicouleur :

Pour info mon projet à une taille de 32 Ko, bon c'est une pas finit avec cela j'ai la gestion du RTC, une sonde de température, l'horlogePong et normal, un menu de sélection, et le réglage manuel du RTC. Tout cela pour te dire que ça prend vite de la place et j'ai bien fait de prendre un arduinoMega 1280.

Sur ce Bon WE, je vais essayé de mettre à jour mon post sur l'horloge-Pong avec une vidéo.

Merci à toi DizHell, j'ai déjà téléchargé la lib et regardé un peu les quelques exemples.

Pas encore en détails, d'ailleurs je n'ai même pas vu comment différencier le nombre de matrice que l'on a mais ce n'est qu'une question de temps :wink:

En cas de doute je me tournerais vers vous :slight_smile:

Bonne fin de week-end à tous !

Maraumax:
je n'ai même pas vu comment différencier le nombre de matrice que l'on a mais ce n'est qu'une question de temps :wink:

En fait lorsque tu définit ton objet tu lui indique combien tu as de Matrice, sur mon code ci-dessous j'en ai déclaré 2 (dernier attribut) :

ht1632c ledMatrix = ht1632c(&PORTH, 3, 4, 5, 6, GEOM_32x16, 2); // Pin =6-7-8-9 Arduino Mega

Ensuite c'est une question d'adressage, car une fois cette déclaration fait ton objet ledMatrix (dans mon exemple) est une Matrice de 64x16.

Exemple pour écrire un "init" sur la deuxième matrice :

    ledMatrix.setfont(2); // Réglage de la police en 4x6
    ledMatrix.putchar(42, 1, 'i', 3); // écrire un 'i' au coordonnées (42,1) en Orange (3).
    ledMatrix.putchar(47, 1, 'n', 3);
    ledMatrix.putchar(52, 1, 'i', 3);
    ledMatrix.putchar(57, 1, 't', 3); 
    ledMatrix.pwm(15); // Réglage luminosité
    ledMatrix.sendframe(); // Affichage sur la matrice

Voilà, mais bon je te laisse un peu chercher... :smiley:
N’hésite pas à poser des questions si tu galère, car j'ai passé un bon moment avant de pouvoir afficher simplement l'heure.

Super ! Merci pour l'exemple, ils ne précisaient pas à quoi correspond le dernier paramètre sur le doc officiel "Documentation". Merci !

Hello ! J'ai réceptionné les deux matrices il y a quelques jours et je viens de me "plonger" dedans.

Du coup je me rend compte que je n'ai pas compris le principe du câblage de base des matrices. Je n'ai pas trouvé de "how to" simple avec une matrice présentant le cable et un exemple simple de code.

Du coup, j'imagine que les paramètres numéro 2, 3, 4 et 5 définissent le data, wr, clk et cs mais qui est qui ?

J'ai réussi à faire fonctionner un exemple, mais qui n'utilisait pas la librairie ht1632c donc c'est "moins clean" et du coup ça semble beaucoup plus "compliqué".

Voici le code que je tente de faire fonctionner :

#include <ht1632c.h>

ht1632c ledMatrix = ht1632c(&PORTD, 7, 6, 4, 5, GEOM_32x16, 1);

void setup() {
  ledMatrix.clear();
}

void loop() {
  
    ledMatrix.line(1,4, 6,8, random(1,4));
    ledMatrix.sendframe();
    delay(1000);
    ledMatrix.line(3,7, 2, 9, 0);
    ledMatrix.sendframe();
    delay(1000);
}

Et niveau câblage :
CLK => 5
CS => 4
WR => 7
DATA => 6

Seulement impossible de faire quoi que ce soit sur mes leds. Une idée ? Un lien ?

Merci à tous.

Bon... j'ai regardé dans le ht1632c.cpp, j'aurais du le faire avant :

ht1632c::ht1632c(volatile uint8_t *port, const uint8_t data, const uint8_t wr, const uint8_t clk, const uint8_t cs, const uint8_t geometry, const uint8_t number)

Si ça peut servir à quelqu'un d'autre qui comme moi n'a pas assez réfléchit !

Je vais revoir ça ce soir mais mon cablage est mauvais !

Avec la même déclaration que le post précédent :
CLK => 5 4
CS => 4 5
WR => 7 6
DATA => 6 7

En espérant que ça n'ait pas fait de dégats.

Bonjour les gens !

Alors bonne nouvelle, j'avais juste inversé le cablage comme indiqué dans la post précendent ! J'ai donc enfin fait mes premiers tests avec pour le moment une seul matrice.

Par contre j'ai commencé à regardé pour créer une police (tetris font :slight_smile: ) (qui n'utilise que des chiffres d'ailleurs, pour le moment) mais je pense pas que je soit sur la bonne piste.

Dans un premier temps j'ai utilisé GLCDFontCreator2, qui me donne un fichier.h mais je ne voit pas comment le rendre exploitable avec la lib ht1632c... Je suis ensuite tombé sur ce lien mais je ne comprend pas à partir de quel fichier je doit partir... Si vous aviez quelques informations à me donner ou un lien ce serait sympa :slight_smile:

Bonne après midi à tout !

Salut Maraumax,

Je vois que tu as subit quelque galères, mais tu t'en ai plutôt bien sortie... T’inquiète tu en verras d'autres...

Pour ma part, après l'avoir abandonné depuis 2 mois je viens de reprendre mon projet, c'est dur à reprendre, pense à faire un fichier changelog qui contient toutes les modif que tu fait au jour le jour dans ton code c'est pratique, et aussi faire des sauvegarde de ton projet dans le temps.

Concernant ton liens pour créer une polices sa à l'air bon (j'ai un peu survolé) pour ce qui est du fichier à modifier c'est sur la class ht1632c.h et .cpp .

T’inquiète pas pour ta matrice, si tu inverse pas la masse et le +5V elle ne prendra pas mal. d’ailleurs pour ce qui est de l'alim pense à utilisé une alim externe de 5V pour alimenté les 2 matrice car l'arduino ne pourra pas alimenter les 2 tout seul. (sa chauffe).

Voilà, je vais mettre une alerte de suivi sur ton post, pour pouvoir te répondre rapidement si je peux. :grin:

Bon courage

Hello ! De retour après quelques mois de déménagement / réinstallation !

Je commencé à installer mon bureau électronique cette semaine, plus besoin de défaire / refaire pour manger ! :stuck_out_tongue:

J'ai vu la vidéo de ton projet mais je n'avais pas commenté à l'époque, c'est assez sympa ce que tu as fait !

Concernant ta remarque de l'alimentation externe, quelle alimentation me conseille tu ? (transfo électrique, piles ?)

Bonne journée !

Bonjour à tous !

Avancement

J'ai pas mal avancé sur un algo en PHP pour générer une matrice, j'utiliserais donc des suites générés aléatoirement mais prédifinit dans un premier temps :wink:

Vous pouvez voir l'état actuel à cette adresse :

Si vous avez le message "CANCEL ! Limite atteinte !" c'est que le script a atteint la limite de passages donc rafraichissez simplement la page :wink:

Il me reste de nombreux points à corriger et des optimisations à faire mais pour le moment ça fonctionne ! J'ai encore une fonction à développer pour créer des fonctions pour arduino mais j'ai besoin de votre aide...

J'ai besoin de vous !

En effet j'ai besoin de votre aide pour la logique de mon code sur arduino. Si je n'avais qu'un seul chiffre à gérer je n'aurais pas trop de problème pour gérer la "descente des blocs" (pas en enfer :p) mais dans le cas du passage de 23h59 à 00h00 je doit gérer quatres chiffres en même temps ! J'ai directement pensé au multitâche mais ce n'est pas disponible de base sur arduino, avant de regarder cette éventuel solution avez vous des idées sur comment je peut procéder ?

Au départ je pensait créer 10 fonctions, print0 jusqu'a print9 avec un argument pour définir quel info est à mettre à jour (dizaine heure, unité heure, dizaine minute, unité minute) mais je ne pense pas que ce soit gérable d'exécuter ces fonctions en même temps. (1 : on reviens au paragraphe précédent :stuck_out_tongue: 2 : Sinon je peut procéder de gauche à droite ou inversement...)

Merci beaucoup pour vos lumières !

PS : je partagerais plus tard le code tetris.php, quand il sera un peu optimisé et amélioré !
PS 2 : Merci au forum developpez.net et à stackoverflow pour leurs idées pour l'algo ! (backtracking et additionner un array)

Salut,

Je vais t'orienté un peu et te donner mon astuce pour gérer des Thread avec l'arduino mais tu le garde pour toi... :smiley:

Comme tu le sais mont projet utilise le code de l'horloge Pong, mais se code était prévu pour monopoliser toute la matrice de ce fait il ont tout fait avec des delai(), mon projet utilise 2 matrice pour 1 arduino et donc l'affichage de 2 info en même temps, enfin plus ou moins... L'astuce est là sur ces derniers mots.

Elle consiste à jouer avec le temps mais sans les delai() qui te bloque tout le code, tu affiche un de tes chiffres tu met une condition dans ton code pour bloquer quelque milliseconde la suite de l'affichage et tu passe à un autre chiffre et ainsi de suite. Pour se faire tu as 2 choix soit

tu utilise la fonction millis() avec une comparaison dans un "if" par rapport à une valeur de tempo en ms que tu aura définie.
ou
l'objet Timer de ce site : http://arduino-info.wikispaces.com/Timer-SimonMonk

Pour mon code j'utilise les 2 options, voilà qui pourra te faire un peu avancer.

Bon courage :wink:

Salut DizHell et merci de ta réponse précice !

En effet ton astuce est parfaite, j'ai commencé à regarder de mon coté et ça passe impec' !

Maintenant le soucis que j'ai est au niveau de la mémoire (je suis sur un uno)... je vais dans un premier temps optimiser mon code, si ça ne passe toujours pas je vais invertir dans une Mega.

Merci encore, et je vous tiens au courant de l'avancé !