1.1. Описание платформы Arduino

Содержание

Введение

1. Описательная часть

1.1. Описание платформы Arduino

1.2. Назначение, основные параметры и характеристики светодиодного куба

1.3. Схемы и принцип работы светодиодного куба

2. Практическая часть

2.1. Постановка задачи

2.2. Разработка и описание принципиальной схемы светодиодного куба

2.3. Написание и отладка программы

Заключение

Список используемой литературы

 

Введение

 

Цель КП: разработка проекта светодиодного куба 8х8х8, для световых эффектов, который будет управляться микроконтроллером.

Описание: светодиодный куб будет состоять из 512 светодиодов, микроконтроллера ATmega328 на основе Arduino Duemilanove и схемы управления.

Применение: в промышленности светодиодный куб предназначен для вывода объемного изображения в пяти плоскостях. Яркие, цветные светодиоды в 3D кубе обеспечивают красивое изображение и привлекают внимание. Сложные схемы светодиодных кубов могут отображать различные объемные слова и надписи. Светодиодный куб по своей сути является объёмным монитором, только с низким разрешением, который позволяет отображать пространственные структуры и графику. Это решение не подходит для просмотра видео, но может быть хорошо использовано для оформления шоу и презентаций, для развлечений и выставок, рекламы и дизайна.

В нашем случае светодиодный 3D куб будет оснащён стандартным набором эффектов, в часть которых мы внесем свои изменения путем исправления кода программы.

ATmega328 это 8-битный микроконтроллер с 32 КБ памяти программ и 2 Кб ОЗУ. ATmega32 имеет 32 GPIO (General Purpose IO) контактов.

Платформа Arduino Duemilanove («2009») построена на микроконтроллере ATmega328. Она содержит 14 цифровых вход/выходов, 6 аналоговых входов, кварцевый генератор на 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы куба необходимо подключить платформу к 64+8 линиям управления используя 20 линий Arduino. Данное подключение будет реализовано схемой управления представляющей собой демультиплексор.

1. Описательная часть

1.1. Описание платформы

Arduino— это электронный конструктор и удобная платформа быстрой разработки электронных устройств. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Устройство программируется через USB без использования программаторов.

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

Рис 1. Платформа Arduino

Микроконтроллер на плате программируется при помощи языка Arduino (основан на языке Wiring) и среды разработки Arduino (основана на среде Processing). Проекты устройств, основанные на Arduino, могут работать самостоятельно, либо же взаимодействовать с программным обеспечением на компьютере (напр.: Flash, Processing, MaxMSP). Платы могут быть собраны пользователем самостоятельно или куплены в сборе. Программное обеспечение доступно для бесплатного скачивания. Исходные чертежи схем (файлы CAD) являются общедоступными, пользователи могут применять их по своему усмотрению.


Опишем аппаратную часть платформы Arduino. Существует несколько версий платформ Arduino. Последняя версия Leonardo базируется на микроконтроллере ATmega32u4.Uno, как и предыдущая версия Duemilanove построены на микроконтроллере Atmel ATmega328. Старые версии платформы Diecimila и первая рабочая Duemilanoves были разработаны на основе Atmel ATmega168, более ранние версии использовали ATmega8. Arduino Mega2560, в свою очередь, построена на микроконтроллере ATmega2560.

Язык программирования устройств Arduino основан на C/C++. Он прост в освоении, и на данный момент Arduino — это, пожалуй, самый удобный способ программирования устройств на микроконтроллерах.

Си (англ.C)– стандартизированный процедурный язык программирования, разработанный в 1969–1973 годах сотрудниками Bell Labs Кеном Томпсоном и Деннисом Ритчи как развитие языка Би. Си был создан для использования в операционной системе UNIX. С тех пор он был перенесён на многие другие операционные системы и стал одним из самых используемых языков программирования. Си ценят за его эффективность. Он является самым популярным языком для создания системного программного обеспечения. Его также часто используют для создания прикладных программ. Несмотря на то, что Си не разрабатывался для новичков, он активно используется для обучения программированию. В дальнейшем синтаксис языка Си стал основой для многих других языков.

 

1.2. Назначение, основные параметры и характеристики светодиодного куба

Основным назначением светодиодного куба является создание световых 3D эффектов.

Светодиодный куб предназначен для вывода объемного изображения в пяти плоскостях. Светодиодный куб по своей сути является объёмным монитором, только с низким разрешением, который позволяет отображать пространственные структуры и графику. Это решение не подходит для просмотра видео, но может быть хорошо использовано для оформления шоу и презентаций, для развлечений и выставок, рекламы и дизайна. Светодиодный куб полагается на оптическое явление, названное инерция зрительного восприятия. Мерцание каждого слоя куба одного за другим сменяется очень быстро, это дает иллюзию графического 3D-изображения.

Наш куб будет состоять из 512 светодиодов, по восемь светодиодов на каждую грань. Управляться светодиоды будут 64 (для анодов) + 8 (для каждого слоя) портами ввода-вывода

