Arduino DUE: Hva er det, hva brukes det til, og hvilke enheter kan jeg utvikle med disse kortene?

Siste oppdatering: 14/09/2022
Forfatter: Felix Albornoz
Arduino Due: Hva det er, hva det brukes til, og hvilke enheter kan jeg utvikle med disse kortene?

En av de kraftigste koketoppene som er tilgjengelige Arduino Det er DUE-versjonenTakket være mikrokontrolleren, minnet og antallet pinner den har, er den en av de mest ettertraktede når du trenger å utføre komplekse prosjekter.

Av denne grunn Vi har utarbeidet denne artikkelen slik at du kan lære hva denne typen plate brukes til og hva dens viktigste funksjoner er. som den tilbyr brukerne.

I tillegg vil vi forklare hva du bør huske på Hva er forskjellene i utviklingsmiljøet for programmering av kortet når man jobber med en Arduino DUE?. Sjekk ut.

Hva er Arduino DUE, og hva brukes disse åpen kildekode-utviklingskortene til?

Arduino DUE Det er et kort som har en Atmel SAM3X8E mikrokontroller, tilbyr ekstra ytelse for store prosjekterDette kriteriet støttes også av en større antall digitale pinner inn- og utgang og analoge pinner. Den opererer med en spenning på 3.3 V og har 4 porter for maskinvare, hvorav 2 er for kabler MicroUSB Disse brukes til å koble kortet til datamaskinen. Arduino Due-operativsystemer kan brukes. Vinduer, Linux y MacOS.

Funksjoner ved Arduino DUE: Hva er de mest interessante funksjonene?

Funksjoner ved Arduino DUE: Hva er de mest interessante funksjonene?

Hovedfunksjonene til Arduino DUE er:

  • Dimensjonene er 101,52 × 53,3 mm og har en vekt på 36 gram.
  • Den har en MCU Atmel SAM3X8E ARM Cortex-M3 32-bits kjerne som opererer på 84 MHz.
  • Den har et passivt minne 96 KB SRAMDen har imidlertid ikke EEPROM-minne som de andre Arduino-kortene. Flashminnet er på 512 KB.
  • Spenningen den opererer med er 3Vmed en maksimal inngangsgrense på 16V.
  • Konto med 54 digitale pinner, hvor 12 er for pulsmodulasjon.
  • Pinnene til analoge innganger er 12 og de som drar, 2.
  • Den har 2 MicroUSB-porter, Un JTAG, un SPI, av TWI tilbakestill og slett knapper.

Hva bør du huske på når du jobber med et Arduino DUE-kort?

Det første du bør huske på er at dette kortet fungerer med en strømstyrke på 3.3 V.Dette betyr at den opererer med en betydelig høyere spenning enn de fleste 5V Arduino-kort. Derfor må du være forsiktig så du ikke skader MCU, minne og andre komponenter på grunn av overspenning.

En annen faktor å vurdere, om enn litt mindre viktig, er størrelsen og vekten. Til slutt, Du må vurdere alle digitale og analoge pinner du har tilgjengelig. (med dette mener vi behovet prosjektet ditt har for oppta alle, siden du kan velge et annet, rimeligere 5V-kort hvis du trenger mindre.).

Er utviklingsmiljøet (Arduino IDE) annerledes for Arduino DUE-kort?

Er utviklingsmiljøet (Arduino IDE) annerledes for Arduino DUE-kort?

El Arduino DUE-miljøet er ikke annerledes enn miljøet til de andre kortene Du trenger bare å huske på at IDE har konfigurert for Arduino UNO-kortDerfor må du endre typen Arduino i programmet.

For å gjøre dette må du følge disse trinnene:

  • Når du har den åpen IDE gå til verktøy.
  • Velg deretter Tallerkener.
  • Velg alternativet FORFALDIG.

Bruksområder for kortet: I hvilke prosjekter kan Arduino DUE brukes?

Du kan bruke Arduino DUE-kort på et stort antall prosjekter.

