Daftar Isi:

Pong Bermain Layar Fleksibel pada Baju: 8 Langkah (dengan Gambar)
Pong Bermain Layar Fleksibel pada Baju: 8 Langkah (dengan Gambar)

Video: Pong Bermain Layar Fleksibel pada Baju: 8 Langkah (dengan Gambar)

Video: Pong Bermain Layar Fleksibel pada Baju: 8 Langkah (dengan Gambar)
Video: Kasih nilai fotoku sesuai batrai kalian dong?🤣 me : 89% 2024, November
Anonim
Pong Memainkan Layar Fleksibel di Baju
Pong Memainkan Layar Fleksibel di Baju
Pong Memainkan Layar Fleksibel di Baju
Pong Memainkan Layar Fleksibel di Baju
Pong Memainkan Layar Fleksibel di Baju
Pong Memainkan Layar Fleksibel di Baju

Ini adalah kostum Halloween saya untuk tahun 2013. Sudah dikerjakan selama sekitar satu tahun dan membutuhkan beberapa jam kerja untuk membuatnya. Layarnya berukuran 14 kali 15 piksel, jadi, resolusinya cukup rendah tetapi masih bisa melakukan beberapa hal menyenangkan. Secara fisik fleksibel ke segala arah, meskipun tidak dapat dilipat tanpa kerusakan. Ini memiliki pengontrol yang terdiri dari satu tombol dan pot geser, terhubung ke pro mega melalui USB. Agar tetap hidup untuk waktu yang lama, ia menggunakan dua baterai 2200 mAh raksasa yang dihubungkan secara seri untuk mendapatkan tegangan yang diperlukan, dan kemudian regulator 5 Volt untuk membuatnya dapat digunakan. Semua barang elektronik dimasukkan ke dalam saku di bagian dalam baju sehingga bisa dilepas dan baju bisa dicuci. Ini memainkan permainan fungsional pong. Ini pertama-tama menghiasi satu dengan kata-kata "PONG PLAY" dalam huruf biru yang indah menggunakan versi modifikasi dari font Tom Thumb (dapat ditemukan di https://robey.lag.net/2010/01/23/tiny-monospace-font.html). Setelah lima detik, opsi dapat diberikan untuk menekan tombol untuk melanjutkan, atau untuk tidak menekan tombol dan meninggalkan pengalaman yang sangat bagus. Ketika seseorang memilih untuk menekan tombol, permainan dimulai. Dayung merah di sebelah kanan adalah dayung komputer dan dayung hijau di sebelah kanan adalah dayung pemain, yang dikendalikan oleh pot geser untuk bergerak ke atas dan ke bawah. Bola memantul saat masing-masing pihak mencoba mencetak poin. Pemain dapat memukul bola dengan ujung dayung mereka untuk mempercepatnya (fitur yang bagus) sementara komputer tidak dapat melakukan ini, dan malah berakhir terjebak dengan bergerak sedikit lebih lambat dari bola. Ketika sebuah titik dicetak, sebuah piksel berubah menjadi putih pada dayung sisi penilaian. Itu dihitung dalam biner dari bawah. di mana hijau atau merah adalah nol dan putih adalah 1. 21 adalah skor untuk menang (atau kalah tergantung pada siapa yang mendapatkan 21 poin) dan ketika dayung pemain membaca 10101, teks "ANDA MENANG" ditampilkan. Sekali lagi di modifikasi Tom Thumb. Hal yang sama terjadi tetapi dengan "ANDA KALAH" ditampilkan sebagai gantinya. Setelah menang atau kalah, permainan dimulai kembali ke titik tepat setelah Pong Play. Untuk memulai ulang sepenuhnya tombol mulai ulang pada "Kotak Ajaib", juga dikenal sebagai kotak-dengan-semua-elektronik-kecuali-layar, ditekan.

Langkah 1: Bahan dan Alat

Bahan dan alat
Bahan dan alat
Bahan dan alat
Bahan dan alat

Hal-hal yang ditandai dengan * adalah opsional tetapi merekomendasikan Dan tanpa urutan tertentu… Bahan: 4 Meter Adafruit Neopixle 60 pixle per meter strip 1 T-shirt *1 pasang Suspender 1/2 yard kain akan lebih dari cukup (Non tenunan elastis lebih disukai) 6 kaki kabel USB A male ke USB B male 1 konektor USB A female 3 2 pin konektor JST female 4 2 pin kabel JST male charger baterai 2 baterai 6600 mAh 1 Tombol gaya arcade 1 arduino pro-mega 1 header FTDI 1 konektor USB B perempuan dengan papan breakout 1 sakelar hidup/mati (toggle) 1 sakelar reset (toggle atau sesaat) 1 potensiometer geser *1 kenop pot geser 1 pasangan konektor amp tinggi *1 kasus proyek 1 5V 3+ pengatur tegangan amp kecil sedikit plastik beberapa solder beberapa kawat beberapa benang * beberapa lem panas * beberapa elastis beberapa waktu (Mungkin sedikit lebih dari "beberapa") beberapa ketekunan (Anda mungkin akan membutuhkan sedikit ini sebenarnya) beberapa tabung panas menyusut atau pita listrik beberapa lem super beberapa besi pada backing Tools * Helping Hands Normal Hand s (atau seseorang yang memiliki akses ke sana) Besi Solder * Pistol Lem Panas Dremel atau Amplas Pahat Pemotong Kawat Pemotong Kawat Pistol Staple Pengemudi Sekrup Pin Gergaji Mesin Jahit Gunting Kain

Langkah 2: Potong Strip LED Menjadi Strip yang Lebih Kecil

Potong Strip LED Menjadi Strip yang Lebih Kecil
Potong Strip LED Menjadi Strip yang Lebih Kecil
Potong Strip LED Menjadi Strip yang Lebih Kecil
Potong Strip LED Menjadi Strip yang Lebih Kecil
Potong Strip LED Menjadi Strip yang Lebih Kecil
Potong Strip LED Menjadi Strip yang Lebih Kecil

Gunakan alat pemotong pilihan Anda dan potong strip menjadi 14 segmen, masing-masing sepanjang 15 piksel. Potong hanya di antara jejak tembaga, berlabel sesuatu seperti "DO" "DIN" "+5V" dan "GND". Jika sudah disolder di atas tembaga, potong saja. Cobalah untuk tidak memotong terlalu banyak ke tembaga yang terbuka, tetapi jika Anda memotongnya sedikit, itu tidak masalah. Setelah semua 14 strip telah dipotong, potong sedikit karet dari setiap ujungnya untuk menyolder strip.

Langkah 3: Menyolder Layar Bersama

Menyolder Layar Bersama
Menyolder Layar Bersama
Menyolder Layar Bersama
Menyolder Layar Bersama
Menyolder Layar Bersama
Menyolder Layar Bersama

Ambil kawat dan potong menjadi segmen sekitar 3,5 inci (9 cm). Dalam kasus saya, saya memiliki tiga warna berbeda untuk membuatnya lebih mudah untuk tetap lurus saat menyolder, tetapi satu warna akan berfungsi dengan baik. Anda akan membutuhkan sekitar 40 dari orang-orang kecil ini, tetapi potong beberapa lagi untuk berjaga-jaga. Setelah Anda selesai memotong kawat, kupas dan timah ujungnya (Jika Anda memiliki pengalaman menyolder, Anda dapat melompat ke paragraf berikutnya), artinya setelah Anda melepaskan sedikit plastik, letakkan beberapa solder di ujung setiap kawat. Jangan panaskan solder dan coba pindahkan ke kawat, panaskan dengan Anda menyolder besi dari bagian bawah tembaga dan letakkan solder di atas. Bersabarlah dan tunggu kawat panas melelehkan solder. Sangat menggoda untuk mengikat besi solder ke solder untuk memulainya (ketidaksabaran saya dan saya tahu persis bagaimana perasaan Anda) tetapi solder tidak akan menempel juga. Lakukan hal yang sama untuk jejak tembaga yang terbuka di setiap ujung bagian strip. Jika sudah memiliki solder jangan khawatir. Untuk strip Anda mungkin ingin membuat gundukan kecil untuk membuatnya lebih mudah nanti. Saat bekerja dengan strip, lakukan dengan cepat, dan cobalah untuk tidak menghabiskan banyak waktu untuk mengoleskan panas pada strip. Lakukan hanya apa yang perlu Anda lakukan untuk melelehkan solder ke jejak. Solder kawat pada setiap jejak ke ujung strip pertama (Strip pertama adalah yang memiliki kabel dan konektor, solder ke ujung yang terbuka). Jika Anda melihat strip, Anda akan melihat panah kecil di atasnya naik ke ujung tempat Anda menyolder kawat. Ambil strip lain sehingga panah menunjuk ke arah yang berlawanan, dan solder kawat yang berasal dari jejak GND ke jejak GND yang lain, +5V ke +5V dan seterusnya. Ulangi ini untuk memastikan panah beralih arah setelah setiap bagian sehingga jika Anda mengikutinya, panah itu akan zig zag ke atas dan ke bawah, dan itu bisa direntangkan pada strip panjang pada akhirnya. Setelah semua 14 strip telah disolder, letakkan dan sejajarkan kemudian naik sehingga LED membentuk kisi-kisi. Kemudian simpan bersama-sama menggunakan metode yang dapat dilepas nanti tanpa merusak strip. Saya menggunakan scotch tape. Ini cukup lengket untuk menyatukan semuanya tetapi tidak terlalu lengket untuk meninggalkan residu. Saya tidak merekomendasikan apa pun untuk permanen, seperti staples atau lakban. Setelah semuanya direkatkan, solder kawat dari strip di bagian bawah +5V ke yang tepat di sebelahnya. Ulangi sampai seluruh bagian bawah memiliki keran listrik yang melintang. Ini agar layar tidak meredup saat garis LED maju.

Langkah 4: Menyolder Elektronik Inti

Menyolder Elektronik Inti
Menyolder Elektronik Inti
Menyolder Elektronik Inti
Menyolder Elektronik Inti
Menyolder Elektronik Inti
Menyolder Elektronik Inti

Solder papan breakout USB B (BOB) ke konektor USB B. Solder kabel yang sesuai ke konektor USB A. Saya menyarankan untuk melihat pin-out konektor seperti yang ditemukan di situs web ini, https://image.pinout.net/pinout_USB_files/pc_usb_connectors_pinout.png. Jangan khawatir tentang di mana harus menyolder ujung kabel lainnya pada konektor USB A sekarang; yang akan dibahas dalam langkah pengontrol. Potong konektor data dari strip, konektor perempuan, bukan konektor laki-laki (Konektor perempuan didapat dari ujung yang lain). Solder konektor JST jantan ke ujung baterai sehingga merah menjadi merah dan hitam menjadi hitam. Lelehkan tabung panas menyusut di atas kabel yang terbuka (digeser sebelum disolder) sehingga tidak pendek atau menggunakan sesuatu yang lain seperti pita listrik atau lem panas. Solder beberapa kabel ke semua konektor JST perempuan. Pastikan ujung jantan terpasang agar pin tidak bergeser. Hati-hati dengan polaritas dan pastikan kabel cocok dengan konektor laki-laki. Solder kabel ke salah satu konektor tegangan tinggi (tetapi bukan pasangannya), sekali lagi, pastikan semua warna cocok dan dicolokkan bersama untuk mencegah pin bergeser. Solder unit konektor/kawat betina saja sehingga disambungkan secara seri, bukan paralel, untuk melewati tegangan ambang batas untuk pengatur daya. Jadi, solder kabel positif ke kabel negatif dari rakitan lain jadi sekarang kita memiliki satu kabel positif yang tidak disolder dan satu kabel negatif yang tidak disolder dan dua kabel yang disolder disolder ke konektor yang berbeda. Ambil kabel negatif dan simpan untuk disolder ke kabel negatif di tempat lain. Sekarang ambil kabel positif dan solder ke sakelar Jika ada tiga atau lebih pin (atau lebih dari satu cara untuk "on") solder ke pin tengah. Perhatikan bahwa "Pin tengah" mungkin tidak secara fisik berada di tengah. Cara untuk mengidentifikasinya adalah dengan mencari pin yang, ketika saklar dalam keadaan on dalam keadaan apapun akan selalu terhubung dengan pin lain. Jika tidak ada pin seperti ini maka Anda memiliki saklar yang sangat khusus; cukup sambungkan ke pin mana saja dan pastikan kabel berikutnya yang disolder ke sakelar akan terhubung ke kabel itu setidaknya dalam satu status. Sekarang solder kabel masuk positif pada pengatur tegangan ke ujung sakelar yang berlawanan, seperti yang dibahas di atas. Solder tegangan postive ke ujung positif konektor arus tinggi yang tidak disolder. Ambil kabel intake negatif dan solder ke ujung negatif konektor arus tinggi. Kami sekarang akan menyolder daya secara paralel ke Arduino dan Power strip. Sekarang ambil kabel keluaran regulator tegangan dan solder dua potong kabel pada kedua ujung positif dan negatif sehingga keluar dalam bentuk Y. Solder konektor dua pin ke kabel positif dan negatif dari rakitan strip yang dipimpin. Tidak masalah jenis konektor apa yang Anda gunakan, itu bisa JST atau dalam kasus saya beberapa kabel daya/audio atau sesuatu (saya tidak yakin, dan saya minta maaf karena tidak memiliki gambar). Solder salah satu kabel daya positif ke ujung positif konektor berlawanan untuk strip lampu dan salah satu kabel negatif ke pin lain pada konektor. Lakukan hal yang sama tetapi untuk unit konektor/kawat JST pria. Sementara itu ingatlah untuk melindungi sambungan solder untuk menghindari celana pendek. Sekarang ke apa yang harus dilakukan dengan konektor USB B. Solder kabel positif ke lubang 5v pada Arduino Pro Mega. Ambil kabel ground dan solder ke lubang GND. Ambil D+ dan solder ke pin digital (atau dalam hal ini lubang) 40. Solder D- ke pin analog 15. Solder ujung data konektor female yang berpasangan dengan konektor male strip LED ke pin data 6 dan kabel ground ke pin GND. Selotip atau selotip sangat cocok untuk menahan kabel ke papan sehingga tidak jatuh saat dibalik untuk disolder. Sekarang ambil tombol sesaat dan solder kabel dari satu ujung ke pin VCC (atau pin output tegangan apa pun) dan ujung lainnya ke pin RESET.

Langkah 5: Pengontrol

Pengontrol
Pengontrol
Pengontrol
Pengontrol
Pengontrol
Pengontrol

Pertama adalah memilih bentuk yang tepat untuk memulai. Itu semua tergantung pada bagaimana Anda ingin pengontrol terstruktur. Saya menginginkan lebih banyak pengontrol datar, jadi saya mendapatkan papan berukuran 3 1/2" kali 3/4". mengatur bagian-bagian dengan cara yang tampak pas dan nyaman untuk dikerjakan. Gunakan kurva perancis, kompas, segitiga, dan tepi lurus untuk menggambar di mana semua bagian harus pergi. Potong garis dasar menggunakan alat pemotong pilihan Anda. Gergaji larangan akan lebih baik tetapi saya menggunakan gergaji coping, yang bekerja dengan baik. Amplas bagian tepinya agar transisinya mulus, lalu amplas bagian sudutnya agar lebih nyaman. Bor lubang untuk sakelar, lalu amplas, pahat, dan/atau dremel bagian mana pun di bagian bawah yang pas. Cobalah untuk tidak melakukan apa pun dengan bagian atas dan hanya mengampelas apa yang Anda butuhkan untuk dapat memasangnya dengan memutar, memiringkan, atau apa pun untuk memasukkannya. Setelah terpasang dengan mur plastik dan pasang mengalihkan. Bor keluar area untuk kenop potensiometer agar pas dan pahat area sehingga bisa meresap dan pas sepenuhnya. Bor beberapa lubang sehingga sekrup dapat menahannya. Tekuk bagian kecil konektor USB A yang membuat lebarnya sedikit bertambah (lihat gambar). Pahat sebagian untuk konektor, periksa secara bertahap untuk memastikan konektornya pas. Lem super konektor ke dalam slotnya. Ambil sedikit plastik dan potong menjadi bentuk yang pas di atas konektor (lihat gambar), lalu rekatkan ke kayu. Potong bagian yang mungkin menghalangi. Pasang potensiometer dan pasang kenop. Solder kabel positif ke salah satu ujung potensiometer (bukan bagian variabel) dan kabel negatif ke ujung yang berlawanan. Solder pin D ke pin variabel pada pot. Solder kabel dari pin pada pot dengan kabel positif ke salah satu pin pada tombol. Solder D+ ke pin lain pada tombol. Potong kabel cadangan dan lindungi bagian yang membutuhkannya.

Langkah 6: Kemeja

Kemeja
Kemeja
Kemeja
Kemeja
Kemeja
Kemeja

Temukan kemeja yang nyaman yang akan membiarkan cahaya masuk. Saya memilih T-shirt putih dasar ini. Tidak masalah warna atau gaya selama cahaya dapat terlihat bersinar dari dalam. Namun saya tidak merekomendasikan grafis di bagian depan. Letakkan semua yang ada di baju untuk membantu Anda memutuskan di mana Anda menginginkannya dan gunakan alat penanda yang bisa dihapus untuk menggambarnya. Saya (artinya beberapa orang yang saya kenal) memiliki pensil yang dimaksudkan untuk menandai kain yang mudah luntur. Ukur ukuran baterai, kotak pengontrol, dan layar, lalu potong kertas agar sesuai. Kemudian sematkan kertas ke selembar kain yang tidak melar. Tenunan bekerja dengan baik untuk ini. Kemudian potong persegi panjang dengan sisakan sekitar seperempat inci untuk jahitan di sekelilingnya. Kemudian dengan menggunakan selembar kertas sebagai panduan, setrika lipatan ke dalam kain. Sekarang kertas bisa dilepas. Pada bagian saku yang akan menjadi bagian atas lipat ke atas sendiri sebanyak tiga kali. Setrika dan sematkan agar tetap di tempatnya. Jahit jahitan sepanjang bagian tengah lipatan. Sekarang ambil sudut dan lipat sehingga tepi yang tidak dijahit tegak lurus satu sama lain sejajar dan jahit tampak di sepanjang lipatan yang disetrika paling dekat dengan sudut (Gambar sangat membantu). Lakukan ini untuk sudut lainnya juga. Jika mungkin Anda akan memiliki sakelar sakelar yang keluar dari saku, jahit lubang kancing di dasar saku tempat sakelar menyentuh. Kemudian jahit lubang kancing dan potong bagian tengahnya. Saya tidak bisa memberikan instruksi detail karena saya punya alat keren untuk membuat lubang kancing. Pastikan Anda membuat lubang sebelum saku dijahit. Ambil beberapa pin dan masukkan ke dalam kemeja di sudut-sudut tanda saku. Ambil saku dan letakkan setiap sudut pada peniti (di bagian dalam kemeja), sisakan seperempat inci untuk jahitannya, dan sematkan pada kemeja. Setelah saku disematkan. lepaskan pin yang tidak menahan saku dan jahit saku ke kemeja. Ulangi untuk semua kantong. Untuk saku besar yang memegang layar, sisakan celah untuk kabel di bagian bawah saku. Untuk membuat lubang di baju, tandai tempatnya dan ambil setrika di bagian belakang (dengan bagian yang lebih mengkilap di kain) dan setrika. Kemudian, untuk lubang kecil (seperti yang saya gunakan untuk sakelar sakelar), buat lubang kancing. Untuk lubang yang lebih besar, tandai garis dan gunakan jahitan zig-zag di sepanjang garis (atau kurva atau apa pun) dan potong bagian tengahnya. Jika mau, Anda dapat menggunakan suspender untuk menahan beban saku, dua klip yang menahan saku di bagian depan dan klip belakang ke celana. Saya juga mendapat sedikit kain yang dijahit di bagian suspender yang akan menyentuh kulit saya. Dua kemeja bisa menjadi sedikit terlalu panas jadi saya memilih keluar dan menggunakan lengan kain kecil.

Langkah 7: Pemrograman

Pemrograman
Pemrograman

Dan inilah kodenya. Ada beberapa bagian yang dikomentari dengan baik tetapi sebagian besar tidak. Jika Anda memiliki pertanyaan tentang bagian yang berbeda, Anda dapat memberi saya nomor baris (dengan #include sebagai baris nomor satu) atau memberi saya salinan baris dan fungsi di mana ia berada (seperti loop() atau compMovePaddle()) dan saya akan melakukan yang terbaik untuk menjelaskannya kepada Anda, lalu menambahkan komentar ke kode yang menjelaskannya. #include #define PIN 6 //mengatakan yang merupakan pin input untuk game int buttonPin = 40; //menentukan skor, disimpan dalam array bianary karena lebih mudah int playerScore[5] = {0, 0, 0, 0, 0}; int compScore[5] = {0, 0, 0, 0, 0}; //menentukan arah bola int bvd=0;//0 turun, 1 naik int bhd=0;//0 kanan, 1 kiri //menentukan posisi bola int bvp = 8; int tenaga kuda = 6; //memeriksa apakah bola dalam mode cepat boolean fast = false; //memeriksa apakah itu skor. boolean cIsPoint = salah; boolean pIsPoint = salah; //posisi dayung int cPaddle = 0; int pPaddle = 0; lama sebelumnyaMillis = 0; lama sebelumnyaMillisForComp = 0; //mengatur waktu tunda untuk bola yang bergerak cepat dan lambat "Int" di normInt dan fastInt untuk interval int normInt = 50; int fastInt = 10; //digunakan untuk memeriksa kemenangan. 1 adalah kemenangan pemain, -1 dalam kemenangan komputer, dan 0 belum terjadi apa-apa pada kemenangan = 0; // untuk menghilangkan bug. digunakan dalam pernyataan addOne dan tidak di tempat lain. int yang = 0; //Hal yang ditampilkan sebelum start, -1 adalah escape int pongPlay = {1, 2, 3, 4, 10, 11, 12, 13, 16, 18, 20, 27, 29, 33, 34, 41, 42, 61, 62, 63, 70, 71, 72, 76, 85, 86, 88, 91, 92, 94, 100, 101, 102, 103, 131, 132, 136, 139, 144, 145, 146, 147, 148, 161, 162, 166, 175, 183, 185, 192, 194, 195, 196, 197, 198, 199, 204, 205, 206, 207, 208, -1}; //jika kamu menang int youWin = {1, 2, 3, 4, 5, 16, 17, 18, 19, 20, 27, 33, 34, 39, 46, 47, 48, 49, 54, 55, 56, 57, 58, 77, 78, 79, 84, 88, 91, 92, 93, 94, 95, 99, 103, 106, 110, 114, 118, 130, 131, 132, 144, 145, 146, 147, 151, 162, 163, 168, 169, 170, 177, 181, 192, 193, 204, 205, 206, 207, -1}; //jika kamu kalah int youLose = {1, 3, 5, 16, 17, 18, 19, 20, 24, 26, 28, 31, 32, 32, 33, 34, 35, 39, 46, 47, 48, 49, 62, 65, 77, 78, 79, 84, 86, 88, 91, 94, 99, 103, 106, 110, 122, 123, 124, 130, 131, 132, 144, 148, 152, 153, 154, 162, 163, 168, 169, 170, 181, 192, 193, 204, 205, 206, 207, 208, -1}; //set up strip led Adafruit_NeoPixel strip = Adafruit_NeoPixel(210, PIN, NEO_RGB + NEO_KHZ800); //menyetel, tidak mengubah pin 40 untuk input, memulai strip, menampilkan //pesan dan menampilkannya. void setup() { pinMode(buttonPin, INPUT); strip.mulai(); for (int i = 0; pongPlay>0; i++){ strip.setPixelColor(pongPlay, strip. Color(0, 0, 255)); } strip.tampilkan(); penundaan(5000); while (digitalRead(buttonPin) == LOW){ //Ini jebakan!(sampai tombol ditekan.) } } void loop() { clearScreen(); //menggambar dayung untuk menunjukkan skor untuk(int i = 0; i < 5; i++){ if (playerScore==1){ strip.setPixelColor(204-i, strip. Color(255, 255, 255)); }else if((playerScore==0)){ strip.setPixelColor(204-i, strip. Color(0, 255, 0)); } if (compScore==1){ strip.setPixelColor(5+i, strip. Color(255, 255, 255)); }else if((compScore==0)){ strip.setPixelColor(5+i, strip. Color(255, 0, 0)); } } //mengambil bola di posisi awalnya strip.setPixelColor(98, strip. Color(255, 255, 255)); strip.tampilkan(); //memutuskan apakah bola akan naik atau turun while(pIsPoint == false && cIsPoint == false){ clearScreen(); unsigned long currentMillis = milis(); //menetapkan posisi dayung pemain pPaddle=checkPaddlePos(); //memeriksa posisi selanjutnya checkNext(); //memindahkan bola if (fast == false){ if(currentMillis - beforeMillis > normInt){ PreviousMillis = currentMillis; bergerakBola(); } }else if(cepat == benar){ if(Millis saat ini - sebelumnyaMillis > fastInt){ sebelumnyaMillis = saatMillis; bergerakBola(); } } //menggambar bola jika(bhp%2 != 0){ strip.setPixelColor(bhp*15+14-bvp, strip. Color(255, 255, 255)); }else if (bhp%2 == 0){ strip.setPixelColor(bhp*15+bvp, strip. Color(255, 255, 255)); } //gerakan dayung komputer compMovePaddle(); //draw adalah dayung drawPaddles(); //sebenarnya meletakkan semuanya.strip.tampilkan(); //memeriksa untuk melihat apakah suatu poin telah dicetak jika (pIsPoint == true){ which = 0; bhd=0; tambahkanSatu(); merusak; }else if(cIsPoint == true){ which = 1; bhd=1; tambahkanSatu(); merusak; } } if (menang == 1){ clearScreen(); for (int i = 0; youWin>0; i++){ strip.setPixelColor(youWin, strip. Color(255, 0, 0)); strip.tampilkan(); } penundaan(5000); for (int i = 0; i < 5; i++){ playerScore = 0; compScore = 0; } menang = 0; }else if (menang == -1){ clearScreen(); for (int i = 0; youLose>0; i++){ strip.setPixelColor(youLose, strip. Color(0, 255, 0)); strip.tampilkan(); } penundaan(5000); for (int i = 0; i < 5; i++){ playerScore = 0; compScore = 0; } menang = 0; } pIsPoint = salah; cIsPoint = salah; bvp = 8; tenaga kuda = 6; bvd=random(0, 2);//0 turun, 1 naik cepat=false; } //AI untuk game void compMovePaddle(){ unsigned long currentMillis = millis(); if(currentMillis - PreviousMillisForComp > 51){ PreviousMillisForComp = currentMillis; if (bvp >= 13 && 10-cPaddle 0){ cPaddle--; }else if(bvp = 0 && cPaddle < 10){ cPaddle++; }else if(bvp-3 > 10-cPaddle && 10-cPaddle >= 0 && cPaddle > 0){ cPaddle--; }else if(bvp < 10-cPaddle && 10-cPaddle <= 10){ cPaddle++; } } } //memindahkan bola void moveBall(){ if (bhd == 0){ bhp--; }else if(bhd == 1){ bhp++; } jika (bvd == 0){ bvp--; }else jika(bvd == 1){ bvp++; } } //menambahkan satu ke array. Jika yang mana adalah 0 itu menambah skor pemain. Jika 1 itu ditambahkan ke komputer void addOne(){ if (yang == 0){//jika itu skor pemain //Tambahkan satu. Ini adalah cara paling sederhana yang saya tahu caranya. for (int i=0; i < 5; i++){//loop if (playerScore == 0){//jika nilai itu adalah nol playerScore=1;//buat 1 break; //lalu pergi }else {//jika 1 playerScore=0;//jadikan nol dan loop } } }else if(which == 1){ for (int i=0; i < 5; i++){ if (compScore == 0){ compScore=compScore+1; merusak; }else { compScore=0; } } } //Memeriksa apakah ada yang menang. if (compScore[0]==1 && compScore[2]==1 && compScore[4]==1){ win = -1; }else if (playerScore[0]==1 && playerScore[2]==1 && playerScore[4]==1){ win = 1; } } //memeriksa posisi bola berikutnya void checkNext(){ //memeriksa untuk melihat apakah sebuah poin telah dicetak jika (bhp == 13){ pIsPoint = true; }else if(bhp == 0){ cIsPoint = true; } //jika satu poin telah dicetak daripada melewati sisa hal ini if (pIsPoint == false || cIsPoint == false){ //memeriksa bola secara vertikal if (bvp+bvd==15){ bvd = 0; }else jika(bvp+bvd==0){ bvd = 1; } //memeriksa bola secara horizontal if (bhp+bhd==13){//pertama pada sisi komputer if (bvp >= 10-cPaddle && bvp <= 10-cPaddle+4){ if(bhd==1) { bhd=0; }else jika(bhd==0){ bhd=1; } cepat = salah; }else if(bvp+bvd == 10-cPaddle || bvp+bvd == 10-cPaddle+5){ if(bvp != 0 && bvp !=14){ if (bvd == 0){ bvd=1; }else jika(bvd == 1){ bvd=0; } bhd=1; }else if (bvp == 0 || bvp == 14){ bhd=1; } cepat = salah; } }else if(bhp+bhd==1){//then di sisi pemain if (bvp >= pPaddle && bvp <= pPaddle+4){//apakah itu mengenai dayung di tempat yang normal? //pantulkan bolanya! jika(bhd==1){ bhd=0; }else jika(bhd==0){ bhd=1; } }else if(bvp+bvd == pPaddle || bvp+bvd-5 == pPaddle){//apakah itu mengenai dayung di sudut if(bvp != 0 && bvp !=14){//apakah itu tidak naik tinggi atau turun rendah? // Pantulkan bolanya! jika (bvd == 0){ bvd=1; }else jika(bvd == 1){ bvd=0; } bhd=1; cepat = benar; }else if (bvp == 0 || bvp == 14){// apakah naik tinggi atau turun rendah? //pantulkan bolanya! bhd=0; fast = true;//menetapkan nilai untuk kemudian membuat bola bergerak cepat } } } } } int checkPaddlePos(){ //membaca pot dan menentukan posisi dayung sesuai jika (analogRead(A15)<93){ return 0; }else if(analogRead(A15)<186){ kembali 1; }else if(analogRead(A15)<279){ kembali 2; }else if(analogRead(A15)<372){ kembali 3; }else if(analogRead(A15)<465){ kembali 4; }else if(analogRead(A15)<558){ kembali 5; }else if(analogRead(A15)<652){ kembali 6; }else if(analogRead(A15)<745){ kembali 7; }else if(analogRead(A15)<837){ kembali 8; }else if(analogRead(A15)<=931){ kembali 9; }else if(analogRead(A15)<=2014){ kembali 10; } } void drawPaddles(){ //menggambar dayung di tempat yang benar dan menampilkan skor pada dayung for(int i = 0; i < 5; i++){ if (playerScore==1){ strip. setPixelColor(pPaddle+i, strip. Color(255, 255, 255); }else if((playerScore==0)){ strip.setPixelColor(pPaddle+i, strip. Color(255, 0, 0)); } if (compScore==1){ strip.setPixelColor(199+cPaddle-i, strip. Color(255, 255, 255)); }else if((compScore==0)){ strip.setPixelColor(199+cPaddle-i, strip. Color(0, 255, 0)); } } } void clearScreen(){ for(int i=0; i<=210; i++){ strip.setPixelColor(i, strip. Color(0, 0, 0)); } strip.tampilkan(); }

Langkah 8: Produk Jadi

Produk jadi
Produk jadi
Produk jadi
Produk jadi

Dan ini dia, kemeja yang sudah jadi!

Direkomendasikan: