Gamoover

[move]Vous vous épilez le maillot et collectionnez les bornes d'arcade avec des hommes musclés dessus ? Alors soyez les bienvenus sur Gamoover ! [/move]

[Tuto] La DMD Clock du pauvre (Data East Tritube) [128x16]

Démarré par Aganyte, Vendredi 27 Janvier 2017, 09:42:59 AM

Aganyte

Tout d'abord, je tiens à préciser que ce projet ne vise aucunement à concurrencer le projet exceptionnel de F4brice. Si vous cherchez un grand écran couleur, un serveur internet, une télécommande infra-rouge, et des animations magnifique...le tout clef en main, je ne peux que vous conseiller de passer commande à notre membre dévoué.

Ceci étant dit, J'avais depuis 2 ans des dalles leds de 16x16 pixels qui trainaient dans un tiroir de l'atelier. Quand j'ai vu le projet de F4brice, je me suis dis que l'idée était génial. En connectant 8 dalles ensemble, j'ai obtenu un écran de 128x16 pixels, identique en résolution aux dalles utilisées par Data East dans les années 90.

Quelques heures de travail plus tard, je peux vous livrer la première version (0.2) qui intègre déjà les animations des flippers Star Trek, Hook et Batman de Data East (le Teenage Mutant Ninja Turtle suivra bientôt)

Pour être intéressant, je voulais que ce projet soit totalement "open source" et avec un coût réduis au maximum.

Le code étant "open source" (c'est de l'Arduino donc avec un logiciel de compilation/programmation gratuit) vous pourrez faire tous ce que vous voulez; modification de la page d'accueil, des fonts, des animations, etc...libre à vous de vous amuser.

À l'heure actuel, les animations, et les fonts sont stockées directement dans l'Eeprom de l'Arduino Due (il n'y a donc pas de carte micro SD). Il reste encore un peu plus de la moitié de la place disponible dans le composant. Dans tout les cas, on pourra toujours rajouter un lecteur de carte SD plus tard si besoin (des librairies d'accès sont déjà disponibles pour les Arduinos)

Les animations sont codées comme suit :
- 4 "niveaux de gris", 1 bit par pixel sur 2 pages (soit 2 bits par pixel). La première page en mémoire pour le gris clair, et la suivante pour le gris foncé (un "et logique" entre les deux pages donne le tout ou rien).

C'est la méthode d'encodage sur les flippers Data East, je suis donc resté la dessus.

Pour ce qui est du montage, pas de soudure, toutes les cartes se connectent entre elles avec des câbles Dupont ou des cavaliers.

Voici une vidéo de la version 0.1 (qui était basée sur un Arduino Mega 2560, la prochaine vidéo vous montrera la version 0.2 basée sur la Due). L'Arduino Mega étant limité en vitesse, il n'y a que 3 niveaux de gris, la gestion du 4eme niveau ne fonctionnant bien que sur la Due.

Version 0.1



Version 0.2



Mis à jour en version 0.3



Changelog

-Ajout d'une mire à quatre niveaux de gris au démarrage
-La fonction Image_DOT devient Image_1Bpp, elle sert exclusivement aux images "bi-color"
-Ajout de la fonction Image_2Bpp, elle sert exclusivement aux images en "quadri-color"
-Ajout d'un fichier Mix.h (c'est le "fourre-tout" dans lequel vous pouvez mettre toutes les anims qui vous plaise)
-Ajout de tous les gifs convertis cette semaine (merci aux contributeurs de gif), ainsi que d'une animation du Circus Voltaire.
-Correction de quelques commentaires dans le code
-Ajout d'une fonction setTime (qui permet de régler l'heure quand le DS3231 est neuf, ou au passage heure d'été/heure d'hiver)
-Les pointeurs d'animations passent de 8 bits à 16 bits (j'ai dépassé la valeur fatidique des "255" dans le fichier mix.h cette semaine)
-Ajout du fichier Tmnt.h qui contient les animations du Teenage Mutant ninja Turtles (je les trouve moche donc elles ne sont pas activées, elles n'occupent donc pas de place dans le composant)
-Nous sommes actuellement à 48% d'espace occupée (bien sur à terme, libre à vous d'enlever ce qui ne vous plais pas pour récupérer de la place)

Matériel

