Arduino DUE: Apa itu, untuk apa digunakan, dan perangkat apa saja yang dapat saya kembangkan dengan papan ini?

Pembaharuan Terakhir: 14/09/2022
Arduino Due: Apa itu, untuk apa digunakan, dan perangkat apa saja yang dapat saya kembangkan dengan papan ini?

Salah satu kompor tanam paling andal yang tersedia Arduino Ini versi DUE.Berkat mikrokontroler, memori, dan jumlah pin yang dimilikinya, perangkat ini menjadi salah satu yang paling dicari ketika Anda perlu menjalankan proyek-proyek kompleks.

Untuk alasan ini Kami telah menyiapkan artikel ini agar Anda dapat mempelajari untuk apa jenis pelat ini digunakan dan apa saja fitur utamanya. yang ditawarkannya kepada pengguna.

Selain itu, kami akan menjelaskan apa yang perlu Anda ingat. Saat menggunakan Arduino DUE, apa saja perbedaan lingkungan pengembangan untuk memprogram papan tersebut?. Periksa.

Apa itu Arduino DUE dan untuk apa papan pengembangan sumber terbuka ini digunakan?

ARDUINO KARENA Ini adalah papan yang dilengkapi dengan mikrokontroler Atmel SAM3X8E, menawarkan kinerja ekstra untuk proyek berskala besarKriteria ini juga didukung oleh jumlah pin digital yang lebih banyak masuk dan keluar dan pin analog. Alat ini beroperasi pada tegangan 3.3V. dan memiliki 4 port untuk perangkat keras, di mana 2 di antaranya untuk kabel. MicroUSB Ini digunakan untuk menghubungkan papan ke komputer. Sistem operasi Arduino Due dapat digunakan. Windows, Linux y MacOS.

Fitur-fitur Arduino DUE: Apa saja fitur-fitur yang paling menarik?

Fitur-fitur Arduino DUE: Apa saja fitur-fitur yang paling menarik?

Fitur utama Arduino DUE adalah:

  • Dimensinya adalah 101,52 × 53,3 mm dan memiliki berat 36 gram.
  • Ia memiliki MCU. Atmel SAM3X8E ARM Cortex-M3 Inti 32-bit yang beroperasi pada 84 MHz.
  • Ia memiliki memori pasif. SRAM 96 KBNamun, papan ini tidak memiliki memori EEPROM seperti papan Arduino lainnya. Memori flash-nya berkapasitas 512 KB.
  • Tegangan operasinya adalah 3Vmemiliki batas entri maksimum sebesar 16V.
  • Akun dengan 54 pin digital, di mana 12 di antaranya untuk modulasi pulsa.
  • Pin-pin dari input analognya ada 12 dan yang pergi, 2.
  • Itu 2 port MicroUSBsebuah JTAG, un SPI, dos dua kali Tombol reset dan hapus.

Apa yang perlu Anda perhatikan saat bekerja dengan papan Arduino DUE?

Hal pertama yang perlu Anda ingat adalah bahwa papan ini bekerja dengan intensitas arus 3.3V.Ini berarti papan ini beroperasi pada tegangan yang jauh lebih tinggi daripada kebanyakan papan Arduino 5V. Oleh karena itu, Anda harus berhati-hati agar tidak merusak MCU, memori, dan komponen lainnya akibat tegangan berlebih.

Faktor lain yang perlu dipertimbangkan, meskipun sedikit kurang penting, adalah ukuran dan beratnya. Terakhir, Anda harus mempertimbangkan semua pin digital dan analog yang tersedia. (dengan ini kami maksudkan kebutuhan yang dimiliki proyek Anda akan gunakan semuanya, karena jika yang dibutuhkan lebih sedikit, Anda bisa memilih papan 5V lain yang lebih murah.).

Apakah lingkungan pengembangan (Arduino IDE) berbeda untuk papan Arduino DUE?

Apakah lingkungan pengembangan (Arduino IDE) berbeda untuk papan Arduino DUE?

El Lingkungan Arduino DUE tidak berbeda dengan lingkungan papan pengembangan lainnya. Anda hanya perlu mengingat bahwa IDE telah dikonfigurasi untuk Papan Arduino UNOOleh karena itu, Anda perlu mengubah jenisnya. Arduino dalam program.