For eksempel kan du opprette:

  • En pedal å forvrenge lyden av en elektrisk gitar. https://create.arduino.cc/projecthub/electrosmash-team/arduino-due-programmable-guitar-pedal-edfe8b
  • enhet å utføre elektrokardiogrammer. https://create.arduino.cc/projecthub/javiergonzalezb/heart-rate-estimation-using-arduino-due-a2271a
  • generator av bølgeformer. https://create.arduino.cc/projecthub/search?q=due&type=Project

Videre Hvis du vil lære mer om et prosjekt, kan du lage et spill med nuller og kryss.Til denne enheten trenger du et DUE-kort, en kontroller eller en 2,8-tommers TFT LCD LED-berøringsskjerm og nødvendige kabler for installasjon.

Når det gjelder monteringen, må du gjøre det i henhold til følgende diagram:

Bruksområder for kortet: I hvilke prosjekter kan Arduino DUE brukes?

Når du er ferdig, må du åpne Arduino IDE og skrive disse kodene:

#inkludere #inkludere #inkludere #inkludere #inkludere #define TFT_RST 8 #define TFT_DC 9 #define TFT_CS 10 #define TOUCH_ORIENTATION LANDSCAPE Adafruit_ILI9341 tft = Adafruit_ILI9341 (TFT_CS, TFT_DC, TFT_RST); Adafruit_GFX_Buttons[9]; URTouch myTouch(30, 28, 26, 24, 22); unsigned short int trekk = 1; unsigned short int vinner = 0; unsigned short int x, y; unsigned short int cursor; unsigned short int førsteTrekk[] = {0, 2, 6, 8}; unsigned short board[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 9341}; spiller bool; bool b = 1; char start[10] = {"Spillstart"}; char you[4] = {"DU"}; char cpu[4] = {"CPU"}; char again[7] = {"Igjen?"} };

