Электронные устройства для "Sinclar ZX Spectrum" 1993 г.

Устройства ввода - измеритель освещенности. Система для цветной печати. Световое перо.


3.6. ИЗМЕРИТЕЛЬ ОСВЕЩЕННОСТИ

Если подключить фоторезистор (LDR) к одному из входов АЦП и произвести
калибровку, то получим измеритель освещенности, спектральная чувствительность
которого может иметь различные применения.

На рис. 3.3. изображена схема включения фоторезистора. Фоторезистор более
подходит для использования в измерителе освещенности (фотометре), чем солнечный
элемент для которого требуется усилить сигнал прежде чем подать его на вход АЦП,
работающего в диапазоне от 0 0 до 10 В. При изменении сопротивления фоторезистора
от 20 Ом (на свету) до 200 кОм (в темноте) напряжение поступающее на вход АЦП
от изображенной схемы изменяется от 0 до 9 В. Перевод этого напряжения в люмены
или другие единицы производится по формуле пересчета. Формула находится при
сравнении показаний с показаниями эталонного фотометра и может быть записана в
программе, например в таком виде:

Y-IN24*X/255

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

10 LET YS - 4.LET XS - LET CS - 8: LET Y - 100:
LET D$ - STR $ IN24: GOSUB 9390.

20 GOTO 10

соответственнно в STR $ можно использовать и калибровальную величину Y.

Фотометр может быть построен и на двух других типах светочувствительных
элементов: фотодиоде и фототранзисторе. На рис 3.3 показано как подключить эти
приборы. Фотодиод включается в обратной полярности, а нагрузочный резистор
подбирается для получения выходного напряжения подходящего для работы АЦП.
Фототранзистор подключается по схеме с "оборванной" базой, коллектор и эмиттер
подключаются стандартно, когда эмиттер заземлен. Нагрузочный резистор всегда
приходится подбирать, поскольку все фоточувствительные приборы по разному pea-
гируют на освещенность, цвет и дают разный выходной ток. Резистор подбирается с
помощью программы приведенной в разделе 3.4 до тех пор пока не будет получен
верный входной сигнал. Показания могут быть откалиброваны, если это необходимо,
путем использования подходящей формулы.

В начале этого раздела упоминалось о спектральной характеристике фоторезито-
ра. Большинство оптоэлектронных приборов более чувствительны к красной части
спектра и, особенно, к инфра-красной. Это делает их веема подходящими для исполь-
зования в устройствах на невидимых лучах, таких, например, как охранная сигнали-
зация. В то же время они могут применяться в устройствах использующих белый свет.
Если спектральная чувствительность эажна, как например в фотографии, то из всех
приборов более всего подходит фотодиод, особенно типа BPW21, который имеет
спектральную чувствительность чёловеческогоздаза. Этот прибор может быть ис-
пользован для измерения интенсивности света такках лрказано на рис.3.3. Однако он
невыгоден из-за своей цены; которая в 3 раза выше 46MORP12.

Более дешевый фотодиод можетбыть получен из германиевого или кремниевого
фототранзистора, еслиодпючить efb как показано на рй&З.З. С резистором в цепи
коллектора эта схема даепг на выше АЦП от 150 (в темноте) до 20(на свету). Многие
фототранзисторы используются соборванной цепью баз&н как фоторезисторы чув-
ствительны к красному краю спектра.

3.7. СИСТЕМА ДЛЯ ЦВЕТНОЙ ПЕЧАТИ

Энтузиастам фотографий;Гфояв^ющим че$»ИО^елые и цветные пленки может
быть полезен фотомер описанный й ]^аз;^е 3^6 н^гаймер с секундными и/или минут-
но-секундным отсчетом. Показания фотометра могут отображаться на экране TV
вместе с показаниями таймера. Кроме того окончание заданного интервала времени
может отмечаться звуковым сигналом.

Те пользватели, кому нужен маймер только с секундным отсчетом могут исполь-
зовать следующую прогамму:

LOAD "LARGE" и затем MERGE следующее:
10 РОКЕ 23672,0: РОКЕ 23693,0: РОКЕ 23674,0

20 LET Т - INT ((65536+РЕЕК 23674+256+РЕЕК 23673+РЕЕК 23672) /50)
30 LET YS - 4: LET XS - 4: LET CS - 8: LET Y - 100: LET D$ -

STR $T : GOSUB 9390— -=- -=r_ — - - -

40 GOTO 10 , j? ' -b : ; ^

Те, кому з^жньГминуты и секунды могут испольЗСюатьпрограмму: щг
LOAD "WRGW и затем MERGE следующие строки: ,г,_ ; 'Р' =
5 LET М-0: LET S-0
10 как и в предыдущей программе
20 LET Т - как и в предыдущей программе
30 IF S-59 THEN CLS
40 LET M - INT (Т/60): LET S - T- (M+60)
50 LET YS - 4 : LET XS - 4: LET CS - 8 : LET Y - 10: LET D$ -

