Разработка программы для устройства «Лампа хорошего настроения» на базе микроконтроллера

Оглавление


Введение

Микроконтроллеры (старое название — однокристалльные микро-ЭВМ) в настоящее время имеют невероятно много областей применения. От промышленной автоматики до бытовых приборов, от управления ядерными станциями до детских игрушек, от секретных военных систем до переключения каналов в вашем радиоприемнике. Одним словом, проще перечислить, где они не применяются.

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

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

Целью дипломного проекта является разработка программы для устройства «Лампа хорошего настроения» на базе микроконтроллера.

Для достижения поставленной цели необходимо решить следующие задачи:

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

Лампа настроения - это светодиодный RGB светильник, плавно меняющий цвет свечения случайным образом. В Сети можно найти множество различных схем таких ламп, причем, как правило, на базе относительно мощных микроконтроллеров. В нашем дипломном проекте хотелось сделать лампу на основе самого примитивного AVR микроконтроллера ATTINY13.


  1. Основная часть

1.1 Описание области применения устройства релаксационного воздействия на человека «Лампа хорошего настроения»

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

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

Купить такие лампы возможно только по интернету. Минимальная цена лампы – 450 руб, максимальная – 2000 руб.

Рисунок 1 – RGB лампа

Технические характеристики LED лампы RGB с пультом:

  • тип цоколя: E27
  • напряжение питания: AC 85~265V
  • потребляемая мощность: 9Вт
  • световой поток: 320лм
  • материал корпуса: алюминий, пластик
  • время наработки на отказ: 50,000 часов
  • количество цветов: > 2 миллионов
  • питание пульта: 1 аккумулятор типа CR2025
  • размеры лампочки: 59мм(диаметр) x 114мм(высота)
  • размеры пульта: 84*51*5мм
  • вес лампы: 126г
  • вес пульта: 21г

Лампа настроения (mood lamp) является RGB лампой, которая меняет цвет в случайном порядке. Была зеленая, плавно стала голубой, потом фиолетовой… какого цвета она станет в следующий момент времени не знает никто. Если использовать 3 светодиода, то возможно реализовать RGB-систему формирования цвета. Таким образом, изменяя яркость свечения светодиодов возможно получить более 2 млн цветов.

Данная лампа проста по устройству и станет отличным сувениром.

В качестве источника света использован мощный RGB светодиод. Мощность каждой цветовой составляющей 1Вт.

Таким образом получается, что аналогов данного устройства нет.


1.2 Базовая функциональная схема микропроцессорной системы устройства релаксационного воздействия на человека «Лампа хорошего настроения»

В отличие от известных аналогов, схема реализована на самом маленьком и дешевом микроконтроллере из доступных - attiny13. В качестве ключевых транзисторов VT1...VT3  применяются IRLML2402, можно и другие аналогичные «логические». Резисторы R1...R3 ограничивают ток кристаллов мощного светодиода, их сопротивление зависит от напряжения питания и параметров самого светодиода. Надо подобрать их так, чтобы обеспечивался одинаковый ток через кристаллы (либо, если есть точные параметры светодиода, надо выбрать такие значения токов, чтобы обеспечивалась одинаковая яркость каждого кристалла). В данном случае для красного кристалла – 7.5 Ом, а для синего и зеленого по 5,6 Ом.

Питание на схему RGB-светильника подается на клеммы X5 (минус) и Х4(плюс). В схеме использовался китайский адаптер, который выдает как раз подходящее напряжение и имеет достаточную мощность. Однако, можно использовать отдельные источники для микроконтроллеров и светодиода, тогда следует обеспечить для микроконтроллера питание 5 вольт, а для светодиода - сколько требуется. Светодиод на схеме не указан, подключается он к катодами к клеммам Х1...Х3, а аноды к плюсу источника питания.

Конденсатор С1 может быть любым электролитическим, чем больше емкость, тем лучше, напряжение не менее 10 вольт. С2 - обязательно керамический, достаточно 0,1 мкФ. Оба конденсатора надо разместить как можно ближе к выводам питания микроконтроллера, и при разводке платы учесть пути протекания силовых токов, чтобы микроконтроллер не сбоил. Если что - соедините 1 вывод микроконтролллера с плюсом питания.

Особо следует отметить роль RC-фильтра R4-C3: если планируется использование дистанционного управления, эти элементы ставить обязательно. К сожалению, при разработке платы они не были учтены. Сопротивление R4 равно 100 Ом, а емкость C4 может быть от 47 до 220 мкФ.

В схеме лампы настроения имеется приемник ИК-излучения BQ1, однако в текущей версии программного обеспечения он не используется, заложен на перспективу, т.е. можно и не устанавливать его.

Рисунок 2 – Принципиальная схема устройства

При разработке электронной схемы возникла необходимость разработать плату к проектируемому устройству для размещения на ней деталей схемы. Для простых схем можно нарисовать от руки при помощи лака или другой нерастворимой в воде краски рисунок будущей платы на фольгированном стеклотекстолите и начать травление. Или же воспользоваться так называемым «сухим» способом изготовления плат – лишнюю фольгу с заготовки удалить резаком по линиям, разделяющим отдельные дорожки печатной платы. И тот, и другой способы полностью решают поставленную задачу, но при возрастании сложности схемы целесообразнее использовать персональный компьютер для трассировки платы по схеме. Для выполнения задач трассировки плат начинающему радиолюбителю в подавляющем большинстве случаев подойдет программа Sprint Layout 6, простая в освоении и использовании. При разработке печатной платы использовалась программа Sprint Layout 6.0.

Программное обеспечение Sprint Layout 6 - это простой, но в тоже время очень эффективный программный пакет для проектирования и ручной трассировки печатных плат малой и средней сложности. Разработан немецкой компанией ABACOM. Имеет простой интерфейс переведенный на русский язык. Сохранение документов происходит в файл с расширением *.lay6 (пятая версия программы сохраняла с расширением *.lay).

Форма и размеры печатной платы целиком определяются тем, какой именно светильник будет выбран за основу, как будет крепиться светодиод внутри него, какой будет радиатор и т.п. В приведенной схеме использовался светильник из магазина ИКЕА и подходящий радиатор, поэтому плата имеет форму тора.


1.3 Описание структуры системы управления устройства релаксационного воздействия на человека «Лампа хорошего настроения»

Алгоритм работы следующий. Генерируется случайным образом цвет (три char переменные). Если все три значения примерно одинаковы, то на выходе у нас будет белый цвет, что неинтересно, поэтому процесс случайного выбора цвета повторяется. Когда получен цвет с вероятностью 0,5 будет погашен один из каналов (что бы чаще появлялись чистые R, G или B цвета.) Затем вычисляется величина прибавки, что бы за 255 шагов прийти к заданному цвету. После этого случайным образом выясняется скорость ухода к новому цвету (от 5 до 10 сек). Ну а затем за счет приращения значения в регистрах ШИМ плавно приходим к сгенерированному цвету. Подержав цвет какое то время цикл повторяется. И так до бесконечности.

