start:arduino:minitel:programme
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
start:arduino:minitel:programme [2022/07/25 17:45] – gerardadmin | start:arduino:minitel:programme [2023/01/27 16:08] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 15: | Ligne 15: | ||
*prise Arduino GND sur 2 minitel (Masse) | *prise Arduino GND sur 2 minitel (Masse) | ||
- | <code c ESP32_Minitel-Demo.ino> | + | ==== Minitel Demo==== |
+ | |||
+ | == Minitel-Esp32 Test Laison serie entre minitel et terminal arduino ou esp32=== | ||
+ | <code c ESP32_Minitel-Demo000.ino> | ||
+ | // OK apres test | ||
+ | |||
+ | void setup() { | ||
+ | Serial.begin(115200); | ||
+ | Serial2.begin(1200, | ||
+ | } | ||
+ | |||
+ | |||
+ | void loop() { | ||
+ | // redirection debug -> minitel | ||
+ | while (Serial.available() > 0) { | ||
+ | Serial2.write(Serial.read()); | ||
+ | } | ||
+ | // redirection minitel -> debug | ||
+ | while (Serial2.available() > 0) { | ||
+ | Serial.write(Serial2.read()); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | == Minitel-ESP32 Test differant affichage== | ||
+ | |||
+ | <code c ESP32_Minitel-Demo001.ino> | ||
+ | // Code OK apres test | ||
//////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////// | ||
/* | /* | ||
Ligne 259: | Ligne 286: | ||
</ | </ | ||
+ | |||
+ | ==== ESP32-Minitel Pong ==== | ||
+ | |||
+ | <code c Esp32-Minitel_Pong.ino> | ||
+ | |||
+ | //Programme OK | ||
+ | |||
+ | #include < | ||
+ | |||
+ | #define MINITEL_PORT Serial2 //for ESP32 | ||
+ | //#define MINITEL_PORT Serial1 //for Leonardo | ||
+ | |||
+ | #define DEBUG true | ||
+ | #define DEBUG_PORT Serial | ||
+ | |||
+ | #if DEBUG // Debug enabled | ||
+ | #define debugBegin(x) | ||
+ | #define debugPrint(x) | ||
+ | #define debugPrintHEX(x) | ||
+ | #define debugPrintBIN(x) | ||
+ | #else // Debug disabled : Empty macro functions | ||
+ | #define debugBegin(x) | ||
+ | #define debugPrint(x) | ||
+ | #define debugPrintHEX(x) | ||
+ | #define debugPrintBIN(x) | ||
+ | #endif | ||
+ | |||
+ | // SOUND FX | ||
+ | #define SOUND 1 // score using bip | ||
+ | //#define SOUND2 1 // hit using modem connection | ||
+ | |||
+ | // SCREEN SIZE | ||
+ | #define WIDTH 40 | ||
+ | #define HEIGHT 24 | ||
+ | |||
+ | // GAME FIELD | ||
+ | #define X1 2 //player1 column | ||
+ | #define X2 40 //player2 column | ||
+ | #define XNET 21 //net column | ||
+ | #define SPACE 2 //score digit space | ||
+ | #define YSCORE 2 //score top row | ||
+ | #define WSCORE 2 //score width | ||
+ | #define HSCORE 4 //score height | ||
+ | #define XSCORE1 14 //player 1 score column - align right | ||
+ | #define XSCORE1_U XSCORE1-WSCORE+1 //unit digit | ||
+ | #define XSCORE1_T XSCORE1_U-WSCORE-SPACE //tenth digit | ||
+ | #define XSCORE2 26 //player 2 score column - align left | ||
+ | #define XSCORE2_T XSCORE2 // unit digit | ||
+ | #define XSCORE2_U XSCORE2+WSCORE+SPACE // tenth digit | ||
+ | |||
+ | // GAME PARAMETER | ||
+ | #define NBALL 15 //NB OF BALLS IN THE MATCH | ||
+ | |||
+ | // BALL DIRECTION | ||
+ | #define HAUT_DROITE 1 | ||
+ | #define BAS_DROITE 2 | ||
+ | #define BAS_GAUCHE 3 | ||
+ | #define HAUT_GAUCHE 4 | ||
+ | |||
+ | Minitel minitel(MINITEL_PORT); | ||
+ | |||
+ | int yP1 = 13; //player1 position | ||
+ | int yP2 = 13; //player2 position | ||
+ | int xBall = 0; | ||
+ | int yBall = 0; | ||
+ | int xBallOld = 0; | ||
+ | int yBallOld = 0; | ||
+ | int d = HAUT_DROITE; | ||
+ | int p1 = 0; //player1 score | ||
+ | int p2 = 0; //player2 score | ||
+ | int startingCounter = 0; | ||
+ | int level = 2; //the smaller the quicker | ||
+ | int bypassCounter = 0; | ||
+ | int hitCounter = 0; //nb hit | ||
+ | bool ping = true; | ||
+ | |||
+ | const byte digit[10][WSCORE*HSCORE] = { // digit de 0 à 9 sur 2 cellules par 4 | ||
+ | // les cellules sont décrites horizontalement de gauche a droite et de haut en bas | ||
+ | {0b111110, | ||
+ | {0b000000, | ||
+ | {0b111100, | ||
+ | {0b111100, | ||
+ | {0b101010, | ||
+ | {0b111110, | ||
+ | {0b101010, | ||
+ | {0b111100, | ||
+ | {0b111110, | ||
+ | {0b111110, | ||
+ | }; | ||
+ | |||
+ | |||
+ | // image of welcome page | ||
+ | // made from jpg using processing IDE | ||
+ | // +jpgtovdt2.pde (PAMAL) to get vdt from jpg | ||
+ | // +conversion_videotex_hex (Eserandour) to get hex from vdt | ||
+ | typedef unsigned char PROGMEM prog_uchar; | ||
+ | |||
+ | const int LONGUEUR_TRAME_IMAGE = 1650; | ||
+ | const prog_uchar IMAGE[] PROGMEM = {0x0C, |