игральный кубик arduino mega328 своими руками

Переход от прототипа Arduino к устройству на примере игрального кубика

В прошлой статье мы разобрали, что нужно для голого микроконтроллера, для его работы и как его прошить прошивкой от Arduino. Попробуем проделать это на практике. Чтобы завершить проект игрального кубика, мне нужно было уместить всю электронику в размер куба 4х4 см, т.е. плата должна была быть и того меньше. Вспомним, как у нас это выглядело на примере Arduino

Игральный кубик на ардуино

Да.. Такое в маленький корпус спрятать не получится. Для проектирования я обычно использую среду DipTrace – она условно бесплатна (легко найти ключ на 1000 выводов для некоммерческого использования), понятна, и содержит большую базу компонентов. Конечно, правильно было бы начинать с принципиальной схемы, а потом переходить к печатной плате, используя связи между компонентами, но в кубике всё запредельно просто, поэтому я сразу начну рисовать плату в заданном размере. Уроков по DipTrace очень много, я буду опираться на другие моменты, на сам принцип проектирования. Для начала я задам рабочие размеры поля (outline), нарисую отверстия и помещу основные компоненты – МК, транзисторную сборку ULN2803 и 8 резисторов.

Смотрите также:  Рамка монитора робота

Как видите, если я навожу курсор на вывод компонента – вижу его номер и описание. В данном случае AVCC. Это очень удобно, можно даже не обращаться к даташиту. Теперь вспоминаем предыдущую статью, и пытаемся помимо нашей схемы подключения индикатора, снабдить контроллер всем необходимым. Так как место на плате у нас немного, то я не стал ставить электролит по питанию (батарейка даёт достаточно стабильное напряжение). Сначала разберёмся с питанием. Внимательно смотрим все выводы VCC, GND, и объединяем их. Снизу обычный пин i/o PD5, но я провёл через него 5В для удобства, чтобы не делать перемычку, ведь он толерантен к 5В. Но вообще его подключать конечно не нужно.

Затем выводим выходы колонок, просто берём рядом стоящие пины I/O, затем в программе можно просто переназначить их как будет удобно.

Тоже самое сделаем с выводами колонок, не забыв в разрыв поставить ULN2803. Также мы пропускаем вывод reset, его использовать в стандартном исполнении нельзя. Можно конечно, использовать его на выход, если отключить соответствующий фьюз-бит, но тогда вам придётся использовать высоковольтный программатор, и usbasp уже не поможет.

Смотрите также:  ПП

Так как места на плате нет, чтобы сделать полноценный разъём SPI под USBASP, то будем использовать пятачки для программирования, куда припаяем обычные провода.

Также нам нужно впаять модуль датчика ky-020. Возможно можно найти сам сенсор отдельно, но у меня его не было. Для этого сделаны три отверстия снизу, согласно распиновке датчика

Осталось дело за малым – сделать плату и запаять компоненты

Корпус нарисовали в solid works 3d. Подогнали под размер индикатора, размер платы, высоту датчика Ky-020 и чтобы батарейка формата AA/2 влезла. Получилось 4х4х4см

Распечатан на 3д принтере

Потом пришлось немного поработать напильником, потому-что шаг 3д принтера не позволяет получить идеальное окно для индикатора

Не оказалось белой краски, но попалась золотая, которую не под что не использовал – подумал, почему нет.

Теперь нужно не забыть, что по сравнению с прототипом, у нас поменялись выводы микроконтроллера. Для этого мы ещё раз обращаемся к распиновке Arduino Uno/Nano, смотря на чём мы делали прототип

Смотрите также:  Датчик температуры DS18B20 к ESP8266 и отправляем данные на БД MySql

Например реальный пин PB5, в DipTrace, который мы использовали под первую колонку светодиодной матрице – будет соответствовать 13 пину ардуино, на языке wiring. Тоже самое проделываем с остальными выводами.

#define col1 13       // Колонки
#define col2 12
#define col3 11
#define col4 10
#define col5 9
#define col6 8
#define col7 7
#define col8 6

#define row1 3        // Ряды
#define row2 2
#define row3 1
#define row4 0
#define row5 A5
#define row6 A4
#define row7 A3
#define row8 A2

Ну что, осталось подключить плату к программатору и проверить уже, правильно ли мы всё сделали – прошиваем fuse на внутреннюю RC цепочку на 8 МГЦ, компилируем прошивку под эту же частоту, и программируем нашу плату. Индикатор загорелся – значит всё сделали правильно!

Для питания устройства я выбрал батарейку 1/2AA, это порезанная на пополам AA пальчиковая батарейка, её размеры позволяли вместить в этот небольшой корпус. Единственное, пока я не нашёл держатель для такой батарейки, и провода временно смотал изолентой. Устройство работает стабильно

Кому интересно повторить – принципиальная схема, 3д файл корпуса, печатная плата и код, лежит в папке на гитхаб.

схема кубика игрального на ардуино

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *