Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Клеточные автоматы на основе Arduino и OLED

Компоненты и расходные материалы

половинный размер макетной платы без пайки
× 1
OLED 128x64
× 1
Перемычки (общие)
× 1
Arduino Nano R3
× 1

Об этом проекте

Исходная страница

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

В этом проекте используется OLED-дисплей I2C 128 × 64 для отображения крошечных клеточных автоматов на базе Arduino Nano.

Предварительные требования

  • 2 небольших макета (или 1 стандартный)
  • 1x Arduino Nano (также может быть Uno)
  • 1x OLED I2C 128 × 64
  • 4 перемычки

Предположения

Во время этого урока я предполагаю, что вы знаете, что такое Arduino (o_O), и знаете, как использовать IDE и загружать простые скетчи. Я также предполагаю, что вы немного разбираетесь в программировании, предпочтительно программировании на C.

Итак, приступим !!

Фон

Что такое клеточные автоматы? Я объясню 1 тип клеточных автоматов - «Игру жизни» Джона Конвея. Это сетка или ячейки, каждая из которых имеет 2 состояния Истина или Ложь / включен или выключен / жив или мертв. Эти ячейки подчиняются 2 простым правилам:

Правило 1 :Мертвая клетка, окруженная ровно 3 живыми клетками, родится

Правило 2: Ячейка, которая жива и имеет 3 или 2 живые клетки, останется живой, иначе она умрет

Все просто, не правда ли? Если вам нужна дополнительная информация, посетите Game Of Life или Cellular Automata в Википедии.

Схема

Итак, подключите Arduino и OLED LCD к макетной плате и приступайте к подключению.

  • Arduino - OLED
  • 3,3 В ———— VCC (обратите внимание на требования к напряжению OLED).
  • GND ———– GND
  • A4 ————– ПДД
  • A5 ————– SCL

Затем я соединил обе макетные платы вплотную и создал небольшой телевизор

Программирование скетча

Чтобы облегчить (и сделать это возможным) работу с OLED-дисплеем, мы будем использовать 2 библиотеки от Adafruit. Если вы не знаете, как добавлять библиотеки, посетите страницу https://www.arduino.cc/en/Guide/Libraries

.
  • Библиотека Adafruit GFX, которая будет использоваться для обработки всей графики и текста, отображаемых на OLED https://github.com/adafruit/Adafruit-GFX-Library
  • Библиотека Adafruit SSD1306, которая в основном является драйвером для нашего OLED. Эта библиотека работает только с OLED SSD1306 128 × 32 и 128 × 64 https://github.com/adafruit/Adafruit_SSD1306

Эскиз можно скачать с нашего github:https://github.com/klauscam/Arduino-Cellular-Automata/

Некоторое объяснение

В строке 51 с кодом

<код> display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // инициализируем с адресом I2C 0x3C (128x64)

адрес 0x3C может быть другим. Я искал наиболее очевидные и пробовал несколько, прежде чем заставить их работать.

Рабочий продукт

Видимые горизонтальные линии являются результатом частоты обновления OLED-дисплея и камеры.

Если вам нужна помощь с кодом или что-то еще, оставьте свои комментарии в разделе комментариев ниже.

Спасибо

Теги:Arduino Arduino Nano Cellular Automata I2C OLED-дисплей Учебное пособие

Код

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

Производственный процесс

  1. Игра Arduino Pong - OLED-дисплей
  2. ЖК-анимация и игры
  3. Вольтметр своими руками с использованием Arduino и смартфона
  4. Pixie:наручные часы NeoPixel на базе Arduino
  5. Связь Python3 и Arduino
  6. Счетчик RPM на основе Arduino с новым и более быстрым алгоритмом
  7. eDOT - точные часы и метеостанция на базе Arduino
  8. FM-радио с использованием Arduino и RDA8057M
  9. Система посещаемости на основе Arduino и Google Spreadsheet
  10. Система обнаружения падений на базе Arduino, Windows и Azure