Arduino DUE: Mikä se on, mihin sitä käytetään ja mitä laitteita voin kehittää näillä korteilla?

Viimeisin päivitys: 14/09/2022
Kirjoittaja: Felix Albornoz
Arduino Due: Mikä se on, mihin sitä käytetään ja mitä laitteita voin kehittää näillä korteilla?

Yksi tehokkaimmista saatavilla olevista keittotasoista Työläs Se on DUE-versioMikrokontrollerinsa, muistinsa ja nastojensa lukumäärän ansiosta se on yksi halutuimmista monimutkaisten projektien toteuttamisessa.

Tästä syystä Olemme laatineet tämän artikkelin, jotta voit oppia, mihin tällaista levyä käytetään ja mitkä ovat sen tärkeimmät ominaisuudet. jota se tarjoaa käyttäjille.

Lisäksi kerromme, mitä sinun tulisi pitää mielessä Kun työskentelet Arduino DUE:n kanssa, mitä eroja on kortin ohjelmoinnin kehitysympäristössä?. Tarkista.

Mikä on Arduino DUE ja mihin näitä avoimen lähdekoodin kehityskortteja käytetään?

Arduino-DUE Se on piirilevy, jossa on Atmel SAM3X8E -mikrokontrolleri. tarjoaa lisätehoa laaja-alaisiin projekteihinTätä kriteeriä tukee myös suurempi määrä digitaalisia nastoja sisään- ja uloskäynti ja analogiset nastat. Se toimii 3.3 V jännitteellä ja on 4 porttia laitteistoille, joista 2 on kaapeleille MicroUSB Näitä käytetään piirilevyn kytkemiseen tietokoneeseen. Arduino Due -käyttöjärjestelmiä voidaan käyttää. Ikkunat, Linux y MacOS.

Arduino DUE:n ominaisuudet: Mitkä ovat sen mielenkiintoisimmat ominaisuudet?

Arduino DUE:n ominaisuudet: Mitkä ovat sen mielenkiintoisimmat ominaisuudet?

Arduino DUE:n pääominaisuudet ovat:

  • Sen mitat ovat 101,52 × 53,3 mm ja sen paino on 36 grammaa.
  • Siinä on mikrokontrolleri Atmel SAM3X8E ARM Cortex-M3 32-bittinen ydin, joka toimii 84 MHz:n taajuudella.
  • Sillä on passiivinen muisti 96 kt SRAM-muistiaSiinä ei kuitenkaan ole EEPROM-muistia kuten muissa Arduino-levyissä. Sen flash-muisti on 512 kt.
  • Jännite, jolla se toimii, on 3Vjonka enimmäismäärä on 16V.
  • Tilin kanssa 54 digitaalista nastaa, josta 12 on pulssimodulointia varten.
  • Tapit analogisia tuloja on 12 ja ne, jotka lähtevät, 2.
  • olet 2 MicroUSB-porttia, joka on JTAG, un SPI, DOS TWI nollaus- ja poistopainikkeet.

Mitä sinun tulisi pitää mielessä työskennellessäsi Arduino DUE -kortin kanssa?

Ensimmäinen asia, joka sinun tulee pitää mielessä, on se, että tämä piirilevy toimii 3.3 V:n virralla.Tämä tarkoittaa, että se toimii huomattavasti korkeammalla jännitteellä kuin useimmat 5 V:n Arduino-levyt. Siksi on oltava varovainen, ettei ylijännite vahingoita mikropiiriä, muistia ja muita komponentteja.

Toinen huomioon otettava tekijä, vaikkakin hieman vähemmän tärkeä, on sen koko ja paino. Lopuksi, Sinun on otettava huomioon kaikki käytettävissä olevat digitaaliset ja analogiset nastat. (tällä tarkoitamme projektisi tarvetta käytä niitä kaikkia, koska jos tarvitaan vähemmän, voit valita toisen, halvemman 5 V:n levyn).

Onko kehitysympäristö (Arduino IDE) erilainen Arduino DUE -levyille?

Onko kehitysympäristö (Arduino IDE) erilainen Arduino DUE -levyille?

El Arduino DUE -ympäristö ei eroa muista piirilevyistä. Sinun tarvitsee vain pitää mielessä, että IDE on konfiguroinut Arduino UNO -korttiSiksi sinun on muutettava tyyppiä Työläs ohjelmassa.

Voit tehdä tämän noudattamalla seuraavia ohjeita:

  • Kun olet avannut sen IDE mene Työkalut.
  • Valitse sitten levyt.
  • Valitse vaihtoehto KAKSI.