Untuk melakukan ini, Anda perlu mengikuti langkah-langkah berikut:

  • Setelah Anda membukanya IDE pergi ke alat.
  • Kemudian pilih Tanda-tanda.
  • Pilih opsi AKIBAT.

Kegunaan papan ini: Dalam proyek apa saja Arduino DUE dapat digunakan?

Anda dapat menggunakan Papan Arduino DUE pada sejumlah besar proyek.

Sebagai contoh, Anda dapat membuat:

  • Sebuah pedal untuk mengubah suara gitar listrik. https://create.arduino.cc/projecthub/electrosmash-team/arduino-due-programmable-guitar-pedal-edfe8b
  • Alat untuk melakukan Elektrokardiogram. https://create.arduino.cc/projecthub/javiergonzalezb/heart-rate-estimation-using-arduino-due-a2271a
  • Generator dari bentuk gelombang. https://create.arduino.cc/projecthub/search?q=due&type=Project

Selain itu, Jika Anda ingin mempelajari suatu proyek secara detail, Anda dapat membuat permainan Zeros and Crosses.Untuk perangkat ini, Anda memerlukan papan DUE, pengontrol atau layar sentuh TFT LCD LED 2,8 inci, dan kabel yang diperlukan untuk pemasangan.

Adapun perakitannya, Anda harus melakukannya sesuai dengan diagram berikut:

Kegunaan papan ini: Dalam proyek apa saja Arduino DUE dapat digunakan?

Setelah selesai, Anda perlu membuka Arduino IDE dan menulis kode-kode berikut:

#termasuk #termasuk #termasuk #termasuk #termasuk #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 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] = {"Gamestart"}; char you[4] = {"YOU"}; char cpu[4] = {"CPU"}; char again[7] = {"Again?"} };

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. mulai(); tft . setRotation ( 3 ); tft . fillScreen(ILI9341_BLACK); // Menggambar bingkai TFT putih. drawRect ( 0 , 0 , 320 , 240 , ILI9341_WHITE ); // Cetak teks tft "Arduino". setCursor ( 80 , 30 ); tft . setTextColor ( ILI9341_GREEN ); tft. setTextSize(4); tft. print ( "Arduino" ); // Cetak teks "Tic Tac Toe" tft . setCursor ( 30 , 100 ); tft . setTextColor ( ILI9341_WHITE ); tft. setTextSize(4); tft. print("Tic Tac Toe"); // Buat tombol merah // buat tombol [0]. initButton ( & tft , 160 , 200 , 200 , 40 , ILI9341_WHITE , ILI9341_RED , ILI9341_WHITE , start , 2 ); buttons [ 0 ]. drawButton(); lakukan { tunggu ketukan ( & x , & y ); jika ( tombol [ 0 ). berisi ( 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); // Menggambar bingkai TFT putih. drawRect ( 0 , 0 , 320 , 240 , ILI9341_WHITE ); // Cetak teks "Tic Tac Toe" tft . setCursor ( 30 , 30 ); tft . setTextColor ( ILI9341_WHITE ); tft. setTextSize(4); tft. print("Tic Tac Toe"); // Mencetak "YouTube!" Teks TFT. setCursor ( 30 , 100 ); tft . setTextColor ( ILI9341_GREEN ); tft. setTextSize(4); tft. print("Siapa yang memulai"); // Buat tombol merah // buat tombol [0]. initButton ( & tft , 100 , 200 , 80 , 40 , ILI9341_WHITE , ILI9341_RED , ILI9341_WHITE , you , 2 ); buttons [ 0 ]. drawButton(); // membuat tombol // x, y, w, h, outline, fill, text buttons[1]. initButton ( & tft , 200 , 200 , 80 , 40 , ILI9341_WHITE , ILI9341_RED , ILI9341_WHITE , cpu , 2 ); buttons [ 1 ]. drawButton(); b = 1; lakukan { tunggu ketukan(&x, &y); jika(tombol[0]. berisi ( x , y )) { b = 0 ; pemain = 1 ; tft . fillScreen(ILI9341_BLACK); // Menggambar bingkai TFT putih. drawRect ( 0 , 0 , 320 , 240 , ILI9341_WHITE ); tft. setCursor ( 30 , 30 ); tft . setTextColor ( ILI9341_WHITE ); tft. setTextSize(2); tft. print("Oke, kamu mulai"); delay(2000); } if(buttons[1]. berisi ( x , y )) { b = 0 ; pemain = 0 ; tft . fillScreen(ILI9341_BLACK); // Menggambar bingkai TFT putih. drawRect ( 0 , 0 , 320 , 240 , ILI9341_WHITE ); tft. setCursor ( 30 , 30 ); tft . setTextColor ( ILI9341_WHITE ); tft. setTextSize(2); tft. print("OK, CPU mulai"); delay(2000); } } while (b > 0); b = 1; moves = 1; winner = 0; cursor = 10; tft. fillScreen(ILI9341_BLACK); // Gambar bingkai TFT. drawRect ( 0 , 0 , 320 , 240 , ILI9341_WHITE ); // Menggambar garis vertikal tft . fillRect ( 80 , 15 , 5 , 205 , ILI9341_WHITE ); tft. fillRect ( 150 , 15 , 5 , 205 , ILI9341_WHITE ); // Menggambar garis horizontal 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("Saya menggambar"); arduinoMove(); checkWinner(); }else { cursor+=10; setCursor(240,cursor); setTextSize(1); println("Giliranmu"); playerMove(); checkWinner(); } delay(1000); moves++; }while (winner==0 && moves<10); waitonetouch(&x,&y); fillScreen(ILI9341_BLACK); //Gambar frame drawRect(0,0,320,240,ILI9341_WHITE); //Cetak Teks "Game Over" setCursor(50,30); setTextColor(ILI9341_WHITE); setTextSize(4); print("GAME OVER"); if(winner == 0) { //Cetak "SERI!" setCursor(110,100); setTextColor(ILI9341_YELLOW); setTextSize(4); print("SERI"); } if(winner == 1) { //Cetak "MANUSIA MENANG!" setCursor(40,100); setTextColor(ILI9341_BLUE); setTextSize(4); print("MANUSIA MENANG"); } if(winner == 2) { //Cetak "CPU MENANG!" 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?

