В прошлой статье мы разобрали, что нужно для голого микроконтроллера, для его работы и как его прошить прошивкой от Arduino. Попробуем проделать это на практике. Чтобы завершить проект игрального кубика, мне нужно было уместить всю электронику в размер куба 4х4 см, т.е. плата должна была быть и того меньше. Вспомним, как у нас это выглядело на примере Arduino
![Игральный кубик на ардуино](http://wreckage.ru/wp-content/uploads/2019/05/8OyUJI75iho.jpg)
Да.. Такое в маленький корпус спрятать не получится. Для проектирования я обычно использую среду DipTrace – она условно бесплатна (легко найти ключ на 1000 выводов для некоммерческого использования), понятна, и содержит большую базу компонентов. Конечно, правильно было бы начинать с принципиальной схемы, а потом переходить к печатной плате, используя связи между компонентами, но в кубике всё запредельно просто, поэтому я сразу начну рисовать плату в заданном размере. Уроков по DipTrace очень много, я буду опираться на другие моменты, на сам принцип проектирования. Для начала я задам рабочие размеры поля (outline), нарисую отверстия и помещу основные компоненты – МК, транзисторную сборку ULN2803 и 8 резисторов.
![](http://wreckage.ru/wp-content/uploads/2019/05/outline-и-chip-1024x733.png)
Как видите, если я навожу курсор на вывод компонента – вижу его номер и описание. В данном случае AVCC. Это очень удобно, можно даже не обращаться к даташиту. Теперь вспоминаем предыдущую статью, и пытаемся помимо нашей схемы подключения индикатора, снабдить контроллер всем необходимым. Так как место на плате у нас немного, то я не стал ставить электролит по питанию (батарейка даёт достаточно стабильное напряжение). Сначала разберёмся с питанием. Внимательно смотрим все выводы VCC, GND, и объединяем их. Снизу обычный пин i/o PD5, но я провёл через него 5В для удобства, чтобы не делать перемычку, ведь он толерантен к 5В. Но вообще его подключать конечно не нужно.
![](http://wreckage.ru/wp-content/uploads/2019/05/elements-питание.png)
Затем выводим выходы колонок, просто берём рядом стоящие пины I/O, затем в программе можно просто переназначить их как будет удобно.
![](http://wreckage.ru/wp-content/uploads/2019/05/cols.png)
Тоже самое сделаем с выводами колонок, не забыв в разрыв поставить ULN2803. Также мы пропускаем вывод reset, его использовать в стандартном исполнении нельзя. Можно конечно, использовать его на выход, если отключить соответствующий фьюз-бит, но тогда вам придётся использовать высоковольтный программатор, и usbasp уже не поможет.
![](http://wreckage.ru/wp-content/uploads/2019/05/rows-1.png)
Так как места на плате нет, чтобы сделать полноценный разъём SPI под USBASP, то будем использовать пятачки для программирования, куда припаяем обычные провода.
![](http://wreckage.ru/wp-content/uploads/2019/05/SPI.png)
Также нам нужно впаять модуль датчика ky-020. Возможно можно найти сам сенсор отдельно, но у меня его не было. Для этого сделаны три отверстия снизу, согласно распиновке датчика
![](http://wreckage.ru/wp-content/uploads/2019/05/ky-020.png)
Осталось дело за малым – сделать плату и запаять компоненты
![](http://wreckage.ru/wp-content/uploads/2019/05/IMG_2017-1024x756.jpg)
Корпус нарисовали в solid works 3d. Подогнали под размер индикатора, размер платы, высоту датчика Ky-020 и чтобы батарейка формата AA/2 влезла. Получилось 4х4х4см
![](http://wreckage.ru/wp-content/uploads/2019/05/Снимок-экрана-322-1024x682.png)
Распечатан на 3д принтере
![](http://wreckage.ru/wp-content/uploads/2019/05/IMG_1928-1024x768.jpg)
Потом пришлось немного поработать напильником, потому-что шаг 3д принтера не позволяет получить идеальное окно для индикатора
![](http://wreckage.ru/wp-content/uploads/2019/05/IMG_1947-1024x908.jpg)
Не оказалось белой краски, но попалась золотая, которую не под что не использовал – подумал, почему нет.
![](http://wreckage.ru/wp-content/uploads/2019/05/IMG_2045-1024x728.jpg)
Теперь нужно не забыть, что по сравнению с прототипом, у нас поменялись выводы микроконтроллера. Для этого мы ещё раз обращаемся к распиновке Arduino Uno/Nano, смотря на чём мы делали прототип
![](http://wreckage.ru/wp-content/uploads/2019/05/arduino_uno_pinout-1024x727.png)
Например реальный пин 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 МГЦ, компилируем прошивку под эту же частоту, и программируем нашу плату. Индикатор загорелся – значит всё сделали правильно!
![](http://wreckage.ru/wp-content/uploads/2019/05/IMG_2052-1024x768.jpg)
Для питания устройства я выбрал батарейку 1/2AA, это порезанная на пополам AA пальчиковая батарейка, её размеры позволяли вместить в этот небольшой корпус. Единственное, пока я не нашёл держатель для такой батарейки, и провода временно смотал изолентой. Устройство работает стабильно
![](http://wreckage.ru/wp-content/uploads/2019/05/IMG_2151-1024x768.jpg)
Кому интересно повторить – принципиальная схема, 3д файл корпуса, печатная плата и код, лежит в папке на гитхаб.
![схема кубика игрального на ардуино](https://wreckage.ru/wp-content/uploads/2019/05/Кубик-схема-на-ардуино-1-1024x507.png)
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.