Оглавление:

Базовый ПК ESP32 с выходом VGA: 7 шагов
Базовый ПК ESP32 с выходом VGA: 7 шагов

Видео: Базовый ПК ESP32 с выходом VGA: 7 шагов

Видео: Базовый ПК ESP32 с выходом VGA: 7 шагов
Видео: VGA HDMI для ZX Spectrum с контроллером клавиатуры на RPPico.#0 2024, Ноябрь
Anonim
Image
Image
Платы ESP32, установка Arduino IDE и конфигурация библиотеки VGA
Платы ESP32, установка Arduino IDE и конфигурация библиотеки VGA

В этом руководстве я собираюсь показать, как собрать простой ПК в ретро-стиле, используя один ESP32 и несколько других компонентов.

Этот компьютер работает под управлением Tiny Basic, упрощенного диалекта BASIC, и генерирует выходные данные для монитора VGA.

Разрешение составляет 640x350 пикселей, что позволяет отображать 80x25 символов asci в 8 цветах. Клавиатуры PS2 можно подключить и использовать для записи кода, что позволяет использовать до 14059 байт памяти.

Контакты ввода-вывода ESP32 могут напрямую управляться специальными командами BASIC.

Этот проект стал возможным благодаря великолепной библиотеке ESP32 VGA, написанной Фабрицио Ди Витторио. Подробнее см. Здесь.

Шаг 1. Платы ESP32, установка Arduino IDE и настройка библиотеки VGA

Платы ESP32, установка Arduino IDE и конфигурация библиотеки VGA
Платы ESP32, установка Arduino IDE и конфигурация библиотеки VGA
Платы ESP32, установка Arduino IDE и конфигурация библиотеки VGA
Платы ESP32, установка Arduino IDE и конфигурация библиотеки VGA

Прежде всего вам необходимо приобрести ESP32 ревизии 1 или выше. Доступно много версий, но я рекомендую выбирать с большим количеством контактов. Я использую эту версию, но думаю, что многие другие тоже подходят. Например, в описании этого видео вы можете найти еще три модели, которые стоят меньше 5 баксов.

Как только вы получите доску, вам нужно выполнить следующие три дополнительных шага:

  1. Установите последнюю IDE Arduino
  2. Настройте ESP32 в IDE и
  3. Установите библиотеку VGA

Подэтап 1.

Существуют разные методы программирования ESP32, но здесь вам нужно использовать последнюю версию Arduino IDE (я использую версию 1.8.9). Чтобы установить его, вы можете перейти на страницу Arduino IDE и следовать инструкциям.

Подэтап 2

После выполнения предыдущей операции вам необходимо настроить ESP32 в среде Arduino IDE. Это нетривиально, поскольку ESP32 не является (пока?) Родным для него. Вы можете следовать этому руководству или следующим шагам.

1) откройте IDE Arduino

2) откройте окно настроек, Файл / Предпочтения, или нажмите «Ctrl + запятая».

3) перейдите в «Дополнительные URL-адреса Board Manager», скопируйте и вставьте следующий текст:

https://dl.espressif.com/dl/package_esp32_index.json

и нажмите кнопку ОК.

4) Менеджер открытых досок. Перейдите в Инструменты / Доска / Менеджер плат…

5) Найдите ESP32 и нажмите кнопку установки для «ESP32 от Espressif Systems»:

6) На этом этапе, когда вы впервые подключаете ESP32, вы должны выбрать правильную модель из длинного списка доступных плат ESP32 (см. Рисунок в этом шаге). В случае сомнений по поводу модели, просто выберите общую, то есть первую. Меня устраивает.

7) система также должна выбрать правильный порт USB и скорость загрузки (обычно 921600). На этом этапе должно быть установлено соединение между вашим ПК и платой ESP32.

Подэтап 3

Наконец, вам нужно установить библиотеку FabGL VGA. [обновление, июль 2019 г.] Вам нужна старая версия этой библиотеки: вы можете загрузить zip-файл src.old.zip внизу этого шага, распаковать и переименовать папку как «src» в вашем

Папка «… / arduino-1.8.9 / libraries».

После того, как вы выполнили эти операции, вы можете перейти к следующему шагу и загрузить измененный TinyBasic, следуя следующему шагу.

Шаг 2. Загрузка крошечного базового кода в ESP32

Загрузка крошечного базового кода в ESP32
Загрузка крошечного базового кода в ESP32
Загрузка крошечного базового кода в ESP32
Загрузка крошечного базового кода в ESP32

Загрузите ESP32_TinyBasicPlus_PS2_FabLab_beta.ino внизу этого шага.

Откройте его с помощью Arduino IDE и загрузите в свой необработанный ESP32.

Если у вас нет сообщений об ошибках, код уже должен быть запущен.