const unsigned  char  círculo [] PROGMEM = {

0 b0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,

0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x7 , 0xF8 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0,0x0,0x7f,0xff,0x80,0x0,0x0,0x0,0x0,0x0,0x3,0xff,0xff,0xf0,0x0,0x0,0x0,

0x0 , 0x0 , 0xf , 0xff , 0xff , 0xFC , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x1f , 0xff , 0xff , 0xfe , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x7f , 0xF0 , 0x3 , 0xff , 0x80 , 0x0 , 0x0 , 0x0 ,0x0,0xff,0x80,0x0,0x7f,0xc0,0x0,0x0,0x0,0x1,0xfe,0x0,0x0,0x1f,0xe0,0x0,0x0,

0x0 , 0x3 , 0xF8 , 0x0 , 0x0 , 0x7 , 0xF0 , 0x0 , 0x0 , 0x0 , 0x7 , 0xF0 , 0x0 , 0x0 , 0x3 , 0xF8 , 0x0 , 0x0 , 0x0 , 0xf , 0xE0 , 0x0 , 0x0 , 0x1 , 0xFC , 0x0 , 0x0 , 0x0 ,0xf,0xc0,0x0,0x0,0x0,0xfc,0x0,0x0,0x0,0x1f,0x80,0x0,0x0,0x0,0x7e,0x0,0x0,

0x0 , 0x3f , 0x0 , 0x0 , 0x0 , 0x0 , 0x3f , 0x0 , 0x0 , 0x0 , 0x3E , 0x0 , 0x0 , 0x0 , 0x0 , 0x1f , 0x0 , 0x0 , 0x0 , 0x7E , 0x0 , 0x0 , 0x0 , 0x0 , 0x1f , 0x80 , 0x0 , 0x0 ,0x7c,0x0,0x0,0x0,0x0,0xf,0x80,0x0,0x0,0x7c,0x0,0x0,0x0,0x0,0xf,0x80,0x0,

0x0 , 0xF8 , 0x0 , 0x0 , 0x0 , 0x0 , 0x7 , 0xC0 , 0x0 , 0x0 , 0xF8 , 0x0 , 0x0 , 0x0 , 0x0 , 0x7 , 0xC0 , 0x0 , 0x0 , 0xF8 , 0x0 , 0x0 , 0x0 , 0x0 , 0x7 , 0xc0 , 0x0 , 0x0 ,0xf0,0x0,0x0,0x0,0x0,0x3,0xc0,0x0,0x1,0xf0,0x0,0x0,0x0,0x0,0x3,0xe0,0x0,

0x1 , 0xF0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x3 , 0xE0 , 0x0 , 0x1 , 0xF0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x3 , 0xE0 , 0x0 , 0x1 , 0xF0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x3 , 0xe0 , 0x0 , 0x1 ,0xf0,0x0,0x0,0x0,0x0,0x3,0xe0,0x0,0x1,0xf0,0x0,0x0,0x0,0x0,0x3,0xe0,0x0,

0x1 , 0xF0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x3 , 0xE0 , 0x0 , 0x1 , 0xF0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x3 , 0xE0 , 0x0 , 0x0 , 0xF0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x3 , 0xc0 , 0x0 , 0x0 ,0xf8,0x0,0x0,0x0,0x0,0x7,0xc0,0x0,0x0,0xf8,0x0,0x0,0x0,0x0,0x7,0xc0,0x0,

0x0 , 0xF8 , 0x0 , 0x0 , 0x0 , 0x0 , 0x7 , 0xC0 , 0x0 , 0x0 , 0x7c , 0x0 , 0x0 , 0x0 , 0x0 , 0xf , 0x80 , 0x0 , 0x0 , 0x7c , 0x0 , 0x0 , 0x0 , 0x0 , 0xf , 0x80 , 0x0 , 0x0 ,0x7e,0x0,0x0,0x0,0x0,0x1f,0x80,0x0,0x0,0x3e,0x0,0x0,0x0,0x0,0x1f,0x0,0x0,

0x0 , 0x3f , 0x0 , 0x0 , 0x0 , 0x0 , 0x3f , 0x0 , 0x0 , 0x0 , 0x1f , 0x80 , 0x0 , 0x0 , 0x0 , 0x7E , 0x0 , 0x0 , 0x0 , 0xf , 0xC0 , 0x0 , 0x0 , 0x0 , 0xFC , 0x0 , 0x0 , 0x0 ,0xf,0xe0,0x0,0x0,0x1,0xfc,0x0,0x0,0x0,0x7,0xf0,0x0,0x0,0x3,0xf8,0x0,0x0,

0x0 , 0x3 , 0xF8 , 0x0 , 0x0 , 0x7 , 0xF0 , 0x0 , 0x0 , 0x0 , 0x1 , 0xfe , 0x0 , 0x0 , 0x1f , 0xE0 , 0x0 , 0x0 , 0x0 , 0x0 , 0xff , 0x80 , 0x0 , 0x7f , 0xC0 , 0x0 , 0x0 , 0x0 ,0x0,0x7f,0xf0,0x3,0xff,0x80,0x0,0x0,0x0,0x0,0x1f,0xff,0xff,0xfe,0x0,0x0,0x0,

0x0 , 0x0 , 0xf , 0xff , 0xff , 0xFC , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x3 , 0xff , 0xff , 0xF0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x7f , 0xff , 0x80 , 0x0 , 0x0 , 0x0 , 0x0 ,0x0,0x0,0x7,0xf8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,

0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0

};