- 8 dalles lcd 16x16 pixels (80€ frais de port compris, c'était les prix il y a deux ans)
ou
-2 dalles lcd 64x16 pixels (30€ frais de port compris, 01-02-17)
http://www.ebay.fr/itm/3-75-Unit-Board-64x16-Dot-Matrix-LED-Display-Screen-F3-75-Module-304x76mm-KEU-/191793765829?hash=item2ca7cc9dc5:g:rAUAAOSwa-dWqf6M

Exemple de prix

-1 Arduino Due (14€ frais de port compris - 01/02/17)
http://www.ebay.com/itm/1PCS-DUE-R3-Board-SAM3X8E-32-bit-ARM-Cortex-M3-Control-Board-Module-For-Arduino-/151913531405?hash=item235ec0880d:g:UPoAAOSwfZ1Wa~AD

-1 RTC DS3231 (1,19€ frais de port compris 01-02-17, ce composant fait à la fois l'horloge et la température)
http://www.ebay.fr/itm/DS3231-Precision-RTC-Temps-Reel-Horloge-Module-Pour-Arduino-Raspberry-Pi-DIY-/291955858305?hash=item43f9ecdb81:g:kusAAOSwA3dYJxeQ

On peut donc s'en tirer pour ~42€

-Un chargeur de téléphone d'au moins 1 Ampère en 5V fera l'affaire pour l'alimentation.


Schéma




Logiciel

Le logiciel de programmation est l'Arduino IDE disponible ici:
https://www.arduino.cc/en/main/software
Il faut sélectionner "Arduino Due (programming port)" dans la liste des cartes, ainsi que le port COM détecté quand vous connectez cette dernière.

Et le programme à injecter
Sources :
http://www.gamoover.net/redacteur/Aganyte/DMDclock/128x16/DMD_Clock_V0.1.rar  (contient aussi le projet Proteus pour simuler le dot)
http://www.gamoover.net/redacteur/Aganyte/DMDclock/128x16/DMD_Clock_V0.2.rar
http://www.gamoover.net/redacteur/Aganyte/DMDclock/128x16/DMD_Clock_V0.3.rar
http://www.gamoover.net/redacteur/Aganyte/DMDclock/128x16/DMD_Clock_V0.4.rar
http://www.gamoover.net/redacteur/Aganyte/DMDclock/128x16/DMD_Clock_V0.4v2.rar  (inversée vidéo)
http://www.gamoover.net/redacteur/Aganyte/DMDclock/128x16/DMD_Clock_V0.4v3.rar  (mirroré)
http://www.gamoover.net/redacteur/Aganyte/DMDclock/128x16/DMD_Clock_V0.5.zip


Logiciel de conversion BMP2DMD

Fichier python :  http://www.gamoover.net/redacteur/Aganyte/DMDclock/128x16/Convert01.py
Necessite Python 3.2 pour fonctionner : https://www.python.org/download/releases/3.2/  (Pour Windows 64bits et 32bits)
Un tuto plus précis sur son utilisation sera fait très rapidement

Exemple de création d'un scrolling vertical avec BMP2DMD



j'ai d'abord recoupé l'image pour ne garder que le logo.

puis je l'ai redimensionné pour obtenir un fichier de 128x64 pixels (à noter que tout les multiples de 16 auraient put me servir de hauteur, comme 128x80, 128x128, 128x256 etc...)

On convertit en 4 couleurs, et on retourne l'image verticalement avec IrfanView

Il faut pour cela allez dans l'option Batch Conversion/Rename du menu File (Vous remarquer l'option Vertical Flip et Custom colors:4)



Ce qui nous donne



Enfin, on lance le programme avec la commande python convert.py SF02.bmp

tout les fichiers à convertir doivent finir par 2 chiffres, "02" dans le cas présent. Si il y a d'autres images, dans le cas d'une animation, les autres fichiers seront du type 03,04,05 etc...(cela se fait automatiquement avec IrfanView quand on demande le découpage d'un gif)


Voila le résultat (à noter que j'ai travaillé sur le programme afin d'avoir une vérification visuelle rapide de ce que le logiciel voit)



ce scrolling ne pèse que 8 trames soit 2 Ko


Iro

Waouh , super !!!
File les sources, je vais les mettre à disposition sur GAMO

On attend le suite du tuto   :-)= :-)=
<:)
"Jet set 2, c'est avec Robert Garcia ?" Kaneda, Lapsus de sac Vol.1
Peter Shou Owner' Club