При создании светодиодного куба нам пришлось использовать инерционность зрительного восприятия, поскольку одновременное включение всех светодиодов потребовало бы достаточно большого тока. К примеру, потребляемый ток для ярких светодиодов составляет порядка 20 миллиампер, таким образом, на одновременное включение 512 штук нужно 10,24 А. Довольно сложно обеспечить такой ток, и тогда мы принили решение включать по одному слою в каждый отдельно взятый момент времени. Таким образом, потребление тока составит 1.28 A (по 20 мA на 64 светодиода). Такие характеристики обеспечить намного легче, и хорошего трансформатора здесь будет вполне достаточно. Представим, что нам необходимо осветить куб целиком. Для этого, мы будем включать различные слои один за другим со скоростью большей, чем скорость реакции человеческого глаза. Мерцание каждого слоя куба одного за другим сменяется очень быстро, это дает иллюзию графического 3D-изображения.

Основным компонентом куба является Atmel AVR ATmega32. Это 8-битный микроконтроллер с 32 КБ памяти программ и 2 Кб ОЗУ. ATmega32 имеет 32 GPIO (General Purpose IO) контактов. Два из них будут использоваться для последовательной связи(TX+RX). Три контакта IO- для ISP(In-цепи последовательного программирования). 27 GPIO- для управления светодиодным кубом 8x8x8.

Группу из 8 GPIO (8 битов, один байт) называют портом. У ATmega32 есть 4 порта: PORT_A, PORT_B, PORT_C и PORT_D. На PORT_C и PORT_D используются некоторые контакты для TX/RX и ISP. На PORT_A и PORT_B имеются все контакты. Эти порты используются для управления шиной данных и выбора слоя массива резисторов. PORT_A связан с шиной данных.Каждый контакт на PORT_C связан с парой транзисторов, которые управляют площадкой.

 

Основные характеристики Куба:

Размер 25 * 25 * 31см (Д-Ш-В)
Видимая сторона 5 сторон (сверху, слева направо, спереди назад)
Составляющих пиксель 1 светодиод на пиксель
Пиксели Шаг 3 см
Пиксели Количество 8 * 8 * 8 = 512
Рабочая температура 0-40 С
Рабочая влажность 10-80%
Рабочее напряжение 110-230V
Средний 10W потребление
Максимальная потребляемая 50W

 

 

Рис 2. Схема ATmega328

1.3. Схемы и принцип работы светодиодного куба

У ATmega32 есть два байта плавкого предохранителя. Они содержат параметры настройки, которые должны быть загружены прежде, чем центральный процессор может запустить, как источник часов, так и другой материал. Необходимо программировать ATmega, чтобы использовать внешний кварцевый высокоскоростной генератор и отключить JTAG.

Требования к количеству портов для светодиодного куба 8x8x8:

Выбранный слой: 8 (дешифратор 3х8)

Шина данных для триггеров: 8

Адресная шина для триггеров: 3

Разрешающий работу выход для триггеров: 1

Общее количество: 20

У Arduino есть 13 контактов GPIO и 8 аналоговых выходов, которые могут также использоваться в качестве GPIO. В общей сложности это даёт 21 порт IO, для управления светодиодным кубом.

Подключение куба к Arduino переносит часть программного обеспечения.

Благодаря тому, что массив мультиплексора и плата AVR разделены ленточным кабелем, то подключить линии IO к Arduino очень просто.

Соединение куба:

Шина данных:

Цифровые контакты 0-7. Что соответствует PORT_D ATmega328 на Arduino.

Адресная шина: цифровые контакты 8-10, соответствуют PORT_B бит 0-2. При этом необходимо использовать прямой доступ к портам. Arduinos digitalWrite не будет работать, потому что Вы не можете подключить несколько контактов одновременно.

Подключение выхода: Цифровой контакт 11.

Массив транзисторов: аналоговые контакты 0-5 и цифровые контакты 12 и 13.

Цель Arduino состоит в том, чтобы использовать digitalWrite () для доступа к портам IO, чтобы сделать код более компактным.

Регистры прерываний и таймеры отличаются на различных моделях AVR, таким образом, между различными версиями Arduino код может быть не компактным..

 

2. Практическая часть

2.1. Постановка задачи

Необходимо разработать светодиодный куб 8х8х8, для воспроизведения световых эффектов. Управлять которым будет микроконтроллер ATmega328 на платформе Arduino.

Arduino будет запрограммирован на языке С, данный язык прост в освоении, и Arduino предоставляет самый удобный способ программирования устройств на микроконтроллерах.

Алгоритм разработки светодиодного куба:

1. Выбрать размера куба

2. Разработать схему мультиплексирования

3. Выбрать платформу и элементы схемы мультиплексирования

4. Написать и отладить программы эффектов

5. Запрограммировать Arduino

6. Собрать куб

7. Подключить платы

8. Подключить куб

2.2. Разработка и описание принципиальной схемы куба

Разработаем структурную схему светодиодного куба для создания световых эффектов.

Для переключения слоев куба необходимо подключить:

Шину данных: цифровые контакты 0-7. Что соответствует PORT_D ATmega328 на Arduino.

Адресную шину: цифровые контакты 8-10, соответствуют PORT_B бит 0-2.