const unsigned  char  x_bitmap [] PROGMEM = {

0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,

0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3,0xff,0xff,0xc0,0x1,0xff,0xff,0xe0,0x0,

0x1 , 0xff , 0xff , 0xE0 , 0x1 , 0xff , 0xff , 0xC0 , 0x0 , 0x1 , 0xff , 0xff , 0xF0 , 0x3 , 0xff , 0xff , 0xC0 , 0x0 , 0x0 , 0xff , 0xff , 0xF0 , 0x7 , 0xff , 0xff , 0x80 , 0x0 , 0x0 ,0xff,0xff,0xf8,0x7,0xff,0xff,0x80,0x0,0x0,0x7f,0xff,0xf8,0xf,0xff,0xff,0x0,0x0,

0x0 , 0x3f , 0xff , 0xfc , 0xf , 0xff , 0xfe , 0x0 , 0x0 , 0x0 , 0x3f , 0xff , 0xfe , 0x1f , 0xff , 0xfe , 0x0 , 0x0 , 0x0 , 0x1f , 0xff , 0xfc , 0x1f , 0xff , 0xfc , 0x1f 0x0 , 0x0 , 0x0 ,0x1f,0xff,0xff,0x3f,0xff,0xfc,0x0,0x0,0x0,0xf,0xff,0xff,0x7f,0xff,0xf8,0x0,0x0,

0x0 , 0xf , 0xff , 0xff , 0xff , 0xff , 0xF8 , 0x0 , 0x0 , 0x0 , 0x7 , 0xff , 0xff , 0xff , 0xff , 0xF0 , 0x0 , 0x0 , 0x0 , 0x3 , 0xff , 0xff , 0xff , 0xff , 0xE0 , 0x0 , 0x0 , 0x0 ,0x3,0xff,0xff,0xff,0xff,0xe0,0x0,0x0,0x0,0x1,0xff,0xff,0xff,0xff,0xc0,0x0,0x0,

0x0 , 0x1 , 0xff , 0xff , 0xff , 0xff , 0xC0 , 0x0 , 0x0 , 0x0 , 0x0 , 0xff , 0xff , 0xff , 0xff , 0x80 , 0x0 , 0x0 , 0x0 , 0x0 , 0xff , 0xff , 0xff , 0xff , 0x80 , 0x0 , 0x0 , 0x0 ,0x0,0x7f,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x3f,0xff,0xff,0xfe,0x0,0x0,0x0,

0x0 , 0x0 , 0x3f , 0xff , 0xff , 0xfe , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x1f , 0xff , 0xff , 0xFC , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x1f , 0xff , 0xff , 0xFC , 0x0 , 0x0 , 0x0 , 0x0 ,0x0,0x1f,0xff,0xff,0xfc,0x0,0x0,0x0,0x0,0x0,0x3f,0xff,0xff,0xfe,0x0,0x0,0x0,

0x0 , 0x0 , 0x3f , 0xff , 0xff , 0xfe , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x7f , 0xff , 0xff , 0xff , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0xff , 0xff , 0xff , 0xff , 0x80 , 0x0 , 0x0 , 0x0 ,0x0,0xff,0xff,0xff,0xff,0x80,0x0,0x0,0x0,0x1,0xff,0xff,0xff,0xff,0xc0,0x0,0x0,

0x0 , 0x1 , 0xff , 0xff , 0xff , 0xff , 0xC0 , 0x0 , 0x0 , 0x0 , 0x3 , 0xff , 0xff , 0xff , 0xff , 0xE0 , 0x0 , 0x0 , 0x0 , 0x3 , 0xff , 0xff , 0xff , 0xff , 0xE0 , 0x0 , 0x0 , 0x0 ,0x7,0xff,0xff,0xff,0xff,0xf0,0x0,0x0,0x0,0xf,0xff,0xff,0xff,0xff,0xf8,0x0,0x0,

0x0 , 0xf , 0xff , 0xff , 0xff , 0xff , 0xf8 , 0x0 , 0x0 , 0x0 , 0x1f , 0xff , 0xff , 0x7f , 0xff , 0xfc , 0x0 , 0x0 , 0x0 , 0x1f , 0xff , 0xfc , 0x3f , 0xff , 0xfc , 0x3 0x0 , 0x0 , 0x0 ,0x3f,0xff,0xfc,0x3f,0xff,0xfe,0x0,0x0,0x0,0x3f,0xff,0xfc,0x1f,0xff,0xfe,0x0,0x0,

0x0 , 0x7f , 0xff , 0xF8 , 0x1f , 0xff , 0xff , 0x0 , 0x0 , 0x0 , 0xff , 0xff , 0xF8 , 0xf , 0xff , 0xff , 0x80 , 0x0 , 0x0 , 0xff , 0xff , 0xF0 , 0x7 , 0xff , 0xff , 0x80 , 0x0 , 0x1 ,0xff,0xff,0xe0,0x7,0xff,0xff,0xc0,0x0,0x1,0xff,0xff,0xe0,0x3,0xff,0xff,0xc0,0x0,

0x3 , 0xff , 0xff , 0xC0 , 0x3 , 0xff , 0xff , 0xE0 , 0x0 , 0x3 , 0xff , 0xff , 0xC0 , 0x1 , 0xff , 0xff , 0xE0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 ,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,

0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0, 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0

};