Рисунок 3 – Результат работы

Описание алгоритма следующее:

  • подключаем библиотеку ввода/вывода;
  • задержка - задаем скорость эффекта (зажигания/гашения)
  • повторять цикл, пока не вышло время задержки;
  • уменьшить время задержки;
  • плавно гасить один цвет светодиода;
  • плавно загарается другой(ие) цвета;
  • выбираем цвет случайным образом;
  • выбираем яркость случайным образом;
  • зажигаем цвета по цепочке: R->RG->G->GB->B->BR->R
  • зажигаем красный светодиод
  • плавное зажигание зеленого светодиода
  • зеленый светодиод остается гореть
  • плавное гашение красного светодиода
  • зеленый светодиод остается гореть
  • плавное зажигание синего светодиода
  • синий светодиод продолжает гореть
  • плавное гашение зеленого светодиода
  • синий светодиод продолжает гореть
  • постепенное зажигание красного светодиода
  • красный светодиод продолжает гореть
  • плавно тушим синий светодиод
  • и опять в начало цикла.

Функционал, включенный в текущую версию прошивки:

  • софтовый 8-битный ШИМ на 200 Гц, 3 канала;
  • возможность использования таблицы коррекции гаммы (желательно перевести ШИМ на BAM 10-бит, иначе заметны переходы цвета);
  • 4 процедуры для работы с цветом:
  • программный таймер с шагом 0.1с (макс. время 1:49:13.5) для пауз и установки времени перехода;
  • переход от текущего до заданного цвета по RGB значениям за время таймера;
  • переход от текущего до заданного цвета по HSV значениям за время таймера;
  • мгновенное изменение цвета
  • 6 подпрограмм смены цвета
  • вращение по HSV колесу; дополнительно: колебание по насыщенности и яркости;
  • цикл основных цветов; дополнительно: рандомное время перехода на каждый шаг;
  • фиксированный цвет; дополнительно: второй фиксированный цвет;
  • рандомный цвет по параметрам RGB; дополнительно: рандомный цвет по параметрам HSV;
  • предустановленный цикл цветов; дополнительно: — (в будущем — набор команд, загруженный с ПК);
  • (активируется с ПК)прямой вывод полученного с ПК цвета; дополнительно: плавное переход на новый цвет;
  • трехрежимная кнопка
  • быстрое нажатие — смена подпрограммы (либо сброс паузы);
  • продолжительное нажатие — альтернативный режим;
  • длительное нажатие — переход в сервисный режим(для перепрошивки)
  • таймер обратного отсчета (задается с ПК, макс. время 1:49:13.5);
  • оповещение о событиях (многократные и одноразовые), 6 каналов (по количеству основных цветов);
  • пауза на время различных событий;
  • связь с ПК: 
  • возможность изменить основные параметры каждой подпрограммы при помощи софта;
  • прием команд управления таймером обратного отсчета и оповещениями;
  • возможность прямого контроля цвета с ПК, что открывает путь к расширению функционала за счет софта.


1.4 Обоснование выбора программного обеспечения микропроцессорной системы устройства релаксационного воздействия на человека «Лампа хорошего настроения»

Программа представляет собой интегрированную среду разработки ПО для AVR микроконтроллеров.

Из основных достоинств CodeVisionAVR можно отметить то, что он не слишком сложен для самостоятельного освоения, поддерживает все многочисленное семейство микроконтроллеров AVR (включая чипы с ядром ATxmega), формирует емкий и результативный программный код. Помимо компилирования среда разработки способна записать созданную программу в память микроконтроллера. Модуль прошивки может взаимодействовать со всеми популярными программаторами (AVR910, STK200/300 и многими другими). Редактор позволяет работать с двумя проектами одновременно, размещать закладки, настраивать время автоматического сохранения результатов

Рисунок 4 – Интерфейс CodeVisionAVR

Основными модулями, входящими в состав CodeVisionAVR являются:

  • трансляторы программ, составленных на Си-подобных языках или ассемблере, в машинный код для AVR;
    • элементы для инициализации периферийных устройств;
    • модуль для работы с платой отладки STK-500;
    • компоненты взаимодействия с внешними программаторами;
    • редактор первичного кода;
    • терминальный модуль.

Результат работы в программе CodeVisionAVR может быть представлен в виде HEX, ROM или BIN-файла для прямой прошивки микроконтроллера путем использования стороннего программатора. Кроме этого, программа может быть передана в формате COFF (файл отладчика) или OBJ. Число библиотек CodeVisionAVR растет с каждой новой версией и включает в себя поддержку продукции от таких известных производителей как Philips, National Semiconductor, Maxim-Dallas Semiconductor и многих других.

Компилятор CodeVisionAVR отличается от AVR-GCC, который можно наблюдать в программе WinAVR, синтаксисом, количеством поддерживаемых микроконтроллеров и быстродействием конечного кода. Но больше всего по специфике работы, расположению команд и своим возможностям программа напоминает PonyProg.

При работе важно не забывать, что процедура прошивки самой программы, fuse битов и ПЗУ в CodeVisionAVR являются самостоятельными процедурами. Разработчик рекомендует сначала прописать пользовательский код, затем EEPROM-память, а в конце fuse’ы. Чтобы убедиться, что CodeVisionAVR обнаружил внешний программатор, который подключается к LPT порту рабочей станции, необходимо нажать кнопку «Reset Chip». При этом на программаторе обязаны загореться индикаторы чтения/записи.

Рисунок 5 – Системные настройки

Разработчик программы – компания HP InfoTech, расположенная в столице Румынии, городе Бухаресте. Работники фирмы постоянно трудятся над своим продуктом, улучшая оптимизатор кода и ускоряя работу компоновщика. Число пользователей, купивших данный софт, составляет более 13000 человек.

Существует две версии программы: CodeVisionAVR Evaluation – бесплатный ознакомительный вариант с ограничением до четырех килобайт размера программного кода и отсутствием ряда ключевых библиотек и CodeVisionAVR – платная коммерческая, защищенная от установки паролем.

Интерфейс CodeVisionAVR английский и русификатора к нему нет.

Требуемая платформа для установки – Windows 95, 98, 2000, XP, Vista и 7. Поддерживаются 32- и 64-разрядные операционные системы.


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

2.1 Выбор и описание микроконтроллера устройства релаксационного воздействия на человека «Лампа хорошего настроения»

ATtiny2313 - низкопотребляющий 8 битный микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny2313 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.

AVR ядро объединяет богатую систему команд и 32 рабочих регистра общего назначения. Все 32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ), что позволяет получить доступ к двум независимым регистрам при выполнении одной команды. В результате эта архитектура позволяет обеспечить в десятки раз большую производительность, чем стандартная CISC архитектура.