WIPs : Naomi - SEGA Rally - AB Cop - Lethal Enforcers - COMPUMI - Terminator 2 - Space Invaders - Artworks pour Boitiers K7 Naomi CF - Ma collec' de panels

LES TUTOS DE GAMO   

Aganyte

Je fais une mise au propre du code ce soir et je t'envoie ça. Redonne moi ton mail par MP  ;)

Manu2

Alors, ça, c'est top !  :-)=

Comme je n'y connais rien, je vais peut-être poser des questions connes : ça peut marcher en dehors du branchement sur un pc ? Il y a une mémoire qui retient l'heure si on l'éteint ?

Merci pour tes réponses.

Aganyte

Sur la vidéo, le pc ne sert que d'alimentation. En définitive, il y aura un petit transfo 5 volts. La RTC DS3231 est fournit d'origine avec sa pile qui maintient la date et l'heure en cas d'extinction.

AsPiC

:kikitoutdur: :-*

Moi c'est surtout la partie commande de l'affichage que j'aimerais bien comprendre, le but pour moi serait de générer mes propres animations sans être tributaire de fichier à trouver sur internet. C'est possible ?

Aganyte

Oui, c'est possible même si je continue de réfléchir à la meilleur option. Je vous ferais un topo sur les idées que j'ai pour le moment.

el_nino

Mes blogs :
Vide grenier, Import, Arcade - http://doudougomgom.blogspot.fr/
Système Lindbergh : http://sega-lindbergh.blogspot.fr/
Système NAOMI : http://arcade-sega-naomi.blogspot.fr/

EK-TOMB

bonjour, moi aussi ça me plait et c'est dans un budget raisonnable  :-*

vintage76

Finally sir aganyte has come back home  :-*
Super projet de notre inventeur fou préféré.

A titre d'infos 64-16 ça fait combien en cm ? Parce que ça me plairait bien un truc comme ça discret.
======================================
vive le pouvoir de la carotte
Gloire a carotte au plus haut des cieux
======================================
Membre 144 du "All japan cocktail cabinets fans"
======================================
Cocktail Sega vic / Cocktail Karateco / Sega Naomi sitdown / Sega new astro city

======================================

Ça fait 15 ans qu'tout le monde me dit "ça va lui passer"

lipide512

Plus que raisonnable, c'est juste WOW !  :-*
Fichier INO attendu avec grande impatience ! :)  :-)=
THX !!

Joe Gillian


Aganyte

Citation de: vintage76 le Vendredi 27 Janvier 2017, 21:56:20 PM
A titre d'infos 64-16 ça fait combien en cm ? Parce que ça me plairait bien un truc comme ça discret.

Tu peux facilement ne connecter qu'une seule dalle et n'envoyer des infos que sur cette dernière.

Après, il faut savoir qu'il existe différents diamètres de led pour la fabrication de ce type de dalle. Ces deux modèles ont la même résolution mais pas du tout la même taille.

122x488mm

304x76mm

Aganyte

J'ai envoyé le code source de la version 0.2 à Iro. Voici la vidéo correspondant à cette version (le programme occupe 29% de la mémoire)


Little_Rabbit

Salut,

Superbe !  :-*

Sur cette nouvelle version, le frame rate est bien meilleur que la précédente non ? Les anims font beaucoup plus fluides.

J'aime beaucoup les transitions que tu utilises pour passer de l'affichage de l'heure ou de la température à l'animation suivante, c'est très chouette !

Bravo pour ce développement express !  ^-^

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

supercarotte

Elle est toute buggée ton horloge, elle indique freeze alors qu'il fait 18,7°   :D :fleche:
Bornes: Out Run DX, Super Hang On DX, ThunderBlade DX, Enduro Racer DX, RoadBlasters DX, Space Invaders, Discs of Tron, SuperSprint, Hang On, Pacmania, Rolling Thunder, Marble Madness, Blasteroids, Super Off Road, Rampage, NBA Jam TE, Operation Thunderbolt, Power Drift, Street Fighter, twin Sega Rally, CrazyTaxi, Harley Davidson + Aero City, Jaleco Pony // Cocktails : Missile Command, Galaxian, Nintendo DK // Flip : Creature FTBL, Revenge from Mars, Funhouse, The Machine BOP, Elvira ATPM, Swords of Fury, Xenon