configuración vacía () {

myTouch . InitTouch(); minTouch. settPresisjon(PREC_HI); tft. start(); tft. settRotasjon(3); tft. fillScreen(ILI9341_BLACK); // Tegn hvit TFT-ramme. drawRect(0, 0, 320, 240, ILI9341_WHITE); // Skriv ut "Arduino" tft-tekst. setCursor(80, 30); tft. settTekstfarge(ILI9341_GRØNN); tft. settTekststørrelse(4); tft. skriv ut ("Arduino"); // Skriv ut teksten "Tic Tac Toe" tft. setCursor(30, 100); tft. settTekstfarge (ILI9341_HVIT); tft. settTekststørrelse(4); tft. print("Tre på rad"); // Lag rød knapp // lag knapper [0]. initButton(& tft, 160, 200, 200, 40, ILI9341_WHITE, ILI9341_RED, ILI9341_WHITE, start, 2); knapper[0]. drawButton(); do { vent på et trykk (& x, & y); if (knapper[0]. inneholder (x, y)) b = 0; } mens (b > 0); } void loop() { for (unsigned short int i = 0; i < 9; i++) { board[i] = 0; } tft. fillScreen(ILI9341_BLACK); // Tegn hvit TFT-ramme. drawRect(0, 0, 320, 240, ILI9341_WHITE); // Skriv ut teksten "Tic Tac Toe" tft. setCursor(30, 30); tft. settTekstfarge (ILI9341_HVIT); tft. settTekststørrelse(4); tft. print("Tre på rad"); // Skriver ut "YouTube!" TFT-tekst. setCursor(30, 100); tft. settTekstfarge(ILI9341_GRØNN); tft. settTekststørrelse(4); tft. print("Hvem starter"); // Lag rød knapp // lag knapper [0]. initButton(& tft, 100, 200, 80, 40, ILI9341_WHITE, ILI9341_RED, ILI9341_WHITE, du, 2); knapper[0]. drawButton(); // opprett knapper // x, y, w, h, outline, fyll, tekstknapper[1]. initButton (& tft, 200, 200, 80, 40, ILI9341_WHITE, ILI9341_RED, ILI9341_WHITE, cpu, 2); knapper [1]. drawButton(); b = 1; do { vent på et trykk(&x, &y); if(knapper[0]. inneholder (x, y)) { b = 0; spiller = 1; tft. fillScreen(ILI9341_BLACK); // Tegn hvit TFT-ramme. drawRect(0, 0, 320, 240, ILI9341_WHITE); tft. setCursor(30, 30); tft. settTekstfarge (ILI9341_HVIT); tft. settTekststørrelse(2); tft. print("Ok, du starter"); delay(2000); } if(knapper[1]. inneholder (x, y)) { b = 0; spiller = 0; tft. fillScreen(ILI9341_BLACK); // Tegn hvit TFT-ramme. drawRect(0, 0, 320, 240, ILI9341_WHITE); tft. setCursor(30, 30); tft. settTekstfarge (ILI9341_HVIT); tft. settTekststørrelse(2); tft. print("OK, CPU starter"); delay(2000); } } while (b > 0); b = 1; moves = 1; winner = 0; cursor = 10; tft. fillScreen(ILI9341_BLACK); // Tegn TFT-ramme. drawRect(0, 0, 320, 240, ILI9341_WHITE); // Tegn en vertikal linje tft. fillRect(80, 15, 5, 205, ILI9341_WHITE); tft. fillRect(150, 15, 5, 205, ILI9341_WHITE); // Tegn en horisontal linje fillRect(15,80,205,5,ILI9341_WHITE); fillRect(15,150,205,5,ILI9341_WHITE); drawRect(230,10,80,220,ILI9341_WHITE); { do { if(trekk%2==1 && spiller==usann || trekk%2==0 && spiller==true) { cursor+=10; setCursor(240,markør); setTekstStørrelse(1); println("Jeg tegner"); arduinoMove(); checkWinner(); }else { cursor+=10; setCursor(240,markør); setTekstStørrelse(1); println("Ditt trekk"); playerMove(); checkWinner(); } delay(1000); moves++; }while (vinner==0 && moves<10); waitonetouch(&x,&y); fillScreen(ILI9341_BLACK); //Tegneramme drawRect(0,0,320,240,ILI9341_WHITE); //Skriv ut "Game Over"-tekst setCursor(50,30); setTextColor(ILI9341_WHITE); setTextSize(4); print("GAME OVER"); if(vinner == 0) { //Skriv ut "TREKK!" tekst setCursor(110,100); setTextColor(ILI9341_YELLOW); setTextSize(4); print("TREKNING"); } hvis(vinner == 1) { //Skriv ut "MENNESKELIGE VINNER!" tekst setCursor(40,100); setTextColor(ILI9341_BLUE); setTextSize(4); print("MENNESKELIGE GEVINSTER"); } hvis (vinner == 2) { //Skriv ut "CPU-GEVINSTER!" text

setCursor(60,100);

setTextColor(ILI9341_RED);

setTextSize(4);

print("CPU WINS");

}

