Outils pour utilisateurs

Outils du site


wiki:projets:consoleretro

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:projets:consoleretro [2015/09/24 12:02]
fabien_nasa
wiki:projets:consoleretro [2016/09/11 10:59] (Version actuelle)
Ligne 1: Ligne 1:
-====== Console retro ======+ 
 +====== Console de jeu retro ======
  
 date de début : 09/2015\\ date de début : 09/2015\\
Ligne 6: Ligne 7:
  
  
-Réalisation d'une console de jeux rétro (type console de salon)*/ + 
-Le boitier permettra de connecter une télé ou un moniteur (sortie AV ou VGA)*/ +Réalisation d'une console de jeux rétro (type console de salon)\\ 
-- Particularité retour aux sources des jeux vidéos + 
 +Le but de ce projet est d'arriver a réaliser de A à Z la console et les jeux vidéos plutot rétro,le boitier permettra de connecter une télé ou un moniteur (sortie AV ou VGA) auquel on connectera des manettes\\ 
 +- Particularité retour aux sources des jeux vidéos \\
 - Création pur de jeu vidéo (aucune base ou copie de code), retour aux sources - Création pur de jeu vidéo (aucune base ou copie de code), retour aux sources
 - Inspiration :(retro gaming) - Inspiration :(retro gaming)
-*/+
  
 date de fin estimée : 01/2016 \\ date de fin estimée : 01/2016 \\
Ligne 17: Ligne 20:
 ===== Machines nécessaires ===== ===== Machines nécessaires =====
  
-/* 
-machine : imprimante 3d 
-matériel : boitier, cable de connexion 
  
 +Machine : imprimante 3d (Réalisation de manette et de cartouche de jeu)\\
 +Imprimante 3D (Ici makerboot replicator 2X ou Ultimaker²) avec PLA ou ABS\\
  
-*/ 
  
-exemple : +===== Matériels nécessaires =====
  
 +Ici il faut lister tout le matériel nécessaire, leur prix ainsi qu'une photo si possible\\
 +- Atmega 328 P\\
 +- Quartz 16 MHz\\
 +- Régulateur de tension L7805CV \\
 +- Résistance (10KΩ, 510Ω, ,,,)\\
 +- Condensateur (10μF,2x 22pF, 100μF,,,,)\\
 +- Bouton poussoir (pour les manettes)\\
 +- Potentiomètre 10KΩ\\
 +- Connecteur DIN (pour les manettes)\\
 +- Connecteur AV-VGA\\
  
-- imprimante 3D (Ici makerboot replicator 2X ou Ultimaker²) avec PLA ou ABS\\ 
  
  
-===== matériels nécessaires ===== 
  
-Ici il faut lister tout le matériel nécessaire, leur prix ainsi qu'une photo si possible\\ +===== Étape de fabrication =====
-- Atmega 328 P +
-- Quartz 16 MHz +
-- Résistance - condensateur +
-- Connecteur DIN (pour les manettes) +
-\\+
  
