Salut tout le monde.
Alors aujourd'hui je vais vous présenter ce qui est peut-être le plus
petit jeu de tetris du monde alors il y a un tout petit écran oled ici.
Ici c'est le microcontrolleur c'est un attiny85 c'est style Arduino mais en plus petit
et puis y'a 4 boutons pour contrôler le jeu.
Y'a une batterie au lithium la dernière pour alimenter le tout donc là elle n'est pas branchée
Il suffit de la brancher hop et ça s'allume
et on peut jouer à tetris directement
C'est pas mal quand même.
Donc allez je vais vous faire voir comment j'ai fabriqué tout ça
alors la première chose à faire c'est d'installer
le microcontrolleur attiny85 donc on repère la première patte ici.
Je la mets là en bas à gauche ok ça c'est bon.
Alors ensuite les boutons.
je vais en mettre un dans chaque coin il en faut 4 pour jouer à
tetris il en faut un pour tourner la pièce il en faut un pour la bouger à droite
un pour la bouger à gauche et un pour la descendre rapidement
donc on va les placer par là. Comme ça ce sera pas mal et ensuite c'est
quand ils vont être à la masse qu'ils vont être actifs du coup je vais tous leur
amener la masse
donc là c'est bon tous les boutons sont reliés à la masse,
le microcontrolleur aussi ok. Sauf celui-là parce que celui-là il est un peu spécial
je vais le brancher sur la pâte numéro un du microcontrôleur la de l'attiny
qui est aussi la patte de remise à zéro, de réinitialisation du microcontrôleur et
donc ça si je l'envoie à la masse direct pouf ça va redémarrer le jeu du coup
je veux pas ça donc je vais faire en sorte que on diminue un petit peu le voltage mais
pas beaucoup bon évidemment ça a coupé pendant que
j'étais en train de faire tout ça du coup j'ai terminé mais je vous explique
juste alors là ces trois boutons là ils sont reliés à la masse par
l'intermédiaire de ces petits fils ici les noirs l'autre côté est relié au pas
de l'attiny ce qui fait que quand on appuie sur un bouton
ça va mettre cette patte là à la masse on va pouvoir le détecter dans le code
La seule exception c'est ce bouton ci
qui est relié à la patte numéro un de l'attiny qui est la patte de
réinitialisation donc si on amène cette patte là à 0 volts
Ca va réinitialiser et donc recommencer le jeu à zéro. Pour éviter ça
oui j'ai un diviseur de voltage ici avec
deux résistances qui va faire qu'au lieu d'avoir zéro volts ici on va avoir trois
volts par exemple quelque chose comme ça du coup ça empêche la réinitialisation
mais je peux quand même le détecter dans le code donc voilà comment on va faire
pour avoir quatre boutons sur ce petit micro contrôleur qui n'a que huit pattes
c'est quand même pas mal ce que j'ai fait d'autre c'est que ici j'ai rajouté
le plus le fil rouge c'est le plus pour l'écran donc on voit l'écran il ya gnd
ça c'est la masse vcc c'est le plus et après on à l'horloge et les données pour
l'affichage et donc ici l'écran va aller juste là. c'est pour ça que le
plus arrive ici à côté de la masse ensuite on à l'horloge qui arrive là
et les données c'est le fils jaune donc l'horloge c'est la patte 7 de l'attiny
et les données c'est la patte numéro 5
ça s'est fixe, c'est les deux pattes i2c de l'attiny donc c'est celles là qu'il faut utiliser
Maintenant normalement une fois que je met l'écran ici on est prêt à afficher
des trucs. Attends c'est un petit peu gros ici donc j'aimerais le mettre un peu
mieux. je crois que je vais le raccourcir celui là
voilà ce sera mieux comme ça.
Maintenant l'écran se tient mieux à plat
Voilà, c'est pas mal. Y'a plus qu'à passer à la programmation
Alors pour programmer l'Attiny j'utilise un arduino nano comme celui-là
ça c'est le câble usb qui va sur l'ordinateur et en sortie j'ai cette
prise là qui est branchée sur certaines pattes de l'Arduino
soit je vous l'indique dans la description soit vous cherchez sur google
"Comment programmer un Attiny avec un arduino" c'est pas très compliqué il y'a
juste certaines pattes à brancher et ensuite j'ai fait ce truc là comme ça
j'ai juste à le mettre là dedans et ça je vais le laisser brancher sur l'attiny
comme ça je suis tranquille
Alors le rouge c'est le plus si je me souviens bien le bleu c'est là - ensuite on
a ça qui va là
le violet c'est la remise à zéro donc je mets ça sur la patte numéro un
ensuite on à l'orange et le marron alors ce que j'ai fait j'ai regardé une
fois où ça devait se brancher sur internet et après je l' ai pris en photo
avec mon téléphone comme ça maintenant je suis tranquille je sais toujours où
ça se branche et après ici il ya juste à aligner le rouge - le plus - avec le
plus et je sais que tout le reste est ok normalement si je branche ça une prise
usb de l'ordinateur ça s'allume et là on peut le programmer.
Allez, on se met à la programmation du coup alors. concernant le code je vais pas y passer
Concernant le code je vais pas y passer
trop de temps parce qu'il est quand même assez complexe je vais juste expliquer
le principe de certaines choses donc sur l'attiny l'écran fait 32 pixels de
large donc si je représente ici chaque
pixel par un petit carreau j'en ai 2 4 8 12 16 20 24 28 32 ça c'est la largeur de
l'écran voilà les blocs qui tombe comme ça d'ici
d'en haut vers en bas alors sur tetris le terrain de jeu fait dix carreaux de larges
donc ici un carreau c'est un bloc d'un d'une pièce si je prends le L par
exemple ici qui à cette forme là voilà ça c'est un carré et donc plus tout le
jeu ici fait dix carrés et de large donc là j'ai 32 pixels de large et si j'en garde un
un de chaque côté pour afficher les murs j'an garde un ici j'en garde un là
ça me laisse ici au milieu 30 pixels pour afficher dix carreaux du coup chaque carreau
va faire 3 pixels de large donc si je reprends le L et que je le dessine
sur notre tableau de jeu il aura cette forme-là
Et ici un autre carré de trois par trois
Et donc ça c'est la taille du tetris sur la nes.
ça fait 10 par 24 de haut et pareil ça rentre largement dans l'écran que j'ai parce
qu'il fait 128 par 32 donc 128 par trois je sais pas exactement combien ça fait
peut-être mais ça fait plus que 24 en tout cas donc voilà ça c'est la première
chose la deuxième chose c'est que chaque pixel de l'écran est représenté soit par
un zéro soit par un un. Donc la on va avoir que des zéros
ici des 1
Ainsi de suite jusqu'au bout la pareil la pareil puis là on va avoir des uns
et après partout ailleurs des zéros. voilà vous avez bien compris comme si un
écran monochrome il suffit d'avoir un 1 ou un 0 et on sait
si le pixel doit être allumé ou éteint et la façon dont c'est représenté dans
l'écran c'est que l'écran il à ce qu'ils appellent des pages qui sont normalement
des lignes parce que l'écran en principe est horizontal
mais je le met position verticale et donc une page c'est 8 pixels donc par exemple ici
on a la page on va dire zéro ici on a là un ici on a
là deux est ici jusqu'au bout on a la trois et donc pour ajouter des pixels en fait
ici on a 8 pixels et donc chaque ligne sur la page est
représenté par un octet donc ça devient assez complexe à des endroits comme
celui ci on a une superposition donc il faut que ce soit cet octet qui
rejoigne celui là et c est donc cet arrangement permet de représenter chaque
ligne du jeu avec une série de quatre options qu'on a 4 octets par ligne en
fait un deux trois quatre par ligne et vu que ces trois lignes vont toujours
être pareil ces trois lignes aussi vont toujours
être pareil du coup c'est comme si on n'avait que
24 lignes en fait j'ai pas besoin d'utiliser quatre peut-être par ligne
j'utilise quatre têtes pour trois lignes de l'écran qui représente une ligne du
jeu donc de ce fait la j'ai 4 octets x 24 4 x 24 ça fait 96 octets et ça rentre
largement dans la mémoire de l'attiny qui est de 256 octets
donc c'est parfait pour nous bon mais de toute façon que vous inquiétez pas je
vous mets tout le code sur github comme d'habitude vous allez là à cette
adresse là et vous trouverez le repository s'appelle attiny-tetris
je vous mets le lien dans la description que ça vous évitera d'avoir
à écrire tout ça
Allez bon bah c'est bon là tout est branché branché par usb donc
on va pouvoir uploader le code.
Je clique là sur "envoyer"
On voit l'arduino qui clignote c'est à dire que ça envoie les données
est-ce que ça va marcher pour l'instant tout à l'air ok
Ouais ! "Done uploading" c'est bon alors on va tester avec la petite batterie je débranche ça
alors le moins c'est celui-là donc je mets le moins sur le moins
le plus sur le plus
Ouais ! Ca marche
On peut tourner
on peut déplacer et on peut le faire descendre
Cool !
Mon plus au score pour l'instant ses 1400 et donc les je sais plus ce que
j'ai fait comme règle de score mais bon vous pouvez voir ça sur le code sur
github et tout en haut ici ça affiche la prochaine pièce
C'est indispensable pour pouvoir jouer enfin j'ai essayé de respecter
l'original et on voit la dix par 24 ça passe largement dans le petit écran
allez vous je vais fixer la batterie enlever tous ses petits fils parce que
là ça vraiment l'air pas mal et yes alors avec quoi je vais fixer la
batterie à votre avis et voilà mon meilleur ami
Duck tape
Et voila une petite console portable
Y'a pas d'interrupteur
si on veut plus jouer on débranche
quand on veut jouer on branche. ça serait pas compliqué de rajouter un
petit interrupteur c'est juste que j'en ai pas sous la main
donc pour l'instant c'est comme ça mais ça marche pas mal
juste un petit mot sur la batterie la je l'ai sortie d'une batterie
d'ordinateur portable, un vieux truc, je l'ai démontée je l'ai ouverte
j'ai récupéré celle là qui avait encore du voltage faut pas l'utiliser si
elles sont mortes c'est à dire si elles ont un voltage inférieur à 3 volts mais
si elles ont plus 3 volts en principe on peut les recharger et donc là celle-là
ça a marché elle est à 4,1 volts quelque chose comme ça donc ça suffit largement
pour faire marcher l'écran, l'attiny
et tout le reste donc c'est nickel et ça reste chargé pendant longtemps parce que ça
ça consomme rien donc bah voila je trouve ça super une micro console tetris
peut-être le plus petit tetris du monde, je sais pas si vous en connaissez des
plus petit vous mettez le lien dans la description ce serait cool et puis
ce que je vous propose si vous le construisez c'est de mettre votre
score aussi dans les commentaires et comme ça on peut se faire un petit
concours ça peut être pas mal et puis ben sinon bah comme d'hab si vous avez
bien aimé cette vidéo vous faites comme ça si vous n'avez pas aimez vous faites
comme ça et puis moi je vous dit ciao à la prochaine