buttons[0].initButton(&tft, 160,200,200,40,ILI9341_WHITE, ILI9341_RED, ILI9341_WHITE,

again, 2);

buttons[0].drawButton();

do{

waitonetouch(&x,&y);

if (buttons[0].contains(x,y))

b=0;

}while(b>0);

}

}

void playerMove()

{

waitonetouch(&x,&y);

if((x>15 && x<85) && (y>15 && y<85))

{

if(board[0]==0)

{

board[0]=1;

drawX(15,15);

}

else error();

}

else if((x>85 && x<155)&& (y>15 && y<85)) //1

{

if(board[1]==0)

{

board[1]=1;

drawX(85,15);

}

else error();

}

if((x>155 && x<225)&& (y>15 && y<85)) //2

{

if(board[2]==0)

{

board[2]=1;

drawX(155,15);

}

else error();

}

if((x>15 && x<85)&& (y>85 && y<155)) //3

{

if(board[3]==0)

{

board[3]=1;

drawX(15,85);

}

else error();

}

si (( x > 85 &&  x < 155 ) &&  ( y > 85  &&  y < 155 ))  // 4

{

si ( tablero [ 4 ] == 0 )

{

tablero [ 4 ] = 1 ;

dibujarX ( 85 , 85 );

}

else error ();

}

if (( x > 155 &&  x < 225 ) &&  ( y > 85  &&  y < 155 ))  // 5

{

if ( tablero [ 5 ] == 0 )

{

tablero [ 5 ] = 1 ;

dibujarX ( 155 , 85 );

}

else error ();

}

si (( x > 15 &&  x < 85 ) &&  ( y > 155  &&  y < 225 ))  // 6

{

si ( tablero [ 6 ] == 0 )

{

tablero [ 6 ] = 1 ;

dibujarX ( 15 , 155 );

}

else error ();

}

if((x>85 && x<155)&& (y>155 && y<225)) //7

{

if(board[7]==0)

{

board[7]=1;

drawX(85,155);

}

else error();

}

if((x>155 && x<225)&& (y>155 && y<225)) //8

{

if(board[8]==0)

{

board[8]=1;

drawX(155,155);

}

else error();

}

}

