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

아두이노 나노 + 128x64 OLED로 실시간 셀룰러 오토마타 (생명 게임) 구현

부품 및 소모품

부품 수량
아두이노 나노 R3 (우노도 가능) 1
128x64 I2C OLED 디스플레이 (SSD1306) 1
하프 사이즈 브레드보드 1
점퍼 와이어 4

프로젝트 소개

콘웨이의 생명 게임(Conway's Game of Life)을 아두이노 나노와 128x64 OLED로 구현한 프로젝트입니다. 128×64 = 8,192개 셀의 세대 교체가 실시간으로 표시됩니다. 아다프루트 GFX + SSD1306 라이브러리만 있으면 간단히 구현 가능합니다.

아두이노 나노 + 128x64 OLED로 실시간 셀룰러 오토마타 (생명 게임) 구현
아두이노 나노 + 128x64 OLED로 실시간 셀룰러 오토마타 (생명 게임) 구현

생명 게임 규칙

각 셀은 생존(1) 또는 사망(0) 상태를 가지며, 8개 이웃 셀을 기준으로 다음 세대 상태가 결정됩니다.

  1. 탄생: 죽은 셀 주위에 정확히 3개 살아있는 이웃 → 다음 세대 생존
  2. 생존: 살아있는 셀 주위에 2~3개 살아있는 이웃 → 생존 유지
  3. 사망: 그 외(고립 0~1, 과밀 4+) → 다음 세대 사망

배선 (I2C)

아두이노 OLED
3.3V (또는 5V, 모듈 사양 확인) VCC
GND GND
A4 SDA
A5 SCL

필수 라이브러리

라이브러리 설치: 아두이노 IDE → 스케치 → 라이브러리 포함 → 라이브러리 관리 → 검색 후 설치

코드 (핵심 로직)

전체 코드는 GitHub에서 다운로드 가능합니다. 주요 부분 설명:

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Wire.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_ADDR 0x3C  // 모듈에 따라 0x3D일 수 있음

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

bool grid[SCREEN_WIDTH][SCREEN_HEIGHT];
bool newGrid[SCREEN_WIDTH][SCREEN_HEIGHT];

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
  display.clearDisplay();
  randomSeed(analogRead(0));
  // 초기 패턴 랜덤 생성
  for(int x=0; x

주의사항

  • OLED I2C 주소가 0x3C가 아닐 수 있음 (I2C 스캐너로 확인)
  • SRAM 제약: 128×64 bool 배열 2개 = 16KB, 나노(2KB)로는 불가능 → 비트 단위 압축 또는 PROGMEM 사용 필요. 실제 구현에서는 1차원 배열 + 비트 연산으로 최적화
  • 화면 주사율과 카메라 프레임 레이트 차이로 수평 줄무늬가 보일 수 있음 (실제로는 깜빡임 없음)

확장 아이디어

  • 버튼으로 초기 패턴 선택 (글라이더, 오실레이터, 랜덤 등)
  • 잠자리/글라이더 건 등 유명 패턴 프리셋 내장
  • 세대 수, 생존 개체 수 통계 표시
  • 더 큰 디스플레이(128x128) 또는 다중 OLED로 확장

참고 자료

제조공정

  1. 아두이노 우노와 OLED 디스플레이로 클래식 퐁(Pong) 게임 만들기: 단계별 튜토리얼
  2. 아두이노 우노로 만드는 LCD 애니메이션 & 게임 기초
  3. 아두이노와 스마트폰으로 만드는 스마트 전압계 – 초간단 DIY 프로젝트
  4. Pixie: 아두이노 기반 네오픽셀 손목시계 – 세련된 DIY LED 타임피스
  5. 파이썬 3로 아두이노 우노 제어하기 – 시리얼 통신 LED 제어 기초
  6. 아두이노 고속 RPM 카운터 – 레이저 + IR 센서 싱글샷 알고리즘으로 40ms 초고속 측정
  7. eDOT: 내장 IR 리모컨·자동 밝기 조절 갖춘 정밀 아두이노 시계·기상 관측소
  8. 아두이노 나노와 RDA8057M으로 소형 FM 라디오 만들기
  9. 아두이노와 구글 시트로 구현하는 실시간 RFID 출석 시스템
  10. 아두이노, 윈도우 IoT, 애저 클라우드 기반 고급 낙상 감지 시스템