Микроконтроллер наделен 18 выводами ввода – вывода, которые можно запрограммировать исходя из потребностей, возникающих при проектировании конкретного устройства. Выходные буферы данных портов выдерживают относительно высокую нагрузку. Port A (PA2 — PA0) – 3 бита. Двунаправленный порт ввода-вывода с программируемыми подтягивающими резисторами. Port B (PB7 — PB0) – 8 бит. Двунаправленный порт ввода-вывода с программируемыми подтягивающими резисторами. Port D (PD6 — PD0) – 7 бит. Двунаправленный порт ввода-вывода с программируемыми подтягивающими резисторами.

ATtiny2313 имеет следующие характеристики: 2 КБ программируемой в системе Flash память программы, 128 байтную EEPROM память данных, 128 байтное SRAM (статическое ОЗУ), 18 линий ввода - вывода общего применения, 32 рабочих регистра общего назначения, однопроводный интерфейс для встроенного отладчика, два гибких таймера/счетчика со схемами сравнения, внутренние и внешние источники прерывания, последовательный программируемый USART, универсальный последовательный интерфейс с детектором стартового условия, программируемый сторожевой таймер со встроенным генератором и три программно инициализируемых режима пониженного потребления. В режиме Idle останавливается ядро, но ОЗУ, таймеры/счетчики и система прерываний продолжают функционировать. В режиме Power-down регистры сохраняют свое значение, но генератор останавливается, блокируя все функции прибора до следующего прерывания или аппаратного сброса. В Standby режиме задающий генератор работает, в то время как остальная часть прибора бездействует. Это позволяет очень быстро запустить микропроцессор, сохраняя при этом в режиме бездействия мощность.

Рисунок 6 – Расположение выводов ATtiny2313

Прибор изготовлен по высокоплотной энергонезависимой технологии изготовления памяти компании Atmel. Встроенная ISP Flash позволяет перепрограммировать память программы в системе через последовательный SPI интерфейс или обычным программатором энергонезависимой памяти. Объединив в одном кристалле 8- битное RISC ядро с самопрограммирующейся в системе Flash памятью, ATtiny2313 стал мощным микроконтроллером, который дает большую гибкость разработчика микропроцессорных систем.

Рисунок 7 – Микроконтроллер ATTiny2313

ATtiny2313 поддерживается различными программными средствами и интегрированными средствами разработки, такими как компиляторы C, макроассемблеры, программные отладчики/симуляторы, внутрисхемные эмуляторы и ознакомительные наборы.

RISC (Reduced Instruction Set Computer). Данная архитектура обладает большим набором инструкций, основное количество которых исполняются в 1 машинный цикл. Из этого следует, что по сравнению с предшествующими микроконтроллерами на базе CISC архитектуры (например, MCS51), у микроконтроллеров на RISC быстродействие в 12 раз быстрее. Или если взять за базу определенный уровень быстродействия, то для выполнения данного условия микроконтроллерам на базе RISC (Attiny2313) необходима в 12 раз меньше тактовая частота генератора, что приводит к значительному снижению энергопотребления. В связи с этим возникает возможность конструирование различных устройств на Attiny2313, с использованием батарейного питания.

Рисунок 8 – Блок-Диаграмма AVR-архитектуры


2.2 Разработка алгоритма функционирования программы устройства релаксационного воздействия на человека «Лампа хорошего настроения»

//***************************************************************

// Project.....: Лампа настроения

// Version.....: 1.0

// Device(s)...: ATTiny.

// Compiler....: WinAVR

// Description.: Управление RGB-светодиодом для создания эффекта

// лампы настроения (переливание цветов)

//***************************************************************

#include <avr/io.h> //подключаем библиотеку ввода/вывода

//***************************************************************

//*** НАСТРОЙКИ ПРОГРАММЫ

// Порт, к которому подключен RGB-диод

#define LED_PORT PORTB

#define LED_PIN PINB

#define LED_DDR DDRB

// Пины порта, к которым подключены выводы RGB-диода

#define R_PIN 0 //Красный

#define G_PIN 1 //Зеленый

#define B_PIN 2 //Синий

#define delval 1500 //Задержка - задаем скорость эффекта (зажигания/гашения)

//***************************************************************

//*** СЛУЖЕБНЫЕ ПРОЦЕДУРЫ

#define nop() {asm("nop");}//функция необходимая для реализации задержки

// функция задержки

void delay_cycl(int delay) { for (int i=delay;i>0;i--) nop (); }

// функция включения одного цвета светодиода и задержка

void led_pin_off(int pin,int delay) { LED_PORT &= ~_BV(pin); delay_cycl(delay); }

// функция выключения одного цвета светодиода и задержка

void led_pin_on(int pin,int delay) { LED_PORT |= _BV(pin); delay_cycl(delay); }

//плавное зажигание одного цвета светодиода

void led_fade_in(int pin)

{

unsigned int i,p;

for (i = 0; i < delval; i++)

{

p=delval-i;

led_pin_on(pin, i);

led_pin_off(pin,p);

}

}

//плавное гашение одного цвета светодиода

void led_fade_out(int pin)

{

unsigned int i,p;

for (i = 0; i < delval; i++)

{

p=delval-i;

led_pin_on(pin, p);

led_pin_off(pin,i);

}

}

//***************************************************************

//*** НАЧАЛО ПРОГРАММЫ

int main( void )

{

//конфигурирование на вывод пинов порта LED_PORT

LED_DDR |= _BV(R_PIN);//красный

LED_DDR |= _BV(G_PIN);//зеленый

LED_DDR |= _BV(B_PIN);//синий

//включаем подтягивающие резисторы################

LED_PIN |= _BV(R_PIN);//красный

LED_PIN |= _BV(G_PIN);//зеленый

LED_PIN |= _BV(B_PIN);//синий

while(1) //бесконечный цикл.

{ //Зажигаем цвета по цепочке: R->RG->G->GB->B->BR->R

//Зажигаем красный светодиод

led_pin_on(R_PIN,0);

//плавное зажигание зеленого светодиода

led_fade_in(G_PIN);

//Зеленый светодиод остается гореть

led_pin_on(G_PIN,0);

//плавное гашение красного светодиода

led_fade_out(R_PIN);

//Зеленый светодиод остается гореть

led_pin_on(G_PIN,0);

//плавное зажигание синего светодиода

led_fade_in(B_PIN);

//Синий светодиод продолжает гореть

led_pin_on(B_PIN,0);

//Плавное гашение зеленого светодиода

led_fade_out(G_PIN);

//Синий светодиод продолжает гореть

led_pin_on(B_PIN,0);

//постепенное зажигание красного светодиода

led_fade_in(R_PIN);

//Красный светодиод продолжает гореть

led_pin_on(R_PIN,0);

//Плавно тушим синий светодиод

led_fade_out(B_PIN);

} // И опять в начало цикла

}


2.3 Реализация программы устройства релаксационного воздействия на человека «Лампа хорошего настроения»

Программа для микроконтроллера пишется на любом удобном языке программирования, компилируется в бинарный файл (или файл формата intel HEX) и помещается в микроконтроллер посредством программатора.

