Pages: 1 [2]   Go Down
Author Topic: Projet - Horloge Tetris et plus  (Read 3524 times)
0 Members and 1 Guest are viewing this topic.
France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 63
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

France / Bretagne / Rennes
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 :p

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 ? :p
Logged

France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 63
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nickel,

ça me rappel mon projet...  smiley-grin
Logged

France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 63
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

En attendant tes matrices je te donne le lien vers la librairie que j'utilise pour contrôler les matrice bicouleur :
http://code.google.com/p/ht1632c/

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.
Logged

France / Bretagne / Rennes
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-wink

En cas de doute je me tournerais vers vous smiley

Bonne fin de week-end à tous !
Logged

France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 63
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-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) :
Code:
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 :
Code:
    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-grin
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.
Logged

France / Bretagne / Rennes
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

France / Bretagne / Rennes
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 :
Code:
#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.
Logged

France / Bretagne / Rennes
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:
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.
Logged

France / Bretagne / Rennes
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley ) (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 smiley

Bonne après midi à tout !
Logged

France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 63
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.  smiley-mr-green

Bon courage
 
Logged

France / Bretagne / Rennes
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ! :p

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 !
Logged

France / Bretagne / Rennes
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-wink

Vous pouvez voir l'état actuel à cette adresse :
* http://devs.maraumax.fr/tetris/tetris.php (1 par défaut)
* http://devs.maraumax.fr/tetris/tetris.php?n=6

Si vous avez le message "CANCEL ! Limite atteinte !" c'est que le script a atteint la limite de passages donc rafraichissez simplement la page smiley-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 :p 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)
Logged

France
Offline Offline
Jr. Member
**
Karma: 0
Posts: 63
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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-grin

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  smiley-wink
Logged

France / Bretagne / Rennes
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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é !
Logged

Pages: 1 [2]   Go Up
Jump to: