산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Tech-TicTacToe

구성품 및 소모품

Arduino UNO
아두이노
× 1
MAX7219 LED 도트 매트릭스
× 1
멤브레인 스위치 키패드
× 1

필요한 도구 및 기계

뜨거운 글루건(일반)

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

안녕하세요 Hackster 커뮤니티입니다.

저는 Simone Adobs이고 Hackster에서 발표한 세 번째 프로젝트입니다. 이것은 Arduino 및 기타 구성 요소가 포함된 판지, 종이 및 핫 글루 건으로 구조를 만드는 첫 번째 프로젝트입니다.

다음은 Tris의 작동 방식을 보여주는 짧은 동영상입니다.

여기에서 모든 보기에서 프로젝트를 볼 수 있습니다.

나는 당신이 그것을 좋아하기를 바랍니다. 왜냐하면 나는 그것에 몇 시간을 보냈기 때문입니다! 이제 프로젝트를 시작하겠습니다.

트리스는 어떻게 작동하나요?

답은 매우 간단합니다. 키패드의 숫자를 클릭하면 Arduino가 해당 사각형을 켭니다.

<울>
  • 플레이어를 변경할 수 있나요?
  • 사각형을 켜면 Arduino가 즉시 다음 플레이어의 턴으로 전환합니다.

    <울>
  • 내가 이기면 Arduino가 인식하나요?
  • 플레이어가 이기면 Arduino는 LED Dot Matrix에 다음과 같이 씁니다.

    <울>
  • 승자가 플레이어 1인 경우 "1",
  • <울>
  • 승자가 플레이어 2인 경우 "2".
  • 게임이 끝나면 버튼으로 Arduino를 다시 시작할 수 있나요?

    키패드의 "0" 버튼을 클릭하면 게임을 다시 시작할 수 있습니다. - Arduino가 자동으로 다시 시작됩니다.

    어떻게 플레이어를 알아볼 수 있나요?

    LED Dot Matrix는 빨간색이지만 모든 플레이어는 2x2 LED로 구성된 특정 패턴을 가지고 있기 때문에 플레이어를 쉽게 알아볼 수 있습니다.

    <울>
  • 플레이어 1의 패턴:"\"
  • <울>
  • 플레이어 2의 다른 패턴은 "/"입니다.
  • 질문, 제안, 비판 또는 코드 설명이 있는 경우 아래에 자유롭게 의견을 말하십시오. 이 프로젝트가 마음에 들면 좋아요를 누르고 다른 프로젝트를 살펴보세요!

    다른 구조물을 만들거나 내 구조물을 개인화하여 사진을 보내주세요!

    좋은 하루 되세요!

    이탈리아의 Simone <3

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • 테크-트리스
  • Tech-TrisC/C++
    #include #include #include #include #define Reset_AVR() wdt_enable(WDTO_30MS); while(1) {} LedControl lc=LedControl(12,10,11,1);bool player1=true,q1=false,q2=false,q3=false,q4=false,q5=false,q6=false,q7 =false,q8=false,q9=false;int 행,col,rowPlays,colPlays,결과,플레이어,승자;char hexaKeys[4][3] ={ {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'}};int 재생[3][3 ] ={ {0,0,0}, {0,0,0}, {0,0,0}};바이트 rowPins[4] ={8,7,6,5};바이트 colPins[3] ={4, 3, 2}; 키패드 customKeypad =키패드( makeKeymap(hexaKeys), rowPins, colPins, 4, 3); 무효 설정() { lc.shutdown(0, false); lc.setIntensity(0,0); lc.clearDisplay(0);} 무효 루프() { int customKey =customKeypad.getKey(); 페인팅(customKey); 승리(결과); if (승자==1) { lc.clearDisplay(0); 동안 (승자==1) { char customKey =customKeypad.getKey(); if (customKey=='0') { Reset_AVR(); } lc.setLed(0,1,4,참); lc.setLed(0,2,5,true); lc.setLed(0,3,6,true); lc.setLed(0,4,7,true); lc.setLed(0,4,6,true); lc.setLed(0,4,5,true); lc.setLed(0,4,4,true); lc.setLed(0,4,3,true); lc.setLed(0,4,2,true); lc.setLed(0,4,1,true); lc.setLed(0,4,0,true); lc.setLed(0,5,0,true); lc.setLed(0,6,0,true); lc.setLed(0,3,0,true); lc.setLed(0,2,0,true); } } else if (승자==2) { lc.clearDisplay(0); 동안 (승자==2) { char customKey =customKeypad.getKey(); if (customKey=='0') { Reset_AVR(); } lc.setLed(0,2,0,참); lc.setLed(0,3,0,true); lc.setLed(0,4,0,true); lc.setLed(0,5,0,true); lc.setLed(0,2,1,true); lc.setLed(0,2,2,true); lc.setLed(0,2,3,true); lc.setLed(0,2,4,true); lc.setLed(0,3,4,true); lc.setLed(0,4,4,true); lc.setLed(0,5,4,true); lc.setLed(0,5,5,true); lc.setLed(0,5,6,true); lc.setLed(0,5,7,true); lc.setLed(0,4,7,true); lc.setLed(0,3,7,true); lc.setLed(0,2,7,true); } }}int round_player() { if (player1) { player1=false; 결과=1; } else { 플레이어1=참; 결과=2; } 반환 결과;} 무효 win(int player) { if (plays[0][0]==player &&plays[0][1]==player &&plays[0][2]==player) { 승자=플레이어; } else if (plays[1][0]==플레이어 &&플레이[1][1]==플레이어 &&플레이[1][2]==플레이어) { 승자=플레이어; } else if (plays[2][0]==플레이어 &&플레이[2][1]==플레이어 &&플레이[2][2]==플레이어) { 승자=플레이어; } else if (plays[0][0]==플레이어 &&플레이[1][0]==플레이어 &&플레이[2][0]==플레이어) { 승자=플레이어; } else if (plays[0][1]==플레이어 &&플레이[1][1]==플레이어 &&플레이[2][1]==플레이어) { 승자=플레이어; } else if (plays[0][2]==플레이어 &&플레이[1][2]==플레이어 &&플레이[2][2]==플레이어) { 승자=플레이어; } else if (plays[0][0]==플레이어 &&플레이[1][1]==플레이어 &&플레이[2][2]==플레이어) { 승자=플레이어; } else if (plays[0][2]==플레이어 &&플레이[1][1]==플레이어 &&플레이[2][0]==플레이어) { 승자=플레이어; }} 무효 switch_on_led(int col, int row, int colPlays, int rowPlays) { if (player1) { lc.setLed(0,col,row,true); lc.setLed(0,col+1,row-1,true); } else { lc.setLed(0, 열, 행-1, 참); lc.setLed(0,col+1,행,참); } play[rowPlays][colPlays]=round_player();}void painting(int bottone) { switch (bottone) { 사례 49:if (!q1){ switch_on_led(0,7,0,0); q1=참; } 부서지다; 사례 50:if (!q2) { switch_on_led(3,7,0,1); q2=참; } 부서지다; 사례 51:if (!q3) { switch_on_led(6,7,0,2); q3=참; } 부서지다; 사례 52:if (!q4) { switch_on_led(0,4,1,0); q4=참; } 부서지다; 사례 53:if (!q5) { switch_on_led(3,4,1,1); q5=참; } 부서지다; 사례 54:if (!q6) { switch_on_led(6,4,1,2); q6=참; } 부서지다; 사례 55:if (!q7) { switch_on_led(0,1,2,0); q7=참; } 부서지다; 사례 56:if (!q8) { switch_on_led(3,1,2,1); q8=참; } 부서지다; 사례 57:if (!q9) { switch_on_led(6,1,2,2); q9=참; } 부서지다; 사례 48:Reset_AVR(); 부서지다; }}

    회로도

    tris_1Nd6QnEjNE.fzz

    제조공정

    1. Arduino를 사용하여 모니터 Ambilight 만들기
    2. Arduino Pong 게임 - OLED 디스플레이
    3. Giant Animatronics Lego Minfig Operation Game
    4. 오디오 주파수 감지기
    5. Arduino Tamagotchi 클론 - 디지털 애완동물
    6. 무선 조명 스위치 조작기
    7. 모션 센서 물총
    8. Arduino 카운트다운 타이머
    9. OK Google이 포함된 Bluetooth 음성 제어 기기
    10. Arduino Sunflower:일렉트로닉 썬댄서