����λ�ã���ҳ > �����̳� > �̳� > ̰���ߴ�Խ�߽�ʵ��

̰���ߴ�Խ�߽�ʵ��

��Դ������������|��ʱ�䣺2024-05-05 15:46:17 |���Ķ���57��|�� ��ǩ�� T �� 2 UNO S C Ino in AR ̰���� Arduino LCD ʵ�� �� ���� �� |����������

1.ǰ�ԣ� 1.1��ʵ��ʵ�ֵ�̰�����ܴ�Խ�߽磬������Ϸ��Ψһ������̰���ߵ���ָ������ 1.2��ʵ������LCD���ܲ���LCD12864��LCD12864���ÿ�Ϊu8glib�������ڴʿ��в�û���ҵ��ͺ�ΪST77355�ij�ʼ��������������ucglib���ҵ����䷽��Ϊ Ucglib_ST7735_18x

1.ǰ�ԣ�
1.1 ��ʵ��ʵ�ֵ�̰�����ܴ�Խ�߽磬������Ϸ��Ψһ������̰���ߵ���ָ�����ȡ�
1.2 ��ʵ������LCD���ܲ���LCD12864��LCD12864���ÿ�Ϊu8glib�������ڴʿ��в�û���ҵ��ͺ�ΪST77355�ij�ʼ��������������ucglib���ҵ����䷽��Ϊ
Ucglib_ST7735_18x128x160_SWSPI ucg(/*sclk=*/13, /*data=*/11, /*cd=*/9, /*cs=*/10, /*reset=*/8);
1.3 ������ѧ��LCD1602�޸Ķ�����

2.���߷�ʽ

����� RXD TXD GND VCC
Arduino uno pin7 pin6 5v GND
ST7735S� BLK CS DC RST SDA SCL VDD VCC
Arduino uno 3.3v pin10 pin9 pin8 pin11 pin13 � GND

3.������˵�ϴ���

����鿴����
#include 
#include 
#include "Ucglib.h"
#define maxlength 4 //����󳤶�
Ucglib_ST7735_18x128x160_SWSPI ucg(/*sclk=*/13, /*data=*/11, /*cd=*/9, /*cs=*/10, /*reset=*/8);
SoftwareSerial BT(6, 7);
char val;//���������ַ�
int snake_length = 1;//��Ŀǰ����
int snake_x[maxlength], snake_y[maxlength];
int direction = 6;//�����жϺ���������
int x = 10;
int y = 10;//��¼�仯��λ��
int food_x;
int food_y;//ʳ��
int gameOver = 0;//��������
void setup(void) {
  //delay(1000);
  ucg.begin(UCG_FONT_MODE_TRANSPARENT);
  //ucg.begin(UCG_FONT_MODE_SOLID);
  ucg.clearScreen();
  BT.begin(9600);
  snake_x[0] = 10;
  snake_y[0] = 10;
  food_x = 10 + 10 * random(0, 9);
  food_y = 10 + 10 * random(0, 9);
}