STR$M: GOSUB 9390
60 LET Y-100: LET D$ - STR$S : GOSUB 9390
70 GOTO 20

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

Следующая сторка может быть включена в предыдущие программы для генерации
звукового сигнала после, например, 90 секундной выдержки:
45 IF М - 1 AND S - 30 THEN ВЕЕР 1,10

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

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

Ниже приведена программа обрабатывающая сигналы от трех фотоприемников
(описанных в разделе 3.6) подключенных ко входам АЦП с адресами 24, 25 и 26.

10 РОКЕ 23672,0: РОКЕ 23673,0: РОКЕ 23674,0

11 LET ш-0: LET s-0

20 LET t-INT ((65536*PEEK 23674+256*PEEK 23673+PEEK 23672) /50)
30 IF s-59 THEN CLS
40 LET m-INT (t/60): LET s-t- (m*60)
45 IF s-20 THEN BEEP 1,10

50 LET ys-4 LET: xs-4: LET cs-8: LET y-10: LET d$-STR$ m: GO SUB 9390
60 LET y-100: LET d$-STR$ s: GO SUB 9390
70 FOR z-1 TO 3

80 LET ys-2: LETxs-2: LET y-1 50: LETx-20f(70*(z-l)): LET d$-

STR$ IN (23+z): INK (z+1): GO SUB 9400: INK 0
90 NEXTz
100 GO TO 20

9390 LET x-(256-xs*cs*LEN d$)/2

9400 LET a-23306: POKE a,x: POKE a+1 ,y: POKE a+2,xs: POKE a+3,ys
:POKE a+4,cs: LET a-a+4: FOR i-1 TO LEN d$: POKE a+i,CODE
d$(i) : NEXT i: POKE a+i,255: RANDOMIZ E USR 32256: RETURN
Для компенсации различия в спектральной чувствительности фоторезисторов опе-
ратор STR$ может быть изменен:
STR $ IN (23+Z) *W/255

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

3.8. СВЕТОВОЕ ПЕРО

Картинки и графики могут быть нарисованы на экране различными методами.
Могут непосредственно использоваться команды PRINT AT, PLOT, DRAW, и некото-
рые другие. С помощью джойстика можно выводить точки (PLOT) на экран. А
световым пером можно рисовать картинки непосредственно на экране для последую-
щей ссылки. Например некоторая обучающая программа может попросить иденти-
фицировать объект изображенный на экране. Ответить на вопрос можно коснувшись
световым пером соответствующего изображения на экране.

Световое перо не что иное как фотометр описанный в разделе 3.6 за исключением
того, что он помещен в трубку для концентрации света от небольшой проверяемой
области экрана. Световое перо подключается ко входу 7 платы АЦП и с помощью
соответствующей программы сигнал от светового пера вводится в СПЕКТРУМ.
Порядок работы светового пера следующий:

1. Экран гасится.

2. Белая линия сканирует экран сверху вниз, достигает позиции светового пера,
которое детектирует эту линию и определяет Y (вертикальную) координату своего
положения. Значение Y сохраняется в памяти.

4. Экран гасится.

5. Белая линия сканирует здрШсйева наггразо^детектируется световым пером. Так
определяется координата ^горизонтальная) светового пера. Значение X также со-
храняется в памяти. .. -;- -=-„,'-

6. Восстанавливается нормальный цвет экрана, например белый, и в позиции с
координатами (X,Y) выводится символ (например

Процесс создания изображенияна экране состоит ^ последовательном выводе
отдельных точек. Перед выводов/очередной точки программа в машинных кодах
сохраняет картинку в памяти, программа сканирования экрана определяет координа-
ты X,Y очередной точки указанной&ветовым пером, после чего на экране восстанав-
ливается изображение сохраненное в памяти и добавляется точка с координатами
(X,Y).

Далее приведены две альтернативных программы для управления световым пером:

1. Написанная на БЕЙСИКЕ с использованиёмг подпрограммы в машинных кодах.

2. Использующая только машйнныё'ходы;

Листинг программы на БЕЙСИКЕ:

10 CLEAR 44500

15 LET а-0: LET b-0

20 FOR хЧ) TO 41

30 READ n

40 POKE (65240+x),n______________

50 NEXTx *-_ ^ " - ""i V 4

60 DATA 17,215*227,33,0,64,6,27,197,6,0,126,18,19,35,16,249,19
3,16,244,201

70 DATA 17,0,64,33,215,227,6,2 7,197,6,Oil 26;l8,19,35,16,249,19

3,16,244,201

80 CLS: PRINT "Press any key" : PAUSE 0

90 LET 1-USR 65240

100 PAPER 0: INK 7: CLS

110 FOR x-21 TO 1 STEP -1

120 PLOT 0,8*x: DRAW 255,0

130 IF IN 65503<-10 THEN LET a-x: GO TO 150

140 NEXTx

150 CLS

160 FOR y-1 ТО 31

170 PLOT 8*y,0: DRAW 0,175

180 IF IN 65503<-l 0 THEN LET b-y: GO TO 200

190 NEXT у