Levyn käyttötarkoitukset: Missä projekteissa Arduino DUE:ta voidaan käyttää?

Voit käyttää Arduino DUE -levyllä suuri määrä projekteja.

Voit esimerkiksi luoda:

  • Poljin vääristämään sähkökitaran ääntä. https://create.arduino.cc/projecthub/electrosmash-team/arduino-due-programmable-guitar-pedal-edfe8b
  • laite suorittaa EKG:t. https://create.arduino.cc/projecthub/javiergonzalezb/heart-rate-estimation-using-arduino-due-a2271a
  • generaattori aaltomuodoista. https://create.arduino.cc/projecthub/search?q=due&type=Project

Lisäksi, Jos haluat oppia projektista yksityiskohtaisesti, voit luoda nollien ja ristejen pelin.Tätä laitetta varten tarvitset DUE-kortin, ohjaimen tai 2,8 tuuman TFT LCD LED -kosketusnäytön ja tarvittavat kaapelit asennusta varten.

Kokoonpanon osalta sinun on tehtävä se seuraavan kaavion mukaisesti:

Levyn käyttötarkoitukset: Missä projekteissa Arduino DUE:ta voidaan käyttää?

Kun olet valmis, sinun on avattava Arduino IDE ja kirjoitettava seuraavat koodit:

#sisältää #sisältää #sisältää #sisältää #sisältää #define TFT_RST 8 #define TFT_DC 9 #define TFT_CS 10 #define KOSKETUSSUUNTA MAISEMA 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 moves = 1; unsigned short int winner = 0; unsigned short int x, y; unsigned short int cursor; unsigned short int firstMoves[] = {0, 2, 6, 8}; unsigned short board[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 9341}; player bool; bool b = 1; char start[10] = {"Pelialoitus"}; char you[4] = {"SINÄ"}; char cpu[4] = {"CPU"}; char again[7] = {"Taas?"} };

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(); myTouch . setPrecision(PREC_HI); tft. aloita(); tft. setRotation(3); tft. fillScreen(ILI9341_BLACK); // Piirrä valkoinen TFT-kehys. drawRect(0, 0, 320, 240, ILI9341_WHITE); // Tulosta "Arduino" tft-teksti. setCursor(80, 30); tft. asetaTekstiVäri(ILI9341_GREEN); tft. asetaTekstiKoko(4); tft. print("Arduino"); // Tulosta teksti "Ristinolla" tft. setCursor(30, 100); tft. asetaTekstiVäri(ILI9341_WHITE); tft. asetaTekstiKoko(4); tft. print("Ristinolla"); // Luo punainen nappi // luo painikkeet [0]. initButton(& tft, 160, 200, 200, 40, ILI9341_WHITE, ILI9341_RED, ILI9341_WHITE, käynnistys, 2); painikkeet [0]. drawButton(); do { odota napautusta ( & x , & y ); if (painikkeet [ 0 ). sisältää(x, y)) b = 0; } while(b > 0); } void loop() { for (unsigned short int i = 0; i < 9; i++) { board[i] = 0; } tft. fillScreen(ILI9341_BLACK); // Piirrä valkoinen TFT-kehys. drawRect(0, 0, 320, 240, ILI9341_WHITE); // Tulosta teksti "Ristinolla" tft. setCursor(30, 30); tft. asetaTekstiVäri(ILI9341_WHITE); tft. asetaTekstiKoko(4); tft. print("Ristinolla"); // Tulostaa "YouTube!" TFT-teksti. setCursor(30, 100); tft. asetaTekstiVäri(ILI9341_GREEN); tft. asetaTekstiKoko(4); tft. print("Kuka aloittaa"); // Luo punainen nappi // luo painikkeet [0]. initButton (& tft, 100, 200, 80, 40, ILI9341_WHITE, ILI9341_RED, ILI9341_WHITE, sinä, 2); painikkeet [0]. drawButton(); // luo painikkeet // x, y, w, h, ääriviiva, täyttö, tekstipainikkeet[1]. initButton (& tft, 200, 200, 80, 40, ILI9341_WHITE, ILI9341_RED, ILI9341_WHITE, cpu, 2); painikkeet [1]. drawButton(); b = 1; do { odota napautusta(&x, &y); jos(painikkeet[0]. sisältää (x, y)) { b = 0; pelaaja = 1; tft. fillScreen(ILI9341_BLACK); // Piirrä valkoinen TFT-kehys. drawRect(0, 0, 320, 240, ILI9341_WHITE); tft. setCursor(30, 30); tft. asetaTekstiVäri(ILI9341_WHITE); tft. asetaTekstiKoko(2); tft. print("Okei, aloitat"); delay(2000); } if(painikkeet[1]. sisältää (x, y)) { b = 0; pelaaja = 0; tft. fillScreen(ILI9341_BLACK); // Piirrä valkoinen TFT-kehys. drawRect(0, 0, 320, 240, ILI9341_WHITE); tft. setCursor(30, 30); tft. asetaTekstiVäri(ILI9341_WHITE); tft. asetaTekstiKoko(2); tft. print("OK, CPU käynnistyy"); delay(2000); } } while (b > 0); b = 1; moves = 1; winner = 0; cursor = 10; tft. fillScreen(ILI9341_BLACK); // Piirrä TFT-kehys. drawRect(0, 0, 320, 240, ILI9341_WHITE); // Piirrä pystysuora viiva tft. fillRect(80, 15, 5, 205, ILI9341_WHITE); tft. fillRect(150, 15, 5, 205, ILI9341_WHITE); // Piirrä vaakasuora viiva fillRect(15,80,205,5,ILI9341_WHITE); fillRect(15,150,205,5,ILI9341_WHITE); drawRect(230,10,80,220,ILI9341_WHITE); { do { if(moves%2==1 && player==false || moves%2==0 && player==true) { cursor+=10; setCursor(240,cursor); setTextSize(1); println("Piirrän"); arduinoMove(); checkWinner(); }else { cursor+=10; setCursor(240,cursor); setTextSize(1); println("Siirtosi"); playerMove(); checkWinner(); } delay(1000); moves++; }while (winner==0 && moves<10); waitonetouch(&x,&y); fillScreen(ILI9341_BLACK); //Piirrä kehys drawRect(0,0,320,240,ILI9341_WHITE); //Tulosta "Peli päättynyt" Teksti setCursor(50,30); setTextColor(ILI9341_WHITE); setTextSize(4); print("PELI OHI"); if(winner == 0) { //Tulosta "PIIRI!" text setCursor(110,100); setTextColor(ILI9341_YELLOW); setTextSize(4); print("ARVO"); } if(voittaja == 1) { //Tulosta "IHMINEN VOITTAA!" text setCursor(40,100); setTextColor(ILI9341_BLUE); setTextSize(4); print("IHMINEN VOITTAA"); } if(winner == 2) { //Tulosta "SUORITIN VOITTAA!" 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?

