Как стать автором
Обновить

Интерпретатор Brainfuck на Arduino

Время на прочтение 1 мин
Количество просмотров 11K
Скорее всего, о языке Brainfuck слышали многие, кто изучал программирование. Из этих многих, некоторые реализовывали интерпретатор этого языка. Я решил собрать интерпретатор на базе Arduino, чтобы можно было таскать его с собой и набивать в дороге простейшие программки. Постой, скажете вы, но на смартфонах давно есть интерпретаторы на любой вкус, на кой нужно таскать с собой такую коробку? Because it's fucking awesome!

image

Что мне понадобилось:

1. Arduino Pro mini;
2. LCD 16x2 i2c;
3. Четыре кнопки;
4. Аккумулятор 18650;
5. Выключатель;
6. Провода;
7. Макетная плата, на чём всё собрать;
8. Коробка для корпуса.

Собираем всё вместе. Кнопки вешаем на пины 2, 3, 4, 5. Экран подключаем к A4 (SDA), A5 (SCL). Для кнопок я не использую подтягивающие резисторы (использую внутренние), может это нехорошо, но деталек меньше, а для меня это важнее. Как программировать pro mini читайте в интернете. Ничего сложного. Весь код скетча лежит на гитхабе.

Несколько моментов. Да, обработка нажатия кнопок с учётом дребезга контактов, возможно, не самая удачная, тем более, что используются «магические числа» — короче мрак. В программе есть пять режимов:

0 — меню (по-умолчанию), для отображения информации о других режимах и перехода в них;
1 — редактирование;
2 — исполнение;
3 — сохранение в EEPROM;
4 — загрузка из EEPROM.

При загрузке программы из EEPROM, её можно будет редактировать (набранная программа заменится на загруженную) и пересохранить или выполнить.

image

У меня всё работает от аккумулятора 18650, хотя ардуина пятивольтовая. Удачи!

image
Теги:
Хабы:
+10
Комментарии 10
Комментарии Комментарии 10

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн