Автоматическое устройство для подачи школьных звонков с использованием макросов, интегрированных в Microsoft Office 2007

Автоматическое устройство
для подачи школьных звонков с использованием макросов, интегрированных в Microsoft Office 2007

Содержание:
Вводная часть
Основная часть
Заключение
1. Вводная часть.
1. Все больше и больше школ оснащаются компьютерными классами и компьютерами в каждом классе. Работа на компьютерах и использование средств глобальных коммуникаций может помочь учащимся гармонично жить и работать в информационном обществе, глубже и разнообразнее познавать окружающий мир и эффективнее развивать свой интеллектуальный потенциал. Компьютеры используются не только как средства обучение, но и как предмет изучения, применяются и для других целей, в частности в нашем случае как автомат для подачи школьных звонков
Нам хотелось исследовать возможности использования макросов, интегрированных в Microsoft Office 2007 c целью получения устройства для практического применения, в нашем случае устройства для подачи школьных звонков, хотя в реальности сама методика использования макросов совместно с традиционным использование возможностей Microsoft Office Excel 2007 позволяет значительно расширить круг устройств, для конструирования которых применяется данная методика.
В виду «древности» этого порта в настоящее время он уже в основном не используется в различных приложениях и в основном не раскрываются его возможности в применении тех или иных устройствах.
Исходя из этого, возможности этого порта (LPT) уже применяются редко, но он появился и применялся в первых компьютерах, его параметры были зашиты в БИОС, и к нему можно обращаться напрямую в программах, что значительно упрощает применение этого порта в различных устройствах.
2. Вводная часть.
Устройство для автоматической подачи звонков в школе.



Данный проект «Устройство для автоматической подачи звонков в школе» использует ресурсы электронных таблиц, но являются нетрадиционными для этого приложения, т.е. в данном проекте используются макросы интегрированные в Мicrosoft Office.
Немного об интерпретаторе языка VBA интегрированный в Мicrosoft Office 2007, основы работы с ними:
1.Разрешить исполнение макросов:


1.Кнопка «Оffice» и выбираем «Параметры Ехсел»
2. «Центр управления безопасностью»



«Параметры центра упраления безопасностью»
Далее «Параметры макросов» и «Включить все макросы»

Работа с макросами:
Ctrl+Break – прервать исполнение макроса.
Alt+F11 – переключение в редактор VBA и обратно.
В редакторе VBA:
Ctrl+R – вызов окна проводника проекта (если не отображается);
F7 – вызов окна кода (если не отображается).
На панели инструментов:
  (Run) – выполнить макрос;
  (Break) – прервать исполнение макроса;
  (Reset) – восстановить начальное состояние после прерывания.
В окне кода:
' (апостроф) – часть строки после апострофа интерпретатором не читается (используется для отмены действия операторов и комментариев).

Основа проекта –часы показывающие текущее системное время.


Для начала объединим ячейки диапазона B8:K32 и в процедуре Clock() отредактируем строку, чтобы получилось:
Range("B8") = Now (В ячейку В8 заносятся показания текущего времени с точностью до единиц минут, что определяется форматом ячейки – Время: 13:30), т.е.
в этом диапазоне установим формат ячейки:
– Время: 13:30;
– Выравнивание:
по горизонтали: по правому краю;
по вертикали: по центру;
– Шрифт:
начертание: полужирный;
размер: 170.

Для отдельного отображения секунд объединим ячейки диапазона L14:N22, введем в него формулу:
=ТЕКСТ(СЕКУНДЫ(ТДАТА());"00") – вырезаются секунды из показания часов
Здесь выберем формат:
– Общий;
– Выравнивание:
по левому краю;
– Шрифт:
размер: 100.

Для установки времени звонка будильника создадим с помощью панели «Формы» два счетчика для выбора нужных часа и минут,

Настроим необходимые ограничения и свяжем их с ячейками G36 и I36.