void error(){

cursor+=10;

setCursor(240,cursor);

setTextSize(1);

println("Error");

delay(1000);

cursor+=10;

setCursor(240,cursor);

println("Try again.");

playerMove();

}

{

if(board[1]==x && board[2]==x && board[0]==y){

if(y==0){

return 0;

}

else return 1;

}

if(board[3]==x && board[6]==x && board[0]==y){

if(y==0){

return 0;

}

else return 6;

}

if(board[0]==y && board[4]==x && board[8]==x){

if(y==0){

return 0;

}

else return 8;

}

if(board[0]==x && board[1]==y && board[2]==x){

if(y==0){

return 1;

}

else return 0;

}

if(board[4]==x && board[7]==x && board[1]==y){

if(y==0){

return 1;

}

de lo contrario, devuelve  7 ;

}

if ( tablero [ 0 ] == x &&  tablero [ 1 ] == x  &&  tablero [ 2 ] == y ) {

si ( y == 0 ) {

volver 2 ;

}

de lo contrario, devuelve  0 ;

}

if ( tablero [ 5 ] == x &&  tablero [ 8 ] == x  &&  tablero [ 2 ] == y ) {

si ( y == 0 ) {

volver 2 ;

}

si no, devuelve  8 ;

}

if ( tablero [ 4 ] == x &&  tablero [ 6 ] == x  &&  tablero [ 2 ] == y ) {

si ( y == 0 ) {

volver 2 ;

}

de lo contrario, devuelve  6 ;

}

if ( tablero [ 4 ] == x &&  tablero [ 5 ] == x  &&  tablero [ 3 ] == y ) {

si ( y == 0 ) {

volver 3 ;

}

si no, devuelve  5 ;

}

if(board[0]==x && board[6]==x && board[3]==y){

if(y==0){

return 3;

}

else return 6;

}

if(board[3]==x && board[4]==y && board[5]==x){

if(y==0){

return 4;

}

else return 3;

}

if(board[1]==x && board[7]==x && board[4]==y){

if(y==0){

return 4;

}

else return 1;

}

if(board[0]==x && board[8]==x && board[4]==y){

if(y==0){

return 4;

}

else return 0;

}

if(board[2]==x && board[6]==x && board[4]==y){

if(y==0){

return 4;

}

else return 2;

}

if(board[3]==x && board[4]==x && board[5]==y){

if(y==0){

return 5;

}

else return 3;

}

if(board[2]==x && board[8]==x && board[5]==y){

if(y==0){

return 5;

}

else return 2;

}

if(board[7]==x && board[8]==x && board[6]==y){

if(y==0){

return 6;

}

else return 8;

}

if(board[0]==x && board[3]==x && board[6]==y){

if(y==0){

return 6;

}

else return 0;

}

if(board[4]==x && board[2]==x && board[6]==y){

if(y==0){

return 6;

}

else return 2;

}

if(board[1]==x && board[4]==x && board[7]==y){

if(y==0){

return 7;

}

else return 1;

}

if(board[6]==x && board[8]==x && board[7]==y){

if(y==0){

return 7;

}

else return 6;

}

if(board[6]==x && board[7]==x && board[8]==y){

if(y==0){

return 8;

}

else return 6;

}

if(board[5]==x && board[2]==x && board[8]==y){

if(y==0){

return 8;

}

else return 2;

}

if(board[4]==x && board[0]==x && board[8]==y){

if(y==0){

return 8;

}

else return 0;

}

else

return 100;

}

void arduinoMove()