Программаторы бывают разные под разные семейства контроллеров существуют свои программаторы. Впрочем, бывают и универсальные. Более того, даже ту же простейшую AVR можно запрограммировать несколькими способами:

Внутрисхемное программирование (ISP) - самый популярный способ программировать современные контроллеры. Внутрисхемным данный метод называется потому, что микроконтроллер в этот момент находится в схеме целевого устройства — он может быть даже туда впаян. Для нужд программатора в этом случае выделяется несколько выводов контроллера (обычно 3..5 в зависимости от контроллера).

Рисунок 8 – Схема подключения программатора

К этим выводам подключается прошивающий шнур программатора и происходит заливка программирования. После чего шнур отключается и контроллер начинает работу. У AVR программа помещается по интерфейсу SPI и для работы программатора нужно четыре линии и питание (достаточно только земли, чтобы уравнять потенциалы земель программатора и устройства):

MISO — данные идущие от контроллера (Master-Input/Slave-Output)

MOSI — данные идущие в контроллер (Master-Output/Slave-Input)

SCK — тактовые импульсы интерфейса SPI

RESET — сигналом на RESET программатор вводит контроллер в режим программирования

GND — земля

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

Популярный стандарт SPI коннектора:

Рисунок 9 – SPI коннектор

Для внутрисхемной программирования контроллеров AVR существует не один десяток разнообразных программаторов. Отличаются они в первую очередь по скорости работы и типу подключения к компьютеру (COM/LPT/USB). Программаторы без собственного чипа, как правило, дешевые, очень простые в изготовлении и наладке. Но при этом обычно работают исключительно через архаичные COM или LPT порты. Которые найти в современном компьютере целая проблема. А еще требуют прямого доступа к портам, что уже в Windows XP осуществляется с помощью API функций и зависят от тактовой частоты процессора компьютера.

Идеальный компьютер для работы с такими программаторами это какой-нибудь PIII-800Mhz с Windows98…XP.

Простейшая схема, работает через оболочку UniProf, но имеет ряд проблем. В частности тут COM порт используется нетрадиционно и на некоторых материнских платах может не заработать.

STK200

Надежная и удобная схема. Работает через LPT порт. Поддерживается многими программами, например avrdude. Требует прямого доступа к порту со стороны операционной системы и наличие LPT порта.

FTBB-PROG.

Очень надежный и быстрый программатор работающий через USB. C драйверами под разные операционные системы. И мощной оболочкой avrdude. Недостаток один — содержит редкую и дорогую микросхему FTDI. Данный программатор встроен в демоплаты Pinboard

Рисунок 10 – Внешний вид демоплаты Pinboard

Программаторы с управляющим контроллером лишены многих проблем. Они без особых проблем работают через USB. Но у этих программаторов есть другая проблема — для того чтобы сделать такой программатор нужен другой программатор, чтобы запрограммировать ему управляющий контроллер. Внутрисхемное программирование, несмотря на все его удобства, имеет ряд ограничений. Микроконтроллер должен быть запущен, иначе он не сможет ответить на сигнал программатора. Поэтому если неправильно выставить биты конфигурации (FUSE), например, переключить на внешний кварцевый резонатор, а сам кварц не поставить. То контроллер не сможет запуститься и запрограммировать его внутрисхемно будет уже нельзя. По крайней мере до тех пор, пока МК не будет запущен. Также в битах конфигурации можно отключить режим внутрисхемной программирования или превратить вывод RESET в обычный порт ввода-вывода (это справедливо для малых МК, у которых RESET совмещен с портом).

Параллельное высоковольтное программирование

Обычно применяется на поточном производстве при массовой (сотни штук) прошивке чипов в программаторе перед запайкой их в устройство.

Параллельное программирование во много раз быстрей последовательного (ISP), но требует подачи на RESET напряжения в 12 вольт. А также для параллельной зашивки требуется уже не три линии данных, а восемь, а также линии управления. Для программирования в этом режиме микроконтроллер вставляется в панельку программатора, а после программирования переставляется в целевое устройство.

Многие микроконтроллеры AVR имеют режим само программирования. Т.е. в микроконтроллер изначально, любым указанным выше способом, зашивается спец программка — bootloader. Дальше для перешивки программатор не нужен. Достаточно выполнить сброс микроконтроллера и подать ему специальный сигнал. После чего он входит в режим программирования и через обычный последовательный интерфейс в него помещается программа.

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

AVR микроконтроллеры могут быть запрограммированы двумя способами – по параллельному интерфейсу и по последовательному. «Параллельное» программирование более сложное в плане реализации программатора и самого программирования, но зато имеет немного большие возможности (например, прошивка контроллера с отключенным ресетом). В виду ориентации блога на простоту и доступность «Параллельными» программаторами мы пользоваться не будем. Зато будем пользоваться «последовательными» программаторами. «Последовательное» программирование (SPI programming ) очень легко реализуется, не требует повышенного напряжения, работает даже если микроконтроллер уже впаян в рабочую схему – это и называется внутрисхемным программированием (ISP – In System Programmer).

Для реализации «последовательного» программирования необходимо:

подключить к программатору ножку сброса (RESET) и SPI интерфейс контроллера (ножки MOSI, MISO, SCK);

запитать микроконтроллер номинальным напряжением +5В (GRD, VCC).

Если у микроконтроллера есть АЦП желательно на ножку AVCC (отдельное питание для аналоговой части контроллера) также подать +5В.

С завода, по умолчанию, в микроконтроллерах включен внутренний задающий генератор при котором и происходит программирование. Но если контроллер перешит на внешний генератор, то для программирования понадобится внешний кварц на ножках XTAL1, XTAL2.

Для внутрисхемного программирования линиям SPI интерфейса не должно ничего мешать (большие емкости, сильные подтяжки к питанию или земле и т.д.)

Рисунок 11 – Положение фьюзов

2.4 Провести тестирование программы устройства релаксационного воздействия на человека «Лампа хорошего настроения»

HappyJTAG2 использует аппаратный JTAG-интерфейс микросхемы FT2232 на первом канале , второй канал используется под последовательный порт. Поддержка отладки с помощью gdb не реализована, в такой связке возможно лишь программирование FLASH-памяти микроконтроллера через порт JTAG. Механизм отладки с использованием программы HappyJTAG2 и адаптера FTDI JTAG выглядит следующим образом. FTDI JTAG подсоединяется с помощью кабеля к JTAG порту микроконтроллера. Для этого придется изготовить еще один кабельный переходник, поскольку распиновка разъема JTAG для микроконтроллеров AVR отличается. Возможно подсоединение как с использованием гальванической изоляции, так и без нее. В первом случае питание должно присутствовать на целевом устройстве. После опроса HappyJTAG2 автоматически определит адаптер и подсоединенный к нему микроконтроллер.

Рисунок 12 – Внешний вид отладчика