Jika (papan[0]>0 && papan[1]==papan[0] && papan[2]==papan[0]) { pemenang=papan[0]; fillRect(15, 45, 205, 5, ILI9341_WHITE); } Jika (papan[3]>0 && papan[4]==papan[3] && papan[5]==papan[3]) { pemenang=papan[3]; fillRect(15, 115, 205, 5, ILI9341_WHITE); } Jika (papan[6] > 0 && papan[7] == papan[6] && papan[8] == papan[6]) { pemenang = papan[6]; tft. fillRect ( 15 , 185 , 205 , 5 , ILI9341_WHITE ); } if ( board [ 0 ] > 0 && board [ 3 ] == board [ 0 ] && board [ 6 ] == board [ 0 ]) { winner = board [ 0 ]; tft . fillRect ( 45 , 15 , 5 , 205 , ILI9341_WHITE ); } if ( board [ 1 ] > 0 && board [ 4 ] == board [ 1 ] && board [ 7 ] == board [ 1 ]) { winner = board [ 1 ]; tft . fillRect(115, 15, 5, 205, ILI9341_WHITE); } if (board[2]>0 && board[5]==board[2] && board[8]==board[2]) { winner=board[2]; fillRect(185, 15, 5, 205, ILI9341_WHITE); } if (board[0]>0 && board[4]==board[0] && board[8]==board[0]) { winner=board[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) { myTouch. baca(); x = myTouch. getX(); y = myTouch. getY(); return ; } } while ( myTouch . dataAvailable() == false ); }
Buku elektronik tentang IPAP
Ebooks IPAP

🔥BERGABUNGLAH🔥 DENGAN KOMUNITAS IP@P YANG BARU! DAFTAR DI SINI!

Tema

Penulis: Félix Albornoz

Saya memiliki pengalaman lebih dari 20 tahun bekerja di sektor teknologi, membantu perusahaan dan pengguna untuk mengembangkan dan berlatih di bidang ini. Saya selalu belajar hal-hal baru.

Terkait