200 INK 0: PAPER 7: CLS

210 LET 1-USR 65261

220 PRINT AT (21 -a) ,b;" "

230 PRINT AT 0,0;"Press any key to draw"

240 PAUSE 0: GO TO 90

Строки 10-70 - это подпрограмма в машинных кодах которая сохраняет картинку
в памяти и вновь выводит ее на экран.

Строка 80 - ожидание нажатия любой клавиши.
Строка 90 - сохранение картинки в памяти.
Строка 100 - гашение экрана.
Строки 110-140 - вертикальное сканирование.
Строки 160-190 - горизонтальное сканирование.

Строки 130 и 180 - определяется позиция светового пера подключенного ко входу
АЦП с адресом 30.

Строка 200 - восстановление белого цвета экрана.
Строка 210 - восстановление картинки на экране.
Строка 220 - вывод символа "0" с координатами (X,Y).
Строки 230 и 240 - запрос на вывод следующей -.очки.

Конструкция светового пера может быть любой. Соединительные провода должж-
ны быть длиной около 1 метра. Фоторезистор и фотодиод должен быть минимально
возможного размера (BPW 21 или BPW 65 подходят).

Ниже приведен листинг быстрой программы в машинных кодах. Алгоритм по
которому работает эта программа аналогичен алгоритму предыдущей программы на
БЕЙСИКЕ, исключая метод сканирования.

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

Листинг программы сканирования в машинных кодах:

Mnemonic Decimal Comments

Id hi,22528 33 (65 282)

0
88

Id c,255 14

255

Id e,22 30

22

Id d,32 22

Id (hi) ,c 113

in a (30) 219 . Ввод данных

30 . светового пера
sub 40 214 . Тест

40 . сканирования

jp m,65311 250

31

-"-У» -">

inc(hl) -35 " ; - , :

Id b,255 . .. 6 . 300)

255 . Задержка

dec b . : V 5 / / . . >

jr nz,-3 ; 32 й;-=

253 ; .

dec d 21 ^ > . Л

jr nz-17 ' 32

^ 239 .

dec e 29

jr nz-22 32 ;.:

234

Id c,d 122 (65 311)

Id 63744,a 50

1

249

ret 201 (65 319)

Координаты X,Y помещаются в ячейки памяи с адресом 63744 и 63745, которые
читает п]юрамма на БЕЙСИКЕ выводящая символ в указанную точку экрана.

Необходимо внимательно слёдитьза 1ём, щобы^вето^ое перо бьшшпрйжато к
экрану бё&зазора. Вели световое деро несколько отнести отэкрана, Щ оно будет
реагировать на смежные сгрокйили на отражений От экрана ТУ. Разумно также
уменьшить Зкещн£е осШцениеШяркость свечения жрана TV- X

Сканирование может быть выполнено за несколько миллисекунд, но за это время
электронный луч, создающий картинку на экране TV просканирует только часть
экрана. Стандартная частота TV развертки целого кадра 50 Гц. Поэтому скорость
сканирования в программе замедляется с помощью цикла задержки. Для увеличения
скорости сканирования (если это требуется) число 255 загружаемое в регистре В
можно уменьшить.

В приведенной ниже программе на БЕЙСИКЕ строки 60 и 70 содержат подпрог-
рамму в машинных кодах для сохранения и восстановления картинки аналогичную
ранее использованной. Строка 80 содержит приведенную выше программу сканиро-
вания в машинных кодах; остальное очевидно.

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

95 LET A$ - " "
и заменить строку 160

160 PRINT AT0.0; "PRESS ТО DRAW": LET A$-INKEY$:
IF A$-" " THEN GOTO 160:GOTO 100

5 LET p-0: LET z-0
10 CLEAR 44500
20 FOR x-0 TO 79
30 READ n
40 POKE (65240+x),n
50 NEXTx

60 DATA 17,215,227,33,0,64,6,27,197,6,0,126,18,19,35,16,249,19
3,16,244,201

70 DATA 17,0,64,33,215,227,6,27,197,6,0,126,18,19,35,16,249,19
3,16,244,201

80 DATA 33,0,88,14,255,30,22,22,32,113,219,30,214,40,250,31,25
5,35,6,255,5,32,253,21,32,239,29,32,234,122,50,0,249,123,50,
1,249,201

90 CLS: PRINT "Press any key": PAUSE 0

100 LET HUSR 65240

110 PAPER 0: INK 7: CLS

120 LET l-USR 65282

130 INK 0: PAPER 7: CLS

140 LET 1-USR 65261

150 PRINT AT 21-(PEEK 63745),31-(PEEK 63744);" "
160 PRINT AT 0,0;"Press any key to draw": PAUSE 0: GO TO 100




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Здесь был ты - Повелитель зубов: пародия на одну популярную трилогию...
От авторов - Восьмой номер не заставил себя долго ждать.
TOP 5 - пятерка лучших игр.
Новости - Ну сначала расскажу о себе любимом. :)
Юмор - Анекдоты, приколы, афоризмы...

В этот день...   21 ноября