HappyJTAG2 не поддерживает драйвер для libusb, поэтому его придется удалить (для канала А ) и установить родной драйвер от FTDI. Этот факт делает невозможным использовать одновременно openocd и HappyJTAG2 для отладки ARM и AVR микроконтроллеров. Для этого необходимо применять версии openocd, которая не использует библиотеку libusb. Теперь можно запустить AVR Studio. FTDI JTAG адаптер в связке с HappyJTAG2 студией определяется как JTAG ICE mk II, именно этот адаптер необходимо выбирать при создании нового проекта.

Рисунок 13 – Создание проекта в AVR Studio

Рисунок 14 – Выбор микроконтроллера

После опроса AVR Studio в главном меню нужно выбрать «Tools -> Program AVR -> Connect… », в следующем окне все необходимые параметры уже будут установлены. После чего выполнить соединение с адаптером, нажав на кнопку «Connect».

Рисунок 15 – Подключение программатора-отладчика

Рисунок 16 – Выбор программатора

Рисунок 17 – Настройки программатора

Программа HappyJTAG2 во время работы в AVR Studio должна быть все время запущена, поскольку все коммуникации с отлаживаемой системой происходят через нее. После определения студией JTAG ICE mk II адаптера HappyJTAG2 сигнализирует о наличии связи с AVR Studio зеленым кружком напротив соответствующей надписи.

Рисунок 18 – Индикация инициализации

В качестве среды разработки при использовании отладки с помощью FTDI JTAG можно остановиться на AVR Studio, которая с некоторых пор поддерживает разработку программ на языке С благодаря использованию инструментария WinAVR. Вторым вариантом является Eclipse CDT в связке с AVR Studio. Сейчас выполним сборку проекта и откроем полученный elf- файл в AVR Studio.

Рисунок 19 – Открытие файла в AVR Studio

В AVR Studio откроем полученный elf-файл через «File -> Open -> avr_project.elf ». Еще раз укажем тип адаптера AVR ICE mk II и тип целевого устройства, после чего содержимое контроллера предстанет перед нашими глазами в окнах AVR Studio.

Рисунок 20 – Содержимое программы прошивки

Рисунок 21 – Дизассемблер программы

Программу HappyJTAG2 также можно использовать как программатор микроконтроллеров AVR через ISP или JTAG интерфейс.

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

Для того, чтобы пользоваться отладкой в интегрированной среде разработки Eclipse, необходимо установить плагин для отладки. В качестве такового будем использовать Zylincdt Plug-in.

Для того, чтобы его загрузить с сети интернет, необходимо запустить Eclipse и выбрать в меню «Help» пункт «Install New Software…».Далее в окне «Install» нажать на кнопку «Add…». В окне «Add site» Вам будет предложено ввести имя и расположение плагина, как показано на рисунке

Рисунок 22 – Добавление плагина в Eclipse

Далее необходимо нажать на кнопку «OK» и приступить к установке плагина

Рисунок 23 – Установка плагина

Если Ваш компьютер использует доступ в интернет через прокси-сервер, то придется еще дополнительно настроить в Eclipse использование прокси.

Для этого войдите в меню «Windows -> Preferences» и в открывшемся окне «Preferences» выберите «General -> Network connections»

Рисунок 24 – Настройка сетевых установок

В выпадающем списке «Active Provider» выбираем «Manual» и для схем «HTTP» и «HTTPS» жмем на кнопку «Edit», после чего выбираем IP-адрес и порт прокси-сервера.

Рисунок 25 – Настройка прокси-сервера

Для более ясного представления процесса отладки в Eclipse рассмотрим схему взаимодействия всех участвующих в отладке элементов

Рисунок 26 – Схема отладки в Eclipse

Из схемы видно, что физический (или аппаратный ) интерфейс состоит из двух кабельных соединений:

USB-кабель между персональным компьютером ( PC ) и адаптером JTAG;

JTAG-кабель IDC20 — IDC20 между адаптером и целевой платой.

На персональном компьютере опрашивается программный сервер (утилита ) openocd при подключенном JTAG - адаптере и модуле. Openocd через драйвер адаптера взаимодействует с ним и кроме отладки также поддерживает режим программирования Flash-памяти целевого микроконтроллера.

Openocd имеет интерфейс командной строки. Запущенный программный gdb-сервер под названием openocd ожидает подключения программного gdb клиента, который в нашем случае (при использовании Sourcery G++ ) именуется как arm-none-eabi-gdb. Интерфейс между клиентом и сервером реализован на основе TCP/IP- сокетов, поэтому подключенный адаптер и запущенная Eclipse могут находиться как на одной, так и на разных машинах. Плагин ZylinCDT обеспечивает графическое отображение в окне Eclipse полученной от адаптера отладочной информации.

Процесс отладки можно также выполнять в консольном режиме, используя командную строку вместо IDE Eclipse. Openocd версии 0.4.0 для работы с FT2232 JTAG адаптером использует библиотеку libusb, поэтому для нашего адаптера FTDI_JTAG необходимо переустановить драйвер канала A (к которому подсоединен JTAG интерфейс ). Теперь, когда драйвера успешно установлены, можно подключить ftdi jtag — адаптер к компьютеру и проверить его работу с помощью openocd. EclipseCDT и ZylinCDT лишь предоставляют интерфейс пользователю, реальная отладка происходит благодаря связке JTAG — OpenOCD — arm-none-eabi-gdb. Программный сервер OpenOCD имеет интерфейс командной строки и предоставляет пользователю необходимые команды, в том числе для программирования Flash-памяти микроконтроллера. Таким образом «запрограммировать» микроконтроллер можно командами OpenOCD, не осуществляя отладку в Eclipse. Для проверки работоспособности адаптера запустим командный интерпретатор через «Пуск-> Выполнить … », далее набираем команду « cmd» и жмем клавишу «OK». Подключаем FTDI JTAG к компьютеру, зеленый светодиод возле разъема USB-порта модуля должен засветиться, что свидетельствует о присутствии напряжения +5В на плате модуля.

В командной строке необходимо набрать следующую команду

openocd -f interface/ftdi_jtag.cfg

Но прежде необходимо скопировать файл ftdi_jtag.cfg в каталог «interface» в подкаталогах openOCD.

Содержимое файла ftdi_jtag.cfg следующее

interface ft2232

ft2232_device_desc «USB <-> Serial Cable A»

ft2232_layout usbjtag

ft2232_vid_pid 00403 06010

В результате в окне интерпретатора Вы увидите сообщение с заголовками «Warn» , «Info», «Error», которое свидетельствует о том, что модуль подключен и найден конфигурационный файл ftdi_jtag.cfg.

В противном случае будет выведено одно из сообщений:

Error: unable to open ftdi device: device not found;

Если не обнаружен модуль, или же в случае отсутствия ftdi_jtag.cfg, будет выведено сообщение;

Can’t find ftdi_jtag.cfg.

Следующим шагом станет присоединение модуля.

Рисунок 27 – Подключение и отладка программы модуля

