Клеточные автоматы на основе Arduino и OLED
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 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-LibraryGithub
https://github.com/adafruit/Adafruit_SSD1306https://github.com/adafruit/Adafruit_SSD1306Github
https://github.com/klauscam/Arduino-Cellular-Automata/https://github.com/klauscam/Arduino-Cellular-Automata/Производственный процесс
- Игра Arduino Pong - OLED-дисплей
- ЖК-анимация и игры
- Вольтметр своими руками с использованием Arduino и смартфона
- Pixie:наручные часы NeoPixel на базе Arduino
- Связь Python3 и Arduino
- Счетчик RPM на основе Arduino с новым и более быстрым алгоритмом
- eDOT - точные часы и метеостанция на базе Arduino
- FM-радио с использованием Arduino и RDA8057M
- Система посещаемости на основе Arduino и Google Spreadsheet
- Система обнаружения падений на базе Arduino, Windows и Azure