{

if(moves<2)

{

do{

unsigned short int randomMove =random(4);

unsigned short int c=firstMoves[randomMove];

if(board[c]==0){

board[c]=2;

drawCpuMove(firstMoves[randomMove]);

return;

}

}while(moves<2);

}

if(moves<3)

{

if(board[4]==0)

{

board[4]=2;

drawCpuMove(4);

return;

}

}

unsigned short int twoPlayer = checkOpponent(2,0);

if(twoPlayer < 9)

{

board[twoPlayer]=2;

drawCpuMove(twoPlayer);

return;

}

unsigned short int nextMove = checkOpponent(1,0);

if(nextMove < 9)

{

board[nextMove]=2;

drawCpuMove(nextMove);

return;

}

unsigned short int next = checkOpponent(0,2);

if(next < 9)

{

board[next]=2;

drawCpuMove(next);

return;

}

do

{

unsigned short int randomMove =random(9);

if (board[randomMove]==0)

{

board[randomMove]=2;

drawCpuMove(randomMove);

return;

}

}while(nextMove == 100);

}

{

drawBitmap(x,y,circle,65,65,ILI9341_RED);

}

{

drawBitmap(x,y,x_bitmap,65,65,ILI9341_BLUE);

}

{

switch(move)

{

case 0: drawCircle(15,15); break;

case 1: drawCircle(85,15); break;

case 2: drawCircle(155,15); break;

case 3: drawCircle(15,85); break;

case 4: drawCircle(85,85); break;

case 5: drawCircle(155,85); break;

case 6: drawCircle(15,155); break;

case 7: drawCircle(85,155);break;

case 8: drawCircle(155,155);break;

}

}

void checkWinner()

{

// noughts win?

hvis (brett[0]>0 && brett[1]==brett[0] && brett[2]==brett[0]) { vinner=brett[0]; fillRect(15, 45, 205, 5, ILI9341_WHITE); } hvis (brett[3]>0 && brett[4]==brett[3] && brett[5]==brett[3]) { vinner=brett[3]; fillRect(15, 115, 205, 5, ILI9341_WHITE); } hvis (brett[6] > 0 && brett[7] == brett[6] && brett[8] == brett[6]) { vinner = brett[6]; tft. fillRect(15, 185, 205, 5, ILI9341_WHITE); } hvis (brett[0] > 0 && brett[3] == brett[0] && brett[6] == brett[0]) { vinner = brett[0]; tft. fillRect(45, 15, 5, 205, ILI9341_WHITE); } hvis (brett[1] > 0 && brett[4] == brett[1] && brett[7] == brett[1]) { vinner = brett[1]; tft. fillRect(115, 15, 5, 205, ILI9341_WHITE); } hvis (brett[2]>0 og brett[5]==brett[2] og brett[8]==brett[2]) { vinner=brett[2]; fillRect(185, 15, 5, 205, ILI9341_WHITE); } hvis (brett[0]>0 og brett[4]==brett[0] og brett[8]==brett[0]) { vinner=brett[0]; for(unsigned short int xx=0;xx<6;xx++){ drawLine(20+xx, 20, 210+xx, 210, ILI9341_WHITE); } } hvis (brett[2]>0 og brett[4]==brett[2] og brett[6]==brett[2]) { vinner=brett[2]; for (unsigned short int xx = 0; xx < 6; xx ++) { drawLine (210 + xx, 20, 20 + xx, 210, ILI9341_WHITE); } } } void waitonetouch (unsigned short int * x, unsigned short int * y) { do { delay (10); if ( myTouch . } ... dataTilgjengelig() == true) { myTouch. les(); x = myTouch. getX(); y = myTouch. getY(); return; } } mens (myTouch). dataAvailable () == false ); }
E-bøker av IPAP
Ebøker IPAP

🔥BLI MED I🔥 DET NYE IP@P-FELLESSKAPET! REGISTRER DEG HER!

Emner

Forfatter: Félix Albornoz

Jeg har over 20 års erfaring innen teknologisektoren, der jeg har hjulpet bedrifter og brukere med å utvikle og lære opp innen dette feltet. Jeg lærer alltid nye ting.

I slekt