
Viena galingiausių rinkoje esančių kaitlenčių Arduino Tai DUE versija.Dėl savo mikrovaldiklio, atminties ir kontaktų skaičiaus jis yra vienas iš labiausiai pageidaujamų, kai reikia vykdyti sudėtingus projektus.
Dėl šios priežasties Mes parengėme šį straipsnį, kad galėtumėte sužinoti, kam naudojama šio tipo plokštė ir kokios yra jos pagrindinės savybės. kuriuos ji siūlo vartotojams.
Be to, paaiškinsime, ką turėtumėte turėti omenyje Dirbant su Arduino DUE, kuo skiriasi kūrimo aplinka, skirta plokštės programavimui?. Patikrinkite.
Kas yra „Arduino DUE“ ir kam naudojamos šios atvirojo kodo kūrimo plokštės?
Arduino DUE Tai plokštė su „Atmel SAM3X8E“ mikrovaldikliu. siūlo papildomą našumą didelio masto projektamsŠį kriterijų taip pat patvirtina didesnis skaitmeninių kontaktų skaičius įėjimas ir išėjimas ir analoginiai kaiščiai. Veikia esant 3.3 V įtampai ir turi 4 uostai aparatinei įrangai, iš kurių 2 skirti kabeliams "MicroUSB Jie naudojami plokštę prijungti prie kompiuterio. Galima naudoti „Arduino Due“ operacines sistemas. Langai, Linux y MacOS.
„Arduino DUE“ savybės: kokios įdomiausios jo savybės?
Pagrindinės „Arduino DUE“ savybės yra šios:
- Jo matmenys yra 101,52 × 53,3 mm ir jo svoris yra 36 gramai.
- Jame yra mikrovaldiklis (MCU). Atmel SAM3X8E ARM Cortex-M3 32 bitų branduolys, veikiantis 84 MHz dažniu.
- Jis turi pasyvią atmintį 96 KB SRAMTačiau ji neturi EEPROM atminties, kaip kitos Arduino plokštės. Jos „flash“ atmintis yra 512 KB.
- Įtampa, kuria jis veikia, yra 3Vturintis maksimalų įėjimo limitą 16V.
- Paskyra su 54 skaitmeniniai kaiščiai, iš kurių 12 skirti impulsų moduliacijai.
- Smeigtukai analoginių įėjimų yra 12 ir tie, kurie išeina, 2.
- Tiene 2 „MicroUSB“ prievadai, Vienas JTAG, un SPI, iš TWI atstatymo ir ištrynimo mygtukai.
Į ką reikėtų atkreipti dėmesį dirbant su „Arduino DUE“ plokšte?
Pirmas dalykas, kurį turėtumėte atsiminti, yra tai, kad ši plokštė veikia su 3.3 V srove.Tai reiškia, kad jis veikia žymiai aukštesne įtampa nei dauguma 5 V „Arduino“ plokščių. Todėl turite būti atsargūs, kad nepažeistumėte mikrokontrolerio, atminties ir kitų komponentų dėl viršįtampio.
Kitas veiksnys, į kurį reikia atsižvelgti, nors ir šiek tiek mažiau svarbus, yra jo dydis ir svoris. Galiausiai, Turite atsižvelgti į visus turimus skaitmeninius ir analoginius kontaktus. (turime omenyje jūsų projekto poreikį) užima juos visus, nes jei reikia mažiau, galite pasirinkti kitą, pigesnę 5 V plokštę).
Ar Arduino DUE plokščių kūrimo aplinka (Arduino IDE) skiriasi?
El „Arduino DUE“ aplinka nesiskiria nuo kitų plokščių aplinkos. Jums tereikia nepamiršti, kad IDE sukonfigūravo Arduino UNO plokštėTodėl reikės pakeisti tipą Arduino programoje.
Norėdami tai padaryti, turėsite atlikti šiuos veiksmus:
- Kai tik atidarysite IDE eiti į Įrankiai.
- Tada pasirinkite Plokštės.
- Pasirinkite parinktį TIKSLAS.
Plokštės panaudojimas: kokiuose projektuose galima naudoti „Arduino DUE“?
Galite naudoti Arduino DUE plokštė ant daug projektų.
Pavyzdžiui, galite sukurti:
- Pedalas iškreipti elektrinės gitaros garsą.
https://create.arduino.cc/projecthub/electrosmash-team/arduino-due-programmable-guitar-pedal-edfe8b - Prietaisas atlikti elektrokardiogramos.
https://create.arduino.cc/projecthub/javiergonzalezb/heart-rate-estimation-using-arduino-due-a2271a - Generatorius bangų formų.
https://create.arduino.cc/projecthub/search?q=due&type=Project
Be to, Jei norite išsamiau sužinoti apie projektą, galite sukurti nulių ir kryžiukų žaidimą.Šiam įrenginiui reikės DUE plokštės, valdiklio arba 2,8 colio TFT LCD LED jutiklinio ekrano ir reikiamų kabelių montavimui.
Kalbant apie surinkimą, turėsite tai padaryti pagal šią schemą:
Baigę turėsite atidaryti „Arduino IDE“ ir parašyti šiuos kodus:
#įtraukti #įtraukti #įtraukti #įtraukti #įtraukti #define TFT_RST 8 #define TFT_DC 9 #define TFT_CS 10 #define JUTIMO_ORIENTACIJOS KRAŠTOVAIZDIS 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 pradžia[10] = {"Žaidimo pradžia"}; char tu[4] = {"TU"}; char cpu[4] = {"CPU"}; char again[7] = {"Vėl?"} };
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(); manoTouch. setPrecision(PREC_HI); tft. pradėti(); tft. setRotation(3); tft. fillScreen(ILI9341_BLACK); // Nubraižome baltą TFT rėmelį. drawRect(0, 0, 320, 240, ILI9341_WHITE); // Išspausdina „Arduino“ tft tekstą. setCursor(80, 30); tft. setTextColor (ILI9341_GREEN); tft. setTextSize(4); tft. print("Arduino"); // Išspausdinti tekstą „Kryžiukai-nuliukai“ tft. setCursor(30, 100); tft. setTextColor (ILI9341_WHITE); tft. setTextSize(4); tft. print("Kryžiukai-nuliukai"); // Sukurti raudoną mygtuką // sukurti mygtukus [0]. initButton (& tft, 160, 200, 200, 40, ILI9341_WHITE, ILI9341_RED, ILI9341_WHITE, pradėti, 2); mygtukai [0]. drawButton(); do { laukti palietimo ( & x , & y ); if (mygtukai [ 0 ) ). ...kurioje yra (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); // Nubraižome baltą TFT rėmelį. drawRect(0, 0, 320, 240, ILI9341_WHITE); // Išspausdinti tekstą „Kryžiukai-nuliukai“ tft. setCursor(30, 30); tft. setTextColor (ILI9341_WHITE); tft. setTextSize(4); tft. print("Kryžiukai-nuliukai"); // Atspausdina „YouTube!" TFT tekstas. setCursor(30, 100); tft. setTextColor (ILI9341_GREEN); tft. setTextSize(4); tft. print("Kas pradeda"); // Sukurti raudoną mygtuką // sukurti mygtukus [0]. initButton (& tft, 100, 200, 80, 40, ILI9341_WHITE, ILI9341_RED, ILI9341_WHITE, jūs, 2); mygtukai [0]. drawButton(); // sukurti mygtukus // x, y, w, h, kontūro, užpildymo, teksto mygtukai[1]. initButton (& tft, 200, 200, 80, 40, ILI9341_WHITE, ILI9341_RED, ILI9341_WHITE, cpu, 2); mygtukai [1]. drawButton(); b = 1; daryti { laukti paspaudimo(&x, &y); jei(mygtukai[0]. yra (x, y)) { b = 0; žaidėjas = 1; tft. fillScreen(ILI9341_BLACK); // Nubraižome baltą TFT rėmelį. drawRect(0, 0, 320, 240, ILI9341_WHITE); tft.com/tft.com/files/320_WHITE()); setCursor(30, 30); tft. setTextColor (ILI9341_WHITE); tft. setTextSize(2); tft. print("Gerai, pradėk"); delay(2000); } if(mygtukai[1]. yra (x, y)) { b = 0; žaidėjas = 0; tft. fillScreen(ILI9341_BLACK); // Nubraižome baltą TFT rėmelį. drawRect(0, 0, 320, 240, ILI9341_WHITE); tft.com/tft.com/files/320_WHITE()); setCursor(30, 30); tft. setTextColor (ILI9341_WHITE); tft. setTextSize(2); tft. print("Gerai, procesorius įsijungia"); delay(2000); } } while (b > 0); b = 1; moves = 1; winner = 0; cursor = 10; tft. fillScreen(ILI9341_BLACK); // Nubraižome TFT rėmelį. drawRect(0, 0, 320, 240, ILI9341_WHITE); // Nubrėžiame vertikalią liniją tft. fillRect (80, 15, 5, 205, ILI9341_WHITE); tft. fillRect (150, 15, 5, 205, ILI9341_WHITE); // Nubrėžiame horizontalią liniją 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("Piešiu"); arduinoMove(); checkWinner(); }else { cursor+=10; setCursor(240,cursor); setTextSize(1); } println("Jūsų ėjimas"); playerMove(); checkWinner(); } delay(1000); moves++; }while (winner==0 && moves<10); waitonetouch(&x,&y); fillScreen(ILI9341_BLACK); //Nupiešti rėmelį drawRect(0,0,320,240,ILI9341_WHITE); //Spausdinti "Žaidimas baigtas" Text setCursor(50,30); setTextColor(ILI9341_WHITE); setTextSize(4); print("ŽAIDIMAS BAIGTAS"); if(winner == 0) { //Spausdinti "TIEMIAM!" text setCursor(110,100); setTextColor(ILI9341_YELLOW); setTextSize(4); print("LYGIOSIOS"); } if(winner == 1) { //Išspausdinti "ŽMOGUS LAIMI!" text setCursor(40,100); setTextColor(ILI9341_BLUE); setTextSize(4); print("LAIMI ŽMOGUS"); } if(winner == 2) { //Išspausdinti "LAIMI PROCESORIAUS PROCESORIAUS!" 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?
jei (lenta[0]>0 && lenta[1]==lenta[0] && lenta[2]==lenta[0]) { nugalėtojas=lenta[0]; fillRect(15, 45, 205, 5, ILI9341_WHITE); } jei (lenta[3]>0 && lenta[4]==lenta[3] && lenta[5]==lenta[3]) { nugalėtojas=lenta[3]; fillRect(15, 115, 205, 5, ILI9341_WHITE); } jei (lenta[6] > 0 && lenta[7] == lenta[6] && lenta[8] == lenta[6]) { nugalėtojas = lenta[6]; tft. fillRect(15, 185, 205, 5, ILI9341_WHITE); } jei (lenta[0] > 0 && lenta[3] == lenta[0] && lenta[6] == lenta[0]) { laimėtojas = lenta[0]; tft. fillRect(45, 15, 5, 205, ILI9341_WHITE); } jei (lenta[1] > 0 && lenta[4] == lenta[1] && lenta[7] == lenta[1]) { laimėtojas = lenta[1]; tft. fillRect(115, 15, 5, 205, ILI9341_WHITE); } jei (plokštė[2]>0 ir plokštė[5]==plokštė[2] ir plokštė[8]==plokštė[2]) { nugalėtojas=plokštė[2]; fillRect(185, 15, 5, 205, ILI9341_WHITE); } jei (plokštė[0]>0 ir plokštė[4]==plokštė[0] ir plokštė[8]==plokštė[0]) { nugalėtojas=plokštė[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 . ) duomenysPrieinami() == true) { manoPrisilietimas. skaityti(); x = manoPrisilietimas. getX(); y = manoPrisilietimas. getY(); return; } } while (manoPrisilietimas. dataAvailable () == false ); }
