Чтобы сократить длину команды вызова OpenOCD, можно дописать в файл ftdi_jtag.cfg еще одну строчку

source [ find target/stm32.cfg ]

Вызов команды опроса OpenOCD будет выглядеть так:

openocd -f interface/ftdi_jtag.cfg

В результате выполнения этой команды произойдет запуск gdb-сервера OpenOCD.

Рисунок 28 – Запуск сервера для отладки подпрограммы

Теперь необходимо запустить gdb-клиента под названием arm-none-eabi-gdb. Для этого откроем еще одно окно командного интерпретатора в Windows и введем в командной строке

arm-none-eabi-gdb H:\ARM\main.out

В результате проведенных манипуляций в окне интерпретатора появится приглашение для ввода команд «<gdb>»

Рисунок 29 – Окно клиента

Запущенный ранее сервер в лице openocd ожидает входящего соединения по протоколу TCP/IP , прослушивая порт номер 3333. Запустив клиента arm-none-eabi-gdb мы еще не установили соединение с openocd, для этого нам необходимо ввести в командной строке «<gdb>» следующую команду

<gdb> target remote localhost:3333

Запись «localhost:3333» указывает IP-адрес и номер порта для соединения.

Рисунок 30 – Соединение клиента и сервера

Соединение с OpenOCD установлено, но наша программа все еще не загружена. Для загрузки программирования необходимо сначала выполнить команду останова процессора (обратите внимание, что перед всеми командами openocd используется «monitor»).

<gdb> monitor soft_reset_halt

Рисунок 31 – Выполнение основа процессора

Останов процессора визуально можно определить по состоянию зеленого светодиода «STAT» на плате модуля, он перестанет мерцать.

Следующей последовательностью команд мы загрузим прошивку, установим точку останова на входе в функцию «main» и запустим только что загруженную прошивку на выполнение.

Первая команда загружает прошивку во FLASH-память микроконтроллера.

<gdb> monitor flash write_image erase unlock H:/ARM/main.out 008000000 elf

После загрузки программирования необходимо выполнить аппаратный сброс процессора, для этого нужно нажать на клавишу «RESET», после чего светодиод «STAT» снова заморгает.

Снова выполним останов процессора.

<gdb> monitor soft_reset_halt

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

<gdb> break main

<gdb> continue

Теперь можно просматривать содержимое памяти контроллера, выполнять код по шагам

<gdb> step

Рисунок 32 – отладка модуля по шагам

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

Настройка интегрированной среды разработки Eclipse CDT для использования отладки.

Копируем каталог проекта stm_h103 от Olimex в рабочее пространство Eclipse и при запуске указываем этот каталог. Далее выбираем «File -> Import» и в открывшемся окне «Import» на вкладке «General» указываем «Existing Projects info Workspace».

Рисунок 33 – Окно выбора каталога проекта

Жмем «Next» и далее выбираем размещение импортируемого проекта

Рисунок 34 – Окно импорта проекта

После нажатия на клавишу «Finish» проект появиться в окне «Project Explorer»

Рисунок 35 – Выбор импортированного проекта

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

Для этого выбираем в главном меню «Run -> External Tools -> External Tools Configurations… » или же нажимаем на кнопку «External Tools».

Рисунок 36 – Настройка параметров openocd

В открывшемся окне жмем на кнопку «New launch configuration» , выбираем название конфигурации «openocd_conf» и заполняем остальные поля как на рисунке

Рисунок 37 – Настройка конфигурации

Рисунок 38 – Подключение файла проекта

Файл ftdi_jtag.cfg должен находиться в каталоге проекта.

На вкладке «Common» устанавливаем галочку «External Tools».

Рисунок 39 – Выбор пути подключаемого файла проекта

В заключении конфигурации нажимаем на кнопки «Apply» и «Close ».

Теперь в разделе «External Tools » появиться новая конфигурация под названием «openocd_conf» и вместо опроса из командной строки openocd будет достаточно нажать на «openocd_conf» в разделе меню «Run -> External Tools ».

Рисунок 40 – Выбор созданной конфигурации

Теперь необходимо выполнить конфигурацию клиентской части gdb-отладчика. Для этого выбираем в меню «Run -> Debug Configuration » , далее в окне конфигурации выбираем «Zylin Embedded debug( Native )» и создаем новую конфигурацию отладки под названием «gdb_conf»

Рисунок 41 –Создание новой конфигурации

Рисунок 42 – Окно менеджера конфигураций

На вкладке «Debugger» в строке «GDB debugger» необходимо указать размещение исполняемого файла отладчика arm-none-eabi-gdb.exe.

Содержимое строки «GDB Command file» необходимо удалить.

Рисунок 43 – Выбор и настройка отладчика

Вкладку «Commands» необходимо заполнить так, как показано на следующем рисунке

Рисунок 44 – Указание команд выполнения

На вкладке «Common» установить галочку напротив «Debug»

Рисунок 45 – Указатель отладчика клиента

Теперь можно осуществить отладку, выбрав конфигурацию «gdb_conf».


Рисунок 46 – Окно отладки программы


3 Техника безопасности

3.1 Правила и нормы охраны труда при работе с персональным компьютером

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

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

К наиболее распространенным ошибкам, связанным с обеспечением условий труда работающих на компьютерах относятся:

- недостаточные площадь и объем производственного помещения;

- несоблюдение требований, предъявляемых к температуре и влажности рабочих помещений;

- низкий уровень освещенности в помещениях и на рабочих поверхностях аппаратуры;

- повышенный уровень низкочастотных магнитных полей от мониторов;

- произвольная расстановка техники и нарушения требований организации рабочих мест;

- несоблюдение требований к режимам труда и отдыха;

- чрезмерная производственная нагрузка работников;

- отсутствие навыков по снижению влияния психоэмоционального напряжения.

Вопросы, относящиеся к ответственности за обеспечение охраны труда при работе за компьютером, регулируются Федеральным законом «Об основах охраны труда в Российской Федерации» и Санитарными правилами и нормами СанПиН 2.2.2/2.4.1340-03 «Гигиенические требования к персональным электронно-вычислительным машинам и организации работы».

В соответствии со ст. 14 Закона об охране труда на работодателя возлагается обязанность обеспечить:

- безопасность работников при эксплуатации оборудования;

- применение средств индивидуальной защиты работников;

- соответствующие требования охраны труда, условия труда на каждом рабочем месте;

- соблюдение режима труда и отдыха работников;

- обучение безопасным методам и приемам выполнения работ;

- инструктаж по охране труда;

- организацию контроля за состоянием условий труда на рабочих местах;

- прведение аттестации рабочих мест по условиям труда;

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

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

Прежде чем приобрести компьютеры, необходимо соответствующим образом подготовить помещение, где они будут установлены. 

В соответствии с СанПиН 2.2.2/2.4.1340-03 помещения для работы на компьютерах должны иметь естественное и искусственное освещение. 