Факультативный шаг: если вы хотите протестировать TinyBasic перед подключением клавиатуры VGA и PS2, вы уже можете сделать это с помощью клиента SSH и telnet. Я использую PuTTY.

Вы можете увидеть, как это выглядит на картинках на этом шаге.

Шаг 3: Подключение порта VGA

Подключение порта VGA
Подключение порта VGA

Вам потребуются следующие детали:

  • разъем DSUB15, т. е. гнездовой разъем VGA или кабель VGA, который необходимо обрезать.
  • три резистора на 270 Ом.

Подключите контакты 2, 15 и 21 GPIO ESP32 к VGA Red, Green и Blue соответственно через резисторы 270 Ом.

Подключите VGA Hsync и Vsync к контактам 17 и 4 GPIO ESP32 соответственно.

Подключите контакты 5, 6, 7, 8 и 10 разъемов DSUB15 к ESP32 GND.

Определение контактов разъема VGA DSUB15 см. На рисунке в этом шаге. NB, это сторона пайки гнездового разъема.

Шаг 4: Подключение порта PS2

Подключение порта PS2
Подключение порта PS2

Вам понадобится гнездовой разъем клавиатуры PS2.

Вы можете получить его от старой материнской платы ПК, просто распродав его с помощью теплового пистолета. На картинке, показанной в этом шаге, вы можете найти функцию необходимых контактов разъема PS2.

Связь бывают:

  • Данные с клавиатуры на вывод 32 GPIO ESP32
  • IRQ клавиатуры (часы) к контакту 33 GPIO ESP32
  • Вам также необходимо подключить контакт 5V и GND.

Шаг 5: Программирование с помощью Tiny Basic

Программирование с помощью Tiny Basic
Программирование с помощью Tiny Basic
Программирование с помощью Tiny Basic
Программирование с помощью Tiny Basic

На этом этапе, если вы можете подключить монитор VGA, клавиатуру PS2 и ESP32 к источнику питания.

Показанное здесь изображение должно появиться на мониторе. Теперь вы можете немного поиграть с командами Tiny Basic.

Попробуйте, например, обязательный Hello, Word! бесконечная петля:

10 отпечатков "Hello, World!"

20 перейти 10

запустить

Вы можете изменить четыре разных цвета, нажав кнопку esc, и остановить цикл с помощью ctrl + c

Учтите, что если вы сделаете опечатку, вы не сможете ее отменить! Или лучше, вы можете отменить, но тогда исправление опечатки не распознается. Вам нужно переписать всю командную строку.

Теперь вы можете попробовать что-то более сложное, например, управлять миганием светодиода с помощью базовой программы. Подключите, например, анод светодиода (длинная ножка) к контакту 13 GPIO ESP32, а катод - к GND.

Затем написать:

новый

10 я = 1000

20 печать я

30 задержка я

40 dwrite 13, высокий

50 задержка я

60 dwrite 13, низкий

70 я = я * 9/10

80, если i> 0, перейти к 20

90 конец

запустить

Вы можете увидеть результат в видео, встроенном в эту инструкцию.

Шаг 6: Подключение карты памяти SD

Подключение карты памяти SD
Подключение карты памяти SD
Подключение карты памяти SD
Подключение карты памяти SD

Винтажный компьютер, каким бы маленьким и слабым он ни был, не может быть полноценным, если вы не можете хранить свои программы постоянно.

На этом шаге я покажу, как подключить карту памяти SD, но, к сожалению, на данный момент (надеюсь, только на данный момент) сохранение программ не работает!

Кстати, я использовал адаптер microSD для SD-карты и припаял 8 L-образных контактов, как показано на рисунке в этом шаге.

Затем я подключил контакты адаптера SD к ESP32 в соответствии со вторым рисунком, то есть я подключил контакты 5, 18, 19, 23 ESP32 GPIO к SC, clock, MISO, MOSO соответственно, плюс 3,3 В и два GND.

Я также следовал инструкциям и примерам, найденным здесь, и с примером кода SD_test.ino я могу писать на моей 2-гигабайтной карте microSD.

Таким образом, если кто-нибудь найдет решение, пожалуйста, сообщите мне как можно скорее на мою электронную почту [email protected], и я заполню эту инструкцию.

Шаг 7: Благодарности

Благодарности
Благодарности

Я хочу поблагодарить Фабрицио Ди Витторио за его потрясающую библиотеку ESP32 VGA. Для получения более подробной информации, примеров и… Space Invaders посетите его сайт здесь.

Большое спасибо также авторам Tiny Basic:

  • Майк Филд
  • Скотт Лоуренс
  • Брайан О'Делл

Наконец, если вам нравится этот проект, напишите комментарий или поделитесь изображением устройства, которое вы создаете … и, в конце концов, проголосуйте за него в конкурсе Arduino!

Рекомендуемые: