
В прошлом году моему сыну пришлось сделать настольную игру для научной ярмарки в средней школе, темой которой был Древний Египет. Я просто подумал, что это возможность познакомить его с электроникой. Моим первоначальным предложением было заменить обычные игральные кости электронными, но мой ребенок и его одноклассники очень изобретательны, поэтому, когда у них начала зарождаться идея, я не хотел сокращать их идеи. Поэтому все стало немного сложнее.
Дети разработали концепцию проекта, дизайн игры и корпуса, а я помог им своим опытом в области электроники.
Мозгом этого проекта является Arduino Nano, который координирует некоторые другие модули и схемы (дисплей, MP3-плеер, кнопки и светодиоды).

Как и в случае любого школьного задания, детям пришлось провести много исследований по истории Древнего Египта, поскольку им нужно было сформулировать множество вопросов для викторины, которая была частью игры. Им также пришлось проделать большую работу по рисованию карты доски, особенно если учесть, что для этого они использовали MS-Word. Оно было напечатано на виниловом клее.


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


Корпус изготовлен из пластика (полиэтилена) и акриловых листов из-за простоты резки и складывания.


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


В этом проекте 24 светодиода, поэтому мне пришлось использовать микросхему мультиплексора. MAX7219 решил проблему со светодиодами, но вызвал громкий шум из динамиков. Чтобы решить эту проблему, MAX7219 был заменен на его «брата» MAX7221, имеющего защиту от электромагнитных помех (EMI).

Вопросы викторины отображаются на ЖК-дисплее 20×4, а также воспроизводятся через динамики с голосами детей, которые мы записали и исказили, чтобы они звучали устрашающе, как мумия.

Первой задачей программирования было отображение акцентов португальского языка, поскольку ЖК-дисплеи не имеют встроенной поддержки акцентов. Несмотря на то, что на ЖК-дисплее можно было разместить 8 настраиваемых символов, этого было недостаточно. Поэтому, чтобы обойти эту проблему, мне пришлось динамически загружать пользовательские символы по мере необходимости.
Другая проблема программирования, которую мне пришлось преодолеть, заключалась в ограничении ОЗУ Arduino в 2 КБ, поскольку мне нужно было много памяти для хранения строк теста, которые невозможно решить с помощью сложных программ. Мне пришлось хранить эти строки во внешней EEPROM емкостью 32 КБ (микрочип 24LC256). Я написал несколько скетчей Arduino, которые выполнялись один раз, чтобы сохранить эти строки в EEPROM, и после этого они были извлечены основной программой, используя их адреса в памяти.
В конце концов, я думаю, что Arduino Nano была доведена до предела. Более того, только с помощью Arduino Mega.
От замысла до завершения проект занял 30 дней.