Не допускается располагать рабочие места для работы на компьютерах в подвальных помещениях. В случае производственной необходимости использовать помещения без естественного освещения можно только по согласованию с органами и учреждениями Государственного санитарно-эпидемиологического надзора России.

Площадь на одно рабочее место пользователей ПЭВМ с ВДТ на базе электронно-лучевой трубки (ЭЛТ) должна составлять не менее 6 м2, в помещениях культурно-развлекательных учреждений и с ВДТ на базе плоских дискретных экранов (жидкокристаллические, плазменные) - 4,5 м2.

При использовании ПВЭМ с ВДТ на базе ЭЛТ (без вспомогательных устройств - принтер, сканер и др.), отвечающих требованиям международных стандартов безопасности компьютеров, с продолжительностью работы менее 4-х часов в день допускается минимальная площадь 4,5 м2 на одно рабочее место пользователя (взрослого и учащегося высшего профессионального образования).

Для внутренней отделки интерьера помещений, где расположены ПЭВМ, должны использоваться диффузно отражающие материалы с коэффициентом отражения для потолка - 0,7 - 0,8; для стен - 0,5 - 0,6; для пола - 0,3 - 0,5.

Помещения, где размещаются рабочие места с ПЭВМ, должны быть оборудованы защитным заземлением (занулением) в соответствии с техническими требованиями по эксплуатации. Не следует размещать рабочие места с ПЭВМ вблизи силовых кабелей и вводов, высоковольтных трансформаторов, технологического оборудования, создающего помехи в работе ПЭВМ.

Уровень положительных и отрицательных аэрофонов в воздухе помещений должен соответствовать «Санитарно-гигиеническим нормам допустимых уровней ионизации воздуха производственных и общественных помещений».

В производственных помещениях уровень шума на рабочих местах не должен превышать значений, установленных «Санитарными нормами допустимых уровней шума на рабочих местах», а уровень вибрации - «Санитарными нормами вибрации рабочих мест».

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

Освещенность на поверхности стола в зоне размещения рабочего документа должна быть 300 - 500 лк. Освещение не должно создавать бликов на поверхности экрана. Освещенность поверхности экрана не должна быть более 300 лк.

В качестве источников света при искусственном освещении следует применять преимущественно люминесцентные лампы типа ЛБ и компактные люминесцентные лампы (КЛЛ). При устройстве отраженного освещения в производственных и административно-общественных помещениях допускается применение металлогалогенных ламп. В светильниках местного освещения допускается применение ламп накаливания, в том числе галогенных.

Для освещения помещений с ПЭВМ следует применять светильники с зеркальными параболическими решетками, укомплектованными электронными пускорегулирующими аппаратами (ЭПРА). Допускается использование многоламповых светильников с электромагнитными пускорегулирующими аппаратами (ЭПРА), состоящими из равного числа опережающих и отстающих ветвей.

Применение светильников без рассеивателей и экранирующих решеток не допускается.

При отсутствии светильников с ЭПРА лампы многоламповых светильников или рядом расположенные светильники общего освещения следует включать на разные фазы трехфазной сети.

При размещении рабочих мест с ПЭВМ расстояние между рабочими столами с видеомониторами (в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора) должно быть не менее 2,0 м, а расстояние между боковыми поверхностями видеомониторов - не менее 1,2 м.

Рабочие места с ПЭВМ при выполнении творческой работы, требующей значительного умственного напряжения или высокой концентрации внимания, рекомендуется изолировать друг от друга перегородками высотой 1,5 - 2,0 м.

Конструкция рабочего стола должна обеспечивать оптимальное размещение на рабочей поверхности используемого оборудования с учетом его количества и конструктивных особенностей, характера выполняемой работы. При этом допускается использование рабочих столов различных конструкций, отвечающих современным требованиям эргономики. Поверхность рабочего стола должна иметь коэффициент отражения 0,5 - 0,7.

Желательно, чтобы высоту рабочей поверхности стола можно было регулировать в пределах 680-800 мм, а при отсутствии такой возможности она должна быть равна 725 мм. Модульными размерами рабочей поверхности компьютерного стола, на основании которых рассчитывают конструктивные размеры, следует считать: ширину 800, 1000, 1200, 1400 мм; глубину 800 и 1000 мм.

Рабочий стол должен иметь пространство для ног высотой не менее 600 мм, шириной - не менее 500 мм, глубиной на уровне колен - не менее 450 мм и на уровне вытянутых ног - не менее 650 мм.

Конструкция рабочего стула должна обеспечивать:

- ширину и глубину поверхности сиденья не менее 400 мм;

- поверхность сиденья с закругленным передним краем;

- регулировку высоты поверхности сиденья в пределах 400 - 550 мм и углам наклона вперед до 15 град. и назад до 5 град.;

- высоту опорной поверхности спинки 300 +/- 20 мм, ширину - не менее 380 мм и радиус кривизны горизонтальной плоскости - 400 мм;

- угол наклона спинки в вертикальной плоскости в пределах +/- 30 градусов;

- регулировку расстояния спинки от переднего края сиденья в пределах 260 - 400 мм;

- стационарные или съемные подлокотники длиной не менее 250 мм и шириной - 50 - 70 мм;

- регулировку подлокотников по высоте над сиденьем в пределах 230 +/- 30 мм и внутреннего расстояния между подлокотниками в пределах 350 - 500 мм.

Рабочее место пользователя ПЭВМ следует оборудовать подставкой для ног, имеющей ширину не менее 300 мм, глубину не менее 400 мм, регулировку по высоте в пределах до 150 мм и по углу наклона опорной поверхности подставки до 20 град. Поверхность подставки должна быть рифленой и иметь по переднему краю бортик высотой 10 мм.

Клавиатуру следует располагать на поверхности стола на расстоянии 100 - 300 мм от края, обращенного к пользователю, или на специальной, регулируемой по высоте рабочей поверхности, отделенной от основной столешницы.

Конструкция рабочего стула (кресла) должна обеспечивать поддержание рациональной рабочей позы при работе на ПЭВМ, позволять изменять позу с целью снижения статического напряжения мышц шейно-плечевой области и спины для предупреждения развития утомления. Тип рабочего стула (кресла) следует выбирать с учетом роста пользователя, характера и продолжительности работы с ПЭВМ.

Рабочий стул (кресло) должен быть подъемно-поворотным, регулируемым по высоте и углам наклона сиденья и спинки, а также расстоянию спинки от переднего края сиденья, при этом регулировка каждого параметра должна быть независимой, легко осуществляемой и иметь надежную фиксацию.

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

Экран видеомонитора должен находиться от глаз пользователя на расстоянии 600 - 700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов.

Лица, работающие с ПЭВМ более 50% рабочего времени (профессионально связанные с эксплуатацией ПЭВМ), должны проходить обязательные предварительные при поступлении на работу и периодические медицинские осмотры в установленном порядке.