-===== Construction ===== 
  
 +==== Partie 1  ====
 +-Réalisation de/des manettes, lien vers les fichiers stl : https://drive.google.com/folderview?id=0B1DKn6mfGJCcMjR2bjVBQzR2VHM&usp=sharing
 +  * [[http://pmclab.fr/3dviewer/?file=:projets:consoleretro:gamepad2_top.stl|gamepad2_top.stl]]
 +  * [[http://pmclab.fr/3dviewer/?file=:projets:consoleretro:gamepad2_bottom.stl|gamepad2_bottom.stl]]
 +  * [[http://pmclab.fr/3dviewer/?file=:projets:consoleretro:gamepad2_buttons.stl|gamepad2_buttons.stl]]
 +-réalisation du boitier de la console\\
 +-réalisation de la carte mère de la console a partir de l'Atmega 328\\
 +
 +
 +==== Partie 2  ====
 +-réalisation de différents jeux vidéos couleur ou noir et blanc\\
 +-Amélioration de la console avec des passages a des cartouches de jeu\\
 +-Réalisation de cartouche avec Atmega intégré\\
  
-/* 
-Etape de fabrication : 
--Réalisation du/des manettes  
--réalisation du boitier de la console 
--réalisation de la carte mère de la console a partir de l'Atmega 328 
--réalisation de différents jeux vidéo retro couleur ou noir et blanc 
-\\ 
  
  
  
-==== Partie 1  ==== 
-==== Partie 2  ==== 
-- lien vers les fichiers stl : https://drive.google.com/folderview?id=0B1DKn6mfGJCcMjR2bjVBQzR2VHM&usp=sharing \\ 
 - les schéma \\ - les schéma \\
 \\ \\
-- les codes nécessaires\\ exemple : \\ +==== Le code ====
-<code=Arduino>+
  
-printnf("La puissance ! Charlotte ...")+<code=cpp> 
 +#include <TVout.h> 
 +#include <fontALL.h>
  
-</code> 
  
-*/+TVout TV;
  
 +int const pot=A0;
 +int zOff = 150;
 +int xOff = 0;
 +int yOff = 0;
 +int cSize = 50;
 +int view_plane = 64;
 +int val;
 +float angle = PI/60;
 +unsigned char cube2d[8][2];
 +int i=0;
 +int a=1;
 +int j=1;
 +int b=0;
 +int b2=0;
 +int G=0;
 +int c=0;
 +int point=0;
 +int vitesse =1;
 +int choix=0;
 +int rouge;
 +int partie=0;
 +int best=0;
 +int best_comp=0;
 +int hauteur=2; 
 +int ordinateur;
 +int presentation=0;
  
 +void setup(){
 +  Serial.begin(9600);
 +  TV.begin(PAL,120,96);
 +  pinMode(2,INPUT);
 +  pinMode(8,INPUT);
 +  TV.select_font(font6x8);
 +  TV.print(40,00,"PONG");
 +  TV.select_font(font6x8);
 +  TV.print(00,30,"Partie classique");
 +  TV.print(00,60,"Mode survie");
 +  TV.print(00,90,"Copyright Fabien");
  
 +}
  
-===== Journal de bord ===== 
  
-/*  +void loop(){ 
-Ici il faut mettre l'avancement du projet au jours le jourCela permet au documenteur de partager son experience (choixdifficultés...), mais aussi au PMClab de savoir si un projet continue de se construire.+  choix = digitalRead(2); 
 +  rouge=digitalRead(8); 
 +   
 +  if(rouge==HIGH){ 
 +    partie++; 
 +    delay(1000); 
 +  } 
 +  if(partie>2){ 
 +    partie=1; 
 +  } 
 +  if(partie==1){ 
 +    TV.print(00,20,"->"); 
 +    TV.draw_line(00,50,12,50,BLACK); 
 +    TV.draw_line(00,52,12,52,BLACK); 
 +    TV.draw_line(00,54,12,54,BLACK); 
 +    TV.draw_line(00,51,12,51,BLACK); 
 +    TV.draw_line(00,53,12,53,BLACK); 
 +    TV.draw_line(00,55,12,55,BLACK); 
 +    TV.draw_line(00,56,12,56,BLACK); 
 +  } 
 +  if(partie==2){ 
 +    TV.draw_line(00,20,12,20,BLACK); 
 +    TV.draw_line(00,22,12,22,BLACK); 
 +    TV.draw_line(00,24,12,24,BLACK); 
 +    TV.draw_line(00,21,12,21,BLACK); 
 +    TV.draw_line(00,23,12,23,BLACK); 
 +    TV.draw_line(00,25,12,25,BLACK); 
 +    TV.draw_line(00,26,12,26,BLACK); 
 +    TV.print(00,50,"->"); 
 +  } 
 +  if(choix==HIGH && partie ==1){ 
 +     
 +    TV.clear_screen(); 
 +        TV.print(50,00,"3"); 
 +    delay(1500); 
 +    TV.draw_line(50,00,60,00,BLACK); 
 +    TV.print(50,00,"2"); 
 +    delay(1500); 
 +    TV.draw_line(50,00,60,00,BLACK); 
 +    TV.print(50,00,"1"); 
 +    delay(1500); 
 +    TV.clear_screen(); 
 +    G=0; 
 +    point=0; 
 +    best_comp=0; 
 +    i=0; 
 +    j=1; 
 +    b=0; 
 +    b2=0; 
 +    c=0; 
 +    vitesse=1; 
 +    hauteur=2; 
 +    presentation=0; 
 +    while(G==0){ 
 +      val= analogRead(pot); 
 +      if(val>800){ 
 +        val=810; 
 +      } 
 +  if((hauteur*(i)+8)-15<8){ 
 +    ordinateur=8; 
 +  } 
 +  else{ 
 +    ordinateur=(hauteur*(i)+8)-15; 
 +  } 
 +  TV.draw_line(03,8+(87/100)*(val/10),03,38+(87/100)*(val/10),WHITE); 
 +  TV.draw_line(03,9,03,8+(val/10),BLACK); 
 +  TV.draw_line(03,38+val/10,03,94,BLACK); 
 +  TV.draw_line(vitesse*(j)+3,hauteur*(i)+8,vitesse*(j)+3,hauteur*(i)+8,WHITE); 
 +  
 + if(j>(60/vitesse)){ 
 +    TV.draw_line(115,ordinateur,115,(hauteur*(i)+8)+15,WHITE); 
 +    TV.draw_line(115,0,115,(hauteur*(i)+8)-15,BLACK); 
 +    TV.draw_line(115,(hauteur*(i)+8)+15,115,95,BLACK); 
 + } 
 +     
 +  TV.draw_line(00,8,00,95,WHITE); 
 +  TV.draw_line(118,8,118,95,WHITE); 
 +  TV.draw_line(00,95,118,95,WHITE); 
 +  TV.draw_line(00,8,118,8,WHITE); 
 +   
 +  TV.draw_line(55,8,55,15,WHITE); 
 +  TV.draw_line(55,23,55,31,WHITE); 
 +  TV.draw_line(55,39,55,47,WHITE); 
 +  TV.draw_line(55,55,55,63,WHITE); 
 +  TV.draw_line(55,71,55,79,WHITE); 
 +  TV.draw_line(55,87,55,95,WHITE); 
 +   
 +  TV.select_font(font6x8); 
 +  TV.print(00,00,"J1:"); 
 +  TV.print(20,00,point); 
 +  TV.print(80,00,"J2:"); 
 +  TV.print(100,00,best_comp); 
 +  Serial.print("potVal: \n"); 
 +  Serial.print(val);
  
-*/ 
  
 +  
 +    if(((hauteur*i)+8 < 8+(val/10) || (hauteur*i)+8> 38+val/10 )&& j==0 && G==0 && c==1){
 +      G=1;
 +      point--;
 +      if(point>best){
 +        best=point;
 +      }
 +      choix=0;
 +      TV.clear_screen();
 +      TV.select_font(font8x8);
 +      TV.println("\nSCORES :  \n");
 +      TV.println(point);
 +      delay (5000);
 +      TV.select_font(font6x8);
 +      TV.println("\n Nouvelle partie ?\n");
 +      if(point>6){
 +        TV.println("\n Bon score\n");
 +      }
 +      delay (5000);
 +      delay(9000);
 +      TV.clear_screen();
 +      TV.select_font(font6x8);
 +      TV.print(40,00,"PONG ");
 +      TV.print(00,30,"Partie classique");
 +      TV.print(00,60,"Mode survie");
 +      TV.print(00,90,"Best Score :");
 +      TV.print(80,90,best);
 +    }
 +    
 +  if(i<(88/hauteur) && b==0){
 +    i=i+a;
 +  }
 +  else{
 +    i=i-a;
 +    b=1;
 +  }
  
 +  if((vitesse*j)+3<115 && b2==0 && G==0 ){
 +    if(j!=0 ){
 +     TV.draw_line(vitesse*(j+3)-(vitesse-1)*3,9,vitesse*(j+3)-(vitesse-1)*3,94,BLACK);
 +    }
 +     j++;
 +  }
 +  
 +  if(i==0){
 +    b=0;
 +  }
 +  
 +  if(j==112/vitesse){
 +    b2=1;
 +    best_comp ++;
 +  }
 +  
 +  if(b2==1){
 +    if(j!=0){
 +    TV.draw_line(vitesse*(j+3)-(vitesse-1)*3,9,vitesse*(j+3)-(vitesse-1)*3,94,BLACK);
 +    }
 +    j--;
 +    c=1;
 +  }
 +  if(j==0){
 +    b2=0;
 +    point++;
 +  }
 +  
 +  }
 +  }
 +  
 +  
 +  if(choix==HIGH && partie ==2){
 +    
 +    TV.clear_screen();
 +        TV.print(50,00,"3");
 +    delay(1500);
 +    TV.draw_line(50,00,60,00,BLACK);
 +    TV.print(50,00,"2");
 +    delay(1500);
 +    TV.draw_line(50,00,60,00,BLACK);
 +    TV.print(50,00,"1");
 +    delay(1500);
 +    TV.clear_screen();
 +    G=0;
 +    point=0;
 +    best_comp=0;
 +    i=0;
 +    j=1;
 +    b=0;
 +    b2=0;
 +    c=0;
 +    vitesse=1;
 +    hauteur=2;
 +    presentation=0;
 +    while(G==0){
 +      val= analogRead(pot);
 +      if(val>800){
 +        val=810;
 +      }
 +  if((hauteur*(i)+8)-15<8){
 +    ordinateur=8;
 +  }
 +  else{
 +    ordinateur=(hauteur*(i)+8)-15;
 +  }
 +  TV.draw_line(03,8+(val/10),03,38+val/10,WHITE);
 +  TV.draw_line(03,9,03,8+(val/10),BLACK);
 +  TV.draw_line(03,38+val/10,03,94,BLACK);
 +  TV.draw_line(vitesse*(j)+3,hauteur*(i)+8,vitesse*(j)+3,hauteur*(i)+8,WHITE);
 + 
 + if(j>(60/vitesse)){
 +    TV.draw_line(115,ordinateur,115,(hauteur*(i)+8)+15,WHITE);
 +    TV.draw_line(115,0,115,(hauteur*(i)+8)-15,BLACK);
 +    TV.draw_line(115,(hauteur*(i)+8)+15,115,95,BLACK);
 + }
 +    
 +  TV.draw_line(00,8,00,95,WHITE);
 +  TV.draw_line(118,8,118,95,WHITE);
 +  TV.draw_line(00,95,118,95,WHITE);
 +  TV.draw_line(00,8,118,8,WHITE);
 +  
 +  TV.draw_line(55,8,55,15,WHITE);
 +  TV.draw_line(55,23,55,31,WHITE);
 +  TV.draw_line(55,39,55,47,WHITE);
 +  TV.draw_line(55,55,55,63,WHITE);
 +  TV.draw_line(55,71,55,79,WHITE);
 +  TV.draw_line(55,87,55,95,WHITE);
 +  
 +  TV.select_font(font6x8);
 +  TV.print(00,00,"J1:");
 +  TV.print(20,00,point);
 +  TV.print(80,00,"J2:");
 +  TV.print(100,00,best_comp);
 +  Serial.print("potVal: \n");
 +  Serial.print(val);
 +
 +
 +  
 +    if(((hauteur*i)+8 < 8+(val/10) || (hauteur*i)+8> 38+val/10 )&& j==0 && G==0 && c==1){
 +      G=1;
 +      point--;
 +      if(point>best){
 +        best=point;
 +      }
 +      choix=0;
 +      TV.clear_screen();
 +      TV.select_font(font8x8);
 +      TV.println("\nSCORES :  \n");
 +      TV.println(point);
 +      delay (5000);
 +      TV.select_font(font6x8);
 +      TV.println("\n Nouvelle partie ?\n");
 +      if(point>6){
 +        TV.println("\n Bon score\n");
 +      }
 +      delay (5000);
 +      delay(9000);
 +      TV.clear_screen();
 +      TV.select_font(font6x8);
 +      TV.print(40,00,"PONG ");
 +      TV.print(00,30,"Partie classique");
 +      TV.print(00,60,"Mode survie");
 +      TV.print(00,90,"Best Score :");
 +      TV.print(80,90,best);
 +    }
 +    
 +  if(i<(88/hauteur) && b==0){
 +    i=i+a;
 +  }
 +  else{
 +    i=i-a;
 +    b=1;
 +  }
 +
 +  if((vitesse*j)+3<115 && b2==0 && G==0 ){
 +    if(j!=0 ){
 +     TV.draw_line(vitesse*(j+3)-(vitesse-1)*3,9,vitesse*(j+3)-(vitesse-1)*3,94,BLACK);
 +    }
 +     j++;
 +  }
 +  
 +  if(i==0){
 +    b=0;
 +  }
 +  
 +  if(j==112/vitesse){
 +    b2=1;
 +    best_comp ++;
 +  }
 +  
 +  if(b2==1){
 +    if(j!=0){
 +    TV.draw_line(vitesse*(j+3)-(vitesse-1)*3,9,vitesse*(j+3)-(vitesse-1)*3,94,BLACK);
 +    }
 +    j--;
 +    c=1;
 +  }
 +  if(j==0){
 +    b2=0;
 +    point++;
 +  }
 +    if(point>=5 && j>0){
 +    vitesse =2;
 +    hauteur=3;
 +  }
 +  
 +  if(point>=10 && j>0){
 +    vitesse=4;
 +    hauteur=4;
 +    
 +  }
 +  
 +  }
 +  }
 +  
 +  
 +}
 +
 +
 +  
 +
 +
 +</code>
 +
 +
 +
 +
 +
 +===== Journal de bord =====
  
wiki/projets/consoleretro.1443096170.txt.gz · Dernière modification: 2016/09/11 10:47 (modification externe)