В ячейку I35 введем формулу =ВРЕМЯ(G36;I36;) для перевода выбранного времени в формат представления времени в Excel
Левее в H35 запишем =ВРЕМЯ(ЧАС(B8);МИНУТЫ(B8);
СЕКУНДЫ(B8)) с аналогичной целью.




В ячейке G35 это значение мы будем сравнивать с выбранным с помощью формулы: =ЕСЛИ(H35=I35;1;0), - сравниваются показания будильника и текущего времени. При выполнения условия значение ячейки G35 =1, выполняется условие для подачи звонка.


Отведем для расписания уроков диапазон от P8-P20 –начало и Q8-Q20 –конец урока. В эти ячейки будем вводить время звонков в принятом формате времени, отделяя двоеточием часы от минут и секунд. Условие в ячейке G35 придется преобразовать к виду:

G35=ЕСЛИ(ИЛИ(H35=P8;H35=P10;H35=P12;H35=P14;H35=P16;H35=P18;H35=P20;H35=Q8;H35=Q10;H35=Q12;H35=Q14;H35=Q16;H35=Q18;H35=Q20;H35=I35;B35=B36);1;0) , т.е. содержимое ячейки Н35 сравнивается со значениями ячеек Р8-Р20 и Q8-Q20, где записаны значения начала и конца уроков.

Для отключения звонка устройства создадим с помощью панели «Формы» еще один счетчик, настроим ограничения и свяжем его с ячейкой L36
Показания ячейки L36 занесем в ячейку C35





В ячейку D35запишем формулу =ЕСЛИ(И(C35=1;G35=1);1;0), происходит логическое умножение значения ячеек C35 и G35 (ячейка C35 связана со значением показания счетчика включения устройства, в ячейке G35 содержится результат сравнения текущего времени и заданными данными начала и конца уроков)
Для принудительного включения звонка устройства создадим с помощью панели «Формы» еще один счетчик, настроим ограничения и свяжем его с ячейкой В36 и в содержимое ячейки G35=ЕСЛИ(ИЛИ(H35=P8;H35=P10;H35=P12;H35=P14;H35=P16;H35=P18;H35=P20;H35=Q8;H35=Q10;H35=Q12;H35=Q14;H35=Q16;H35=Q18;H35=Q20;H35=I35;B35=B36);1;0) занесем сравнение B35=B36, предварительно записав в ячейку B35 =1
Из Формулы видно при выполнении условия B35=B36, ячейка G35 примет значение 1, т. е. выполняется условие для включения звонка.

Блок схема устройства

Это часть работы выполнена с использованием встроенных в Excel функций, теперь вторая часть с использованием макросов, предварительно разрешаем макросы в Excel.
Текст макроса:

Option Explicit 'Объявление библиотеки для работы с параллельным портом
Private Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (By
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Запуск программы Часы (Clock)
Clock
End Sub
__________________________________________________________________________________________
Sub Clock() 'Часы-подпрограмма
Do While ActiveSheet.Name = "Лист1" 'пока активен "лист1"
If Timer = Int(Timer) Then 'в каждую секунду
Range("B8") = Now() 'в ячейку В8 заносится текущее системное время
If Range("D35") = 1 Then Out &H378, 8 'если значение ячейки D35 равно 1, то по адресу &H378 заносится 8 (00001000)
DoEvents 'делай событие
End If
Out &H378, 0 ' в регистр параллельного порта заносится 0, т.е. стираем нашу 8
Loop
End Sub
Далее описание макросов:
В первой части объявляется библиотека для работы с параллельным портом. В виду того, что не все операционные системы содержат библиотеку, необходимо установить файл inpout32.dll в папку C:\WINDOWS\system32
Во второй части происходит запуск программы Часы (Clock)

И наконец код подпрограммы Clock().

Sub Clock() 'Часы-подпрограмма
Do While ActiveSheet.Name = "Лист1" 'пока активен "лист1"
If Timer = Int(Timer) Then 'в каждую секунду
Range("B8") = Now() 'в ячейку В8 заносится текущее системное время
If Range("D35") = 1 Then Out &H378, 8 'если значение ячейки D35 равно 1, то по адресу &H378 заносится 8 (00001000)
DoEvents 'делай событие
End If
Out &H378, 0 'в регистр параллельного порта заносится 0, т.е. стираем нашу 8
Loop
End Sub
Значение 1 в регистре параллельного порта хранится в течении 1 секунды, и по истечении этого времени она убирается записью в этот регистр 0.( к информации о необходимости в аппаратной части одновибратора).
Подпрограмма Clock проверяет значение ячейки D35, и при выполнении условия ("D35") = 1 появляется сигнал для подачи звонка.

Аппаратная часть устройства.
В нашей школе для этого устройства применяется компьютер 2001 года выпуска. Он долго не использовался, но был еще в рабочем состоянии. В нашем случае мы применяем возможности LPT порта данного компьютера. Так как данный порт используется редко, необходимо убедится в наличии в операционной системе программы для работы с LPT портом, т.е. наличии файла inpout32.dll в папке system и при необходимости вставить этот файл (предварительно скачав из интернета).
С учетом того, что в перспективе мы хотим что-либо считывать с порта, то нам необходимо переключить режим работы этого порта компьютера в режим EPP (Enhanced Parallel Port - режим двунаправленной передачи данных). Это делается в BIOS. Во время загрузки компьютера когда появится надпись Press DEL to enter setup, нажать DEL, чтобы попасть в меню BIOS. Затем выбираем раздел INTEGRATED PERIPHERALS и там выбираем строку PARALLEL PORT MODE: изменяем режим работы порта на EPP или SPP/EPP. Сохраняем сделанные изменения. Если же на Вашем компьютере нет режима EPP, то Вы сможете только передавать данные, в данном случае достаточно и этого режима.
Параллельный порт для связи с принтером (или другим устройством) имеет базовый адрес &H378 (LPT1), &H278 (LPT2), &H3BC (LPT3). В нашем компьютере всего один  LPT порт - LPT1. Адресное пространство порта занимает диапазон &H378-&H37F (в шестнадцатеричном виде). Адрес &H378 называется базовым и служит для передачи или чтения данных (в нашей программа по этому адресу записывается число 8 (строка-
Out &H378, 8 нашей программы).
Через контакты 2-9 разъема LPT-порта. Остальные адреса служат для передачи и приема управляющих сигналов к устройству и от устройства подключенного к этому порту (принтер, сканер и т.д.), в данном случае они не используются и нас не интересуют.
Использовались две программы: splan_7_portable_rus и SLayout-5rus. Первая позволяет рисовать принципиальные схемы, а вторая составлять печатные монтажи. Обе программы бесплатные и доступны всем.


Принципиальная схема аппаратной части, составленная с помощью программы splan_7_portable_rus.
Разберем работу схемы:
Сигнал с LPT порта поступает через ограничительные резисторы R1-R8 330 Ом на светодиоды VD1-VD, которые позволяют визуально проследить прохождение сигнала через порт. (светодиод светится).




Далее сигнал поступает на одновибратор выполненный на микрсхеме К155ЛА3, состоящий из четырех элементов 2-И-НЕ. Цепочка С1,R9 определяет длительность импульса одновибратора, при значениях с=1000 мкф и R= 1kOm длительность импульса составляет около 8 секунд.( При желании можно изменить подбором значений емкости конденсатора С и сопротивления R).

Далее сигнал соответствующей длительности поступает через ограничительный резистор
на базу транзистора КТ817А и открывает его, срабатывает реле Rel 1 и замыкает контакты. Контакты реле подсоединении параллельно кнопке включения звонка и таким образом звонок будет включен в течение времени, определяемого длительностью сигнала одновибратора.



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

Хотя есть недорогие китайские реле на 5 Вольт и с контактами на 220 Вольт и током на 10 Ампер. В последующем герконовое реле заменили на это реле. За год эксплуатации он показал себя с лучшей стороны.

Для правильной работы порта необходимо уточнить адреса LPT порта в БИОС. Для этого при включении компьютера заходим в БИОС, (в зависимости от компьютера клавиша «DELETE» или другая служебная клавиша), находим раздел для COM и LPT портов (Serial и Parallel портов), уточняем адрес Parallel порта, в нашем случае 378Н и выставляем режим работы порта EPP. (для чтения и записи).







Печатная плата выполненная с помощью программы SLayout-5rus

Готовый к травлению фольгированный текстолит нужного размера


Для изготовления платы применялась технология ЛУТ.


Плата после травления в растворе хлорного железа

Монтажная плата с установленными деталями, за неимением реле на 5 вольт, применяется герконовое реле ( справа с доидом в качестве защиты от напряжения самоиндукции)


3.Заключение.
Это было первое устройство, разработанное в кружке. Оно применялось в школе в течении учебного года. Затем были разработаны такие же устройства с применением языка программирования VB, совмещенное устройство для подачи школьных звонков с функцией автоматического проведения утренней зарядки в школе. В настоящее время для подачи школьных звонков используется устройство на микроконтроллере Atmega 8, также разработанное силами кружковцев. (см. последующие публикации).
Несмотря на то, что LPT порт устарел и его возможности сейчас применяются редко, простота его программирования и использования в тех или иных устройствах дает возможность практического использования его возможностей при изучении раздела программирования и устройства компьютеров на уроках информатики в средней школе. Данное устройство может найти практическое применение для подачи звонков в школах, хотя его возможности не ограничиваются только этим. Сам принцип управления этим портом (запись и чтение регистра порта, а также состояния управляющих щин порта) дает возможность конструирования устройств с обратной связью, таких как автоматическое поддерживание тех или иных параметров конкретной системы. (Пример: автоматическое поддерживание температуры и влажности в замкнутой системе, автоматическое включение освещения в зависимости от освещенности и т.д.)
В ходе работы над данным устройством учащиеся ознакомились с практическим применением программ для рисования принципиальных схем, с программой для трассировки печатных плат, способами изготовления печатного монтажа, травления плат и с паяльными работами.
Приложение 1:
Таблица 1 – Функции даты-времени в Microsoft Excel 2007
Функции
Английский эквивалент
 Комментарий

Определения

ТДАТА()
NOW
текущих даты и времени в формате даты и времени

СЕГОДНЯ ()
TODAY
текущей даты в формате даты

Преобразования в код даты-времени MS Excel

ДАТА(гггг;мм;дд)
DATE
из числового формата

ДАТАЗНАЧ("дд.мм.гггг")
DATEVALUE
из текстового формата

ВРЕМЯ (чч;мм;сс)
TIME
из числового формата

ВРЕМЗНАЧ("чч:мм:сс")
TIMEVALUE
из текстового формата

 Выделения из кода

ГОД(дата)
YEAR
года - целое число от 1900 до 9999

МЕСЯЦ(дата)
MONTH
месяца - число от 1 до 12

ДЕНЬ(дата)
DAY
даты месяца - число от 1 до 31

ЧАС(время)
HOUR
часа в виде числа от 0 до 23

МИНУТЫ(время)
MINUTE
минут в виде числа от 0 до 59

СЕКУНДЫ(время)
SECOND
секунд в виде числа от 0 до 59

Вычисления

ДЕНЬНЕД(дата;тип)
WEEKDAY
номера дня недели для заданной даты

ДНЕЙ360(дата1;дата2)
DAYS360
количества дней между датами

ДОЛЯГОДА(дата1;дата2)
YEARFRAC
доли года, между двумя датами

ДАТАМЕС(дата;N)
EDATE
даты, отстоящей от указанной на N месяцев

КОНМЕСЯЦА(дата;N)
EOMONTH
даты последнего дня месяца, отстоящего на N месяцев

НОМНЕДЕЛИ(дата)
WEEKNUM
номера недели года с указанной датой

РАБДЕНЬ(дата;N)
WORKDAY
даты, отстоящей от указанной на N рабочих дней

ЧИСТРАБДНИ(дата1;дата2)
NETWORKDAYS
количество рабочих дней между двумя датами


Приложение 2.
Рези
·стор ([ Cкачайте файл, чтобы посмотреть ссылку ] resistor, от [ Cкачайте файл, чтобы посмотреть ссылку ] resisto  сопротивляюсь)  пассивный элемент электрической цепи, в идеале характеризуемый только сопротивлением электрическому току, то есть для идеального резистора в любой момент времени должен выполняться [ Cкачайте файл, чтобы посмотреть ссылку ]: мгновенное значение [ Cкачайте файл, чтобы посмотреть ссылку ] на резисторе пропорционально [ Cкачайте файл, чтобы посмотреть ссылку ] проходящему через него .
Светодио
·д или светоизлучающий [ Cкачайте файл, чтобы посмотреть ссылку ] (СД, СИД, LED [ Cкачайте файл, чтобы посмотреть ссылку ] Light-emitting diode)  [ Cкачайте файл, чтобы посмотреть ссылку ] с электронно-дырочным переходом, создающий [ Cкачайте файл, чтобы посмотреть ссылку ] при пропускании через него электрического тока.
Транзи
·стор ([ Cкачайте файл, чтобы посмотреть ссылку ] transistor), полупроводниковый триод  [ Cкачайте файл, чтобы посмотреть ссылку ] компонент из [ Cкачайте файл, чтобы посмотреть ссылку ] материала, обычно с тремя выводами, позволяющий входным сигналом управлять током в электрической цепи. Обычно используется для усиления, генерации и преобразования электрических сигналов.
Симиcтop (симметричный триодный [ Cкачайте файл, чтобы посмотреть ссылку ]) или триак (от [ Cкачайте файл, чтобы посмотреть ссылку ] TRIAC triode for alternating current)  полупроводниковый прибор, являющийся разновидностью [ Cкачайте файл, чтобы посмотреть ссылку ] и используемый для коммутации в цепях [ Cкачайте файл, чтобы посмотреть ссылку ]. В [ Cкачайте файл, чтобы посмотреть ссылку ] часто рассматривается как управляемый [ Cкачайте файл, чтобы посмотреть ссылку ].
Реле
· ([ Cкачайте файл, чтобы посмотреть ссылку ] relais)  электрическое устройство ([ Cкачайте файл, чтобы посмотреть ссылку ]), предназначенное для замыкания и размыкания различных участков [ Cкачайте файл, чтобы посмотреть ссылку ] при заданных изменениях электрических или неэлектрических входных величин. Различают электрические, механические и тепловые реле.
Микросхема к155ла3 представляет собой четыре логических элемента 2И-НЕ.
( логическое умножение и отрицание)

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



Рисунок 0Рисунок 2Рисунок 4Рисунок 5Рисунок 6Њ 
·
·
·
·
·
·
·
·
·
·
·
·
·
·5
·
·
·
·
·
·
·
·
·
·
·q
·
·
·
·
·J
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·#
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Ї
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·.
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·Рисунок 16Рисунок 9Рисунок 19Рисунок 21Рисунок 20Рисунок 26Рисунок 28Рисунок 37Рисунок 30Рисунок 31Рисунок 33ђ Заголовок 1ђ Заголовок 2ђ Заголовок 3ђ Заголовок 4ђ Заголовок 5ђ Заголовок 6ђ Заголовок 7ђ Заголовок 8ђ Заголовок 915