Женщины со времени установления беременности переводятся на работы, не связанные с использованием ПЭВМ, или для них ограничивается время работы с ПЭВМ (не более 3-х часов за рабочую смену) при условии соблюдения гигиенических требований, установленных настоящими Санитарными правилами. Трудоустройство беременных женщин следует осуществлять в соответствии с законодательством Российской Федерации.

Организация работы с ПЭВМ осуществляется в зависимости от вида и категории трудовой деятельности.

Виды трудовой деятельности разделяются на 3 группы: группа А - работа по считыванию информации с экрана ВДТ с предварительным запросом; группа Б - работа по вводу информации; группа В - творческая работа в режиме диалога с ПЭВМ. При выполнении в течение рабочей смены работ, относящихся к разным видам трудовой деятельности, за основную работу с ПЭВМ следует принимать такую, которая занимает не менее 50% времени в течение рабочей смены или рабочего дня.

Для видов трудовой деятельности устанавливается 3 категории тяжести и напряженности работы с ПЭВМ, которые определяются: для группы А - по суммарному числу считываемых знаков за рабочую смену, но не более 60 000 знаков за смену; для группы Б - по суммарному числу считываемых или вводимых знаков за рабочую смену, но не более 40 000 знаков за смену; для группы В - по суммарному времени непосредственной работы с ПЭВМ за рабочую смену, но не более 6 ч за смену.

В зависимости от категории трудовой деятельности и уровня нагрузки за рабочую смену при работе с ПЭВМ устанавливается суммарное время регламентированных перерывов.

Для предупреждения преждевременной утомляемости пользователей ПЭВМ рекомендуется организовывать рабочую смену путем чередования работ с использованием ПЭВМ и без него.

При возникновении у работающих с ПЭВМ зрительного дискомфорта и других неблагоприятных субъективных ощущений, несмотря на соблюдение санитарно-гигиенических и эргономических требований, рекомендуется применять индивидуальный подход с ограничением времени работы с ПЭВМ.

В случаях, когда характер работы требует постоянного взаимодействия с ВДТ (набор текстов или ввод данных и т.п.) с напряжением внимания и сосредоточенности, при исключении возможности периодического переключения на другие виды трудовой деятельности, не связанные с ПЭВМ, рекомендуется организация перерывов на 10 - 15 мин. через каждые 45 - 60 мин. работы.

Продолжительность непрерывной работы с ВДТ без регламентированного перерыва не должна превышать 1 ч.

При работе с ПЭВМ в ночную смену (с 22 до 6 ч), независимо от категории и вида трудовой деятельности, продолжительность регламентированных перерывов следует увеличивать на 30%.

Во время регламентированных перерывов с целью снижения нервно-эмоционального напряжения, утомления зрительного анализатора, устранения влияния гиподинамии и гипокинезии, предотвращения развития позотонического утомления целесообразно выполнять комплексы упражнений, изложенных в Приложениях 9-11 к СанПиН 2.2.2/2.4.1340-03


3.2 Электробезопасность при работе с персональным компьютером

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

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

Необходимо постоянно следить на своем рабочем месте за исправным состоянием электропроводки, выключателей, штепсельных розеток, при помощи которых оборудование включается в сеть, и заземления. При обнаружении неисправности немедленно обесточить электрооборудование, оповестить администрацию. Продолжение работы возможно только после устранения неисправности;

Во избежание повреждения изоляции проводов и возникновения коротких замыканий не разрешается:

а) вешать что-либо на провода;

б) закрашивать и белить шнуры и провода;

в) закладывать провода и шнуры за газовые и водопроводные трубы, за батареи отопительной системы;

г) выдергивать штепсельную вилку из розетки за шнур, усилие должно быть приложено к корпусу вилки.

Для исключения поражения электрическим током запрещается:

а) часто включать и выключать компьютер без необходимости;

б) прикасаться к экрану и к тыльной стороне блоков компьютера;

в) работать на средствах вычислительной техники и периферийном оборудовании мокрыми руками;

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

д) класть на средства вычислительной техники и периферийном оборудовании посторонние предметы.

Запрещается под напряжением очищать от пыли и загрязнения электроооборудование.

Запрещается проверять работоспособность электрооборудования в неприспособленных для эксплуатации помещениях с токопроводящими полами, сырых, не позволяющих заземлить доступные металлические части.

Ремонт электроаппаратуры производится только специалистами-техниками с соблюдением необходимых технических требований.

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

При пользовании элетроэнергией в сырых помещениях соблюдать особую осторожность.

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

Спасение пострадавшего при поражении электрическим током главным образом зависит от быстроты освобождения его от действия током.

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

Необходимо немедленно начать производить искусственное дыхание, наиболее эффективным из которых является метод ?рот в рот¦ или ?рот в нос¦, а также наружный массаж сердца.

Искусственное дыхание пораженному электрическим током производится вплоть до прибытия врача.


3.3 Противопожарная безопасность при работе с персональным компьютером

На рабочем месте запрещается иметь огнеопасные вещества.

В помещениях запрещается:

а) зажигать огонь;

б) включать электрооборудование, если в помещении пахнет газом;

в) курить;

г) сушить что-либо на отопительных приборах;

д) закрывать вентиляционные отверстия в электроаппаратуре

Источниками воспламенения являются:

а) искра при разряде статического электричества

б) искры от электроборудования

в) искры от удара и трения

г) открытое пламя

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

Помещения с электроборудованием должны быть оснащены огнетушителями типа ОУ-2 или ОУБ-3.


Заключение

В результате работы над дипломным проектом был реализован программный продукт для микроконтроллера ATTiny13 на AVR-Studio.

Для реализации данного программного продукта, была описана область применения «Лампы хорошего настроения», описано преимущество самодельной лампы к готовым коммерческим решениям.

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

В работе выполнено обоснования выбора микроконтроллера для «Лампы хорошего настроения», проведено тестирование готового программного продукта и соблюдалась техника безопасности.

В результате выполненной работы, создана «Лампа хорошего настроения» под управление микроконтроллера и реализован программный продукт с помощью AVR-Studio. В результате тестирования ошибок в коде программы не обнаружено.


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

Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров. 2010г.

Лебедев М.Б. CodeVisionAVR: пособие для начинающих. 2012г.

Григорьев В. Л. Программное обеспечение микропроцессорных систем. – М.: Энергоатомиздат, 2011.

Щелкунов Н. Н., Дианов А. П. Микропроцессорные средства и системы. – М.: Радио и связь, 2014.

Сташин В. В. Проектирование цифровых устройств на однокристальных микроконтроллерах. – М.: Энергоатомиздат, 2010.

Иванов В. И. Полупроводниковые оптоэлектронные приборы: Справочник – 2-е изд., перераб. И доп. – М.: Энергоатомиздат, 2012.

Хвощ С. Т. Микропроцессоры и микроЭВМ в системах автоматического управления. Справочник. Л.: Машиностроение. Ленингр. отд-ние, 2012.

Разработка программы для устройства «Лампа хорошего настроения» на базе микроконтроллера