void loop(void) {
  if (direction == 6) {//��ӭ����
    ucg.setFont(ucg_font_ncenR12_tr);//��������
    ucg.setPrintPos(40, 80);//�趨��ʾ����
    ucg.print("welcome");
  } else
    ucg.drawFrame(10, 10, 100, 100);//��Ϸ������û������ν
  if (BT.available()) {
    val = BT.read();
    if (val == 'w' && direction != 2) direction = 0;
    if (val == 's' && direction != 0) direction = 2;
    if (val == 'a' && direction != 1) direction = 3;
    if (val == 'd' && direction != 3) direction = 1;
  }
  if (direction == 0) y -= 10;  //w
  if (direction == 1) x += 10;  //d
  if (direction == 2) y += 10;  //s
  if (direction == 3) x -= 10;  //a

  if (x < 10) x = 100;
  if (x > 100) x = 10;
  if (y < 10) y = 100;
  if (y > 100) y = 10;//����߽�󴩹��߽�

  if (x == food_x && y == food_y) {//�ж���Ե�ʳ��
    snake_length++;
    while (1) {
      int flag = 1;//����ѭ����־
      food_x = 10 + 10 * random(0, 9);
      food_y = 10 + 10 * random(0, 9);//��������һ��ʳ��

      for (int i = snake_length - 1; i >= 0; i--) {//����������ʳ���Ƿ�����������
        if ((food_x == snake_x[i]) && (food_y == snake_y[i]) || ((food_x == x) && (food_y == y))) {
          flag = 0;
          break;
        }
      }
      if (snake_length == maxlength) {//��Ϸ��������
        gameOver = 1;
        direction=5;//��������ʾgameoverʱ����������
        break;
      }
      if (flag) break;
    }
  }

  if (direction != 6) {
    for (int i = snake_length - 1; i > 0; i--) {
      snake_x[i] = snake_x[i - 1];
      snake_y[i] = snake_y[i - 1];
    }
    snake_x[0] = x;
    snake_y[0] = y;
    if (gameOver) {
      if(direction==5){
        ucg.clearScreen();
        direction=1;
      }
      else{
        ucg.setFont(ucg_font_ncenR12_tr);
        ucg.setPrintPos(40, 80);
        ucg.print("gameover");
      }
      
    }
    if (!gameOver) {
      ucg.clearScreen();
      for (int i = 0; i < snake_length; i++) {
        ucg.drawFrame(snake_x[i], snake_y[i], 10, 10);
      }
      ucg.drawFrame(food_x, food_y, 10, 10);
    }
  }
}

4.������ͼ
̰³ÔÉß´©Ô½±ß½çʵÑé

����
̰³ÔÉß´©Ô½±ß½çʵÑé

����
̰³ÔÉß´©Ô½±ß½çʵÑé
ʹ���ֻ�app�������ڵ��ԣ�����wasd����Ӧ��������

5.�عˣ���ϰ����
ͷ�ļ����� ��

5.1LCD��غ���
LCD��ʼ��
Ucglib_ST7735_18x128x160_SWSPI ucg(/*sclk=*/13, /*data=*/11, /*cd=*/9, /*cs=*/10, /*reset=*/8);
��ʾ���Σ������Ͻ�����Ϊ(snake_x[i], snake_y[i]�������ȺͿ���Ϊ10
ucg.drawFrame(snake_x[i], snake_y[i], 10, 10);
��ʾ���ص�,����������Ϊ��x,y)
ucg.drawPixel��x,y)
����
ucg.clearScreen();
��ʼ������������֪��
ucg.begin(UCG_FONT_MODE_TRANSPARENT); //ucg.begin(UCG_FONT_MODE_SOLID);
���塢��ʾ���ꡢ��ʾ����
ucg.setFont(ucg_font_ncenR12_tr); ucg.setPrintPos(40, 80); ucg.print("welcome");

5.2������غ���
SoftwareSerial BT(6, 7);
��app��������Ϣ
if (BT.available()) char val = BT.read();

6.˵��
����ͬ�����ˣ���ɾȥע��

С���Ƽ��Ķ�

�������������Ľ�Ϊ������Ϣ����������������ͬ���޹۵��֤ʵ��������

̰³ÔÉß 5.15.0
̰���� 5.15.0
���ͣ���������������Ӫ״̬����ʽ��Ӫ�������ԣ����� ����

��Ϸ����

��Ϸ���

��Ϸ��Ƶ

��Ϸ����

��Ϸ�

̰������Ѱ���һ�����Ȥ���ֻ���Ϸ������Ϸ�У���ҿ��Բ���һ��С�ߣ�����������Դ����Ŭ����Ϊ��Ϸ
̰³ÔÉßio 1.40
̰����io 1.40
���ͣ���������������Ӫ״̬����ʽ��Ӫ�������ԣ� Ӣ�� ����

��Ϸ����

��Ϸ���

��Ϸ��Ƶ

��Ϸ����

��Ϸ�

��̰����io�����ɿ�����VOODOO������һ��̰������ĵĿ��ս����Ϸ������ǽ�����һ�������У������Լ�

�����Ƶ����

����

ͬ������

����

ɨ��ά�����������ֻ��汾��

ɨ��ά����������΢�Ź��ںţ�

��վ�������������������ϴ��������ַ���İ�Ȩ���뷢�ʼ�[email protected]

��ICP��2022002427��-10 �湫��������43070202000427��© 2013~2025 haote.com ������