jos (lauta[0]>0 && lauta[1]==lauta[0] && lauta[2]==lauta[0]) { voittaja=lauta[0]; fillRect(15, 45, 205, 5, ILI9341_WHITE); } jos (lauta[3]>0 && lauta[4]==lauta[3] && lauta[5]==lauta[3]) { voittaja=lauta[3]; fillRect(15, 115, 205, 5, ILI9341_WHITE); } jos (lauta[6] > 0 && lauta[7] == lauta[6] && lauta[8] == lauta[6]) { voittaja = lauta[6]; tft. fillRect(15, 185, 205, 5, ILI9341_WHITE); } jos (lauta[0] > 0 && lauta[3] == lauta[0] && lauta[6] == lauta[0]) { voittaja = lauta[0]; tft. fillRect(45, 15, 5, 205, ILI9341_WHITE); } jos (lauta[1] > 0 && lauta[4] == lauta[1] && lauta[7] == lauta[1]) { voittaja = lauta[1]; tft. fillRect(115, 15, 5, 205, ILI9341_WHITE); } jos (kortti[2]>0 && kortti[5]==kortti[2] && kortti[8]==kortti[2]) { voittaja=kortti[2]; fillRect(185, 15, 5, 205, ILI9341_WHITE); } jos (kortti[0]>0 && kortti[4]==kortti[0] && kortti[8]==kortti[0]) { voittaja=kortti[0]; for(unsigned short int xx=0;xx<6;xx++){ drawLine(20+xx, 20, 210+xx, 210, ILI9341_WHITE); } } if (board[2]>0 && board[4]==board[2] && board[6]==board[2]) { winner=board[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 . ) dataAvailable() == true) { myKosketus. read(); x = myKosketus . getX(); y = myKosketus . getY(); return; } } while ( omaKosketus . dataAvailable () == false ); }
E-kirjat aiheesta IPAP
E IPAP

🔥LIITY🔥 UUTEEN IP@P-YHTEISÖÖN! REKISTERÖIDY TÄSTÄ!

Aiheet

Tekijä: Félix Albornoz

Minulla on yli 20 vuoden kokemus työskentelystä teknologia-alalla, auttaen yrityksiä ja käyttäjiä kehittymään ja kouluttautumaan tällä alalla. Opin jatkuvasti uutta.

Liittyvät