Project tutorial
Arduino and OLED based Cellular Automata

Arduino and OLED based Cellular Automata © GPL3+

Arduino and OLED based Cellular Automata aka Game Of Life

  • 16,684 views
  • 7 comments
  • 11 respects

Components and supplies

About this project

Original Page

http://runtimeprojects.com/2016/02/arduino-and-oled-based-cellular-automata/

This project uses an I2C 128×64 OLED to display a tiny cellular automata powered by Arduino Nano.

Prerequisites

  • 2x small breadboards (or 1x standard)
  • 1x Arduino Nano (can be Uno as well)
  • 1x OLED I2C 128×64
  • 4x Jumper wires

Assumptions

During this tutorial I will assume that you know what an Arduino is (o_O) and you know how to use the IDE and upload simple sketches. I will also assume you know a little programming preferably C programming.

So lets get started!!

Background

What is Cellular Automata? I will explain 1 type of cellular automata which is the Game of Life by John Conway. It is a grid or cells each having 2 states True of False/on or off/alive or dead. These cells are governed by 2 simple rules:

Rule 1: A cell which is dead and is surrounded by exactly 3 alive cells, will be born

Rule 2: A cell which is alive and has either 3 or 2 alive cells will remain alive, else it dies

Simple, no? If you need more information make a little visit to the Game Of Life or Cellular Automata on Wikipedia.

Circuitry

So hook up the Arduino and OLED LCD to the breadboard and start wiring.

  • Arduino —– OLED
  • 3.3v ———— VCC (pay attention to your OLED voltage requirements)
  • GND ———– GND
  • A4 ————– SDA
  • A5 ————– SCL

Then I attached both breadboards back to back and created a small TV

Programming the sketch

In order to facilitate (and make it possible) to play with the OLED display, we will be using 2 libraries from Adafruit. If you don’t know how to add libraries please visit https://www.arduino.cc/en/Guide/Libraries

The sketch can be downloaded from our github: https://github.com/klauscam/Arduino-Cellular-Automata/

Some explanation

On line 51 with code

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //initialize with the I2C addr 0x3C (128x64)

the address, which is the 0x3C might be different. I searched for the most obvious and tried a few before getting it to work.

Working Product

The visible horizontal lines are the result of refresh rates of the OLED and the camera.

If you require some help with the code or anything, please leave your comments in the comments section below.

Thanks

Tags: Arduino Arduino Nano Cellular Automata I2C OLED Display Tutorial

Code

Github
https://github.com/adafruit/Adafruit-GFX-Library
Github
https://github.com/adafruit/Adafruit_SSD1306
Github
https://github.com/klauscam/Arduino-Cellular-Automata/

Comments

Similar projects you might like

Programmable Pocket Power Supply with OLED Display

Project tutorial by Shahariar

  • 6,324 views
  • 6 comments
  • 28 respects

Smart Personal Money Vault Monitoring System Based on IoT

Project tutorial by Salah Uddin

  • 847 views
  • 0 comments
  • 6 respects

RFID Based Automatic Door System

Project showcase by Robodia Technology

  • 35,762 views
  • 20 comments
  • 97 respects

Alexa Based Smart Home Monitoring

Project tutorial by Adithya TG

  • 16,644 views
  • 19 comments
  • 47 respects

Home Automation System for a Camp with Cellular Internet

Project tutorial by Dana Mah

  • 11,899 views
  • 4 comments
  • 40 respects

RTC Based Clock

Project tutorial by shivakumarj1995

  • 9,524 views
  • 13 comments
  • 12 respects
Add projectSign up / Login