2010 07 Old Time Player

background image

Wielu z nas swoją przygodę z elektroniką
rozpoczynała od układów audio. To ogromna
satysfakcja słuchać muzyki z samodzielnie
poskładanego wzmacniacza, na własnoręcz-
nie zbudowanych kolumnach głośnikowych.
Gdyby tak jeszcze odtwarzacz audio do kom-
pletu też samemu skonstruować...

Urządzenie, które pragnę zaprezento-

wać, łączy w sobie funkcję wzmacniacza i
kolumny głośnikowej, ale przede wszystkim
cyfrowego odtwarzacza plików muzycznych.
A wszystko to w starej stylowej obudowie

lampowego odbiornika radiowego. Model ten
zbudowałem jako rozwiązanie zadania numer
163 Szkoły Konstruktorów, którego tematem
było: „Wykorzystanie starego komputera”.
A stary komputer PC 486 jest zasadniczą
częścią mojego odtwarzacza. Współpracując
z modułem sterowania opartym na nieco
młodszym procesorze od firmy Atmel, tworzą
razem zgrany duet.

Rozwiązania, które zastosowałem są nie-

typowe, ale mam nadzieję, że zainspirują
do działań. Omawianie konstrukcji zacznę
niejako od tyłu – od obudowy. A przechodząc
przez wszystkie elementy, dojdę do źródła...
sygnału audio, rzecz jasna

☺. W drugiej

części omówię w skrócie zastosowane przeze
mnie oprogramowanie.

Konstrukcja urządzenia

Obudowa

. Jakiś czas temu wszedłem w posia-

danie resztek radioodbiornika Pionier, pocho-
dzącego z lat 50. ubiegłego wieku. Obudowa
była w bardzo złym stanie. Wewnątrz były
resztki chassis i niekompletne gałki. Nie
było głośnika. Zachowała się za to oryginal-
na szybka ze stacją… Stalinogród na skali!
Obudowę odnowiłem – musiałem ją pokle-
ić, poszpachlować, uzupełnić ubytki forni-
ru i polakierować. W trakcie tej renowacji
myślałem o wmontowaniu do środka jakiegoś
radyjka, ale przy okazji tematu zadania Szkoły
Konstruktorów wpadłem na bardziej szalony
pomysł zbudowania stylowego odtwarzacza
muzycznego.

Moduł sterowania.

Odbiornik Pionier ory-

ginalnie miał dwie gałki. Jedna do regula-
cji głośności, druga do strojenia. W mojej
konstrukcji pierwsza gałka pełni taką samą
funkcję jak w oryginale, czyli wyłącznik i
regulacja głośności. Pozostała druga gałka to
jednak za mało do sterowania odtwarzaczem.
Zdecydowałem się dorobić dodatkową – trze-
cią. Na fotografii 1 widoczne są szczegóły

konstrukcji modułu sterowania, umieszczo-
nego na dość dużej płytce drukowanej. Dolną
część tej płytki zajmują przełączniki gałek.
Ich konstrukcję w zbliżeniu prezentuje foto-
grafia 2
. Przełączniki są sterowane poprzez
obrót wałków, wykonanych ze skróconych
gwoździ. Na wałki te nałożyłem tuleje ze
śrubkami (wyjąłem je z dużej elektrycznej
kostki zaciskowej). Właśnie te śrubki naciska-
ją na odpowiedni przełącznik przy obrocie osi
w lewo lub w prawo. Ponadto wałki-gwoździe
opierają się na mikroprzyciskach przyluto-
wanych bezpośrednio do płytki modułu ste-
rowania i załączają je po naciśnięciu. Wałki
obracają się swobodnie w tulejkach wkle-
jonych distalem w kawałek pleksi. A pleksi
przykręciłem, poprzez tulejki dystansowe, do
płytki – w pewnej odległości od niej.

Większy dylemat miałem z wyświetla-

czem. Jak to zrobić, aby nie zepsuć orygi-
nalnego wyglądu radioodbiornika? Na środ-
ku skali umieściłem obrotową wskazówkę
– prawie jak w oryginale, a poniżej 8 sekcji
wyświetlacza 7-segmentowego LED. Są one
ukryte za maskownicą wykonaną z brązo-
wego papieru. Gdy są wyłączone, na skali
widać tylko wskazówkę, gdy zaś są włączone
– widać tylko aktywne czerwone segmenty,
które ciekawie kontrastują z zielonymi napi-
sami na skali i żółtawym podświetleniem (bo
szybkę ze skalą podświetliłem – oczywiście
żarówką).

Zasadniczą funkcję w module sterowa-

nia pełni mikrokontroler ATmega8. Odbiera
on poprzez port szeregowy od komputera
dane do wyświetlania. Do konwersji poziomu
napięć interfejsu RS232 wykorzystałem pro-
sty układ z tranzystorem i diodą Zenera – roz-
wiązanie takie stanowi alternatywę dla układu
MAX232. Dzięki taktowaniu mikrokontrole-
ra zegarem 11,0592MHz zminimalizowałem
ryzyko błędów transmisji. Wyświetlacze LED
są multipleksowane, a do sterowania anodami

15

Lipiec 2010

Lipiec 2010

Projekty AVT

#

#

#

#

#

#

#

#

#

Old Time Player

Old Time Player

Fot. 1

Fot. 2

background image

wyświetlacza wykorzystałem rejestr przesuw-
ny – dla 8 sekcji wyświetlacza to oszczędność
6 portów procesora.

Widoczna na fotografii 1 biała plama nad

wyświetlaczem to wklejona distalem rurka,
stanowiąca oś dla wspomnianej wcześniej
analogowej wskazówki. Do jej obracania
wykorzystałem silnik krokowy, pochodzący
ze starej stacji dyskietek 3,5 cala. Ponieważ
taki silniczek po wymontowaniu traci swoją
geometrię, wyciąłem cały fragment napędu
głowic ze stacji. Mechanizm ten przykrę-
ciłem na plecach dużej płytki. W miejsce

głowicy stacji dyskietek
przykręciłem popychacz
(wygięty ze spinacza biuro-
wego). Popychacz przesu-
wa wskazówkę za pomocą
krzywki. Krzywka ta została
przykręcona do osi wska-
zówki zaciskiem śrubowym
wydłubanym z małej elek-
trycznej kostki zaciskowej.
Szczegóły tego rozwiązania
są widoczne na fotografii 3.
Mechanizm taki jest prosty i

skuteczny. Dodatkowo na wyciętym fragmen-
cie stacji dyskietek znajduje się oryginalny
wyłącznik krańcowy – transoptor szczelino-
wy. Wykorzystałem go, odczytując napięcie
na jego fotoelemencie za pomocą przetworni-
ka A/C mikrokontrolera.

Na płytce modułu sterowania zabrakło

miejsca na sterowanie silnikiem krokowym.
Sterownik ten, w moim wykonaniu, to dwa
mostki H – razem 12 tranzystorów. Wraz
z gniazdem programowania mikrokontrolera

Rys. 3 Skala 50%

Projekty AVT

Elektronika dla Wszystkich

MEGA8-P

H

D

-K

1

2

1

H

D

-K

1

2

1

H

D

-K

1

2

1

H

D

-K

1

2

1

BC327

BC327

BC327

BC327

BC327

BC327

BC327

BC327

100n

33p

33p

10k

10k

10k

10k

10k

10k

10k

10k

2

2

0

R

220R

220R

220R

220R

220R

220R

4k7

74HC164N

+5

V

+5

V

+5

V

+5

V

+5

V

+5

V

+5

V

+5

V

+1

2V

+1

2V

+5

V

+5

V

4k7

4k7

1

0

k

9

v

1

BC546A

RS-232

CZUJNIK

ZASILANIE

+5

V

+5

V

STEROWNIK

+5

V

+5

V

+5

V

1

0

0

k

+5

V

4k7

1

k

5

220n

100n

PB5(SCK)

19

PB7(XTAL2/TOSC2)

10

PB6(XTAL1/TOSC1)

9

GND

8

VCC

7

AGND

22

AREF

21

AVCC

20

PB4(MISO)

18

PB3(MOSI/OC2)

17

PB2(SS/OC1B)

16

PB1(OC1A)

15

PB0(ICP)

14

PD7(AIN1)

13

PD6(AIN0)

12

PD5(T1)

11

PD4(XCK/T0)

6

PD3(INT1)

5

PD2(INT0)

4

PD1(TXD)

3

PD0(RXD)

2

PC5(ADC5/SCL)

28

PC4(ADC4/SDA)

27

PC3(ADC3)

26

PC2(ADC2)

25

PC1(ADC1)

24

PC0(ADC0)

23

PC6(/RESET)

1

IC1

1

8

2

1

5

1

6

D

IS

1

3

1

1

7

9

1

2

6

1

0

11

1

3

8

5

7

1

4

d

p

1

d

p

2

a

1

b

1

c

1

d

1

e

1

f1

g

1

a

2

b

2

c

2

d

2

e

2

f2

g

2

C

A

1

C

A

2

4

1

8

2

1

5

1

6

D

IS

2

3

1

1

7

9

1

2

6

1

0

11

1

3

8

5

7

1

4

d

p

1

d

p

2

a

1

b

1

c

1

d

1

e

1

f1

g

1

a

2

b

2

c

2

d

2

e

2

f2

g

2

C

A

1

C

A

2

4

1

8

2

1

5

1

6

D

IS

3

3

1

1

7

9

1

2

6

1

0

11

1

3

8

5

7

1

4

d

p

1

d

p

2

a

1

b

1

c

1

d

1

e

1

f1

g

1

a

2

b

2

c

2

d

2

e

2

f2

g

2

C

A

1

C

A

2

4

1

8

2

1

5

1

6

D

IS

4

3

1

1

7

9

1

2

6

1

0

11

1

3

8

5

7

1

4

d

p

1

d

p

2

a

1

b

1

c

1

d

1

e

1

f1

g

1

a

2

b

2

c

2

d

2

e

2

f2

g

2

C

A

1

C

A

2

Q1

Q2

Q3

Q4

Q5

Q6

Q7

Q8

C1

C2

C3

R1

R2

R3

R4

R5

R6

R7

R8

R

9

R10

R11

R12

R13

R14

R15

R16

R17

A

1

B

2

QA

3

QB

4

QC

5

QD

6

CLK

8

CLR

9

QE

10

QF

11

QG

12

QH

13

IC2

7

1

4

IC2P

G

N

D

V

C

C

Q9

R18

R19

R

2

0

D

1

Q10

1
2

JP2

1
2
3
4

JP3

1
2
3
4

JP1

1
2
3
4
5
6
7
8

JP4

R

2

1

1
2

PRZ/ESC

R22

R

2

3

C4

C5

4

11,0592MHz

LM317

LM317

100n

3

0

0

R

3

0

0

R

2k5

2k5

B

C

3

3

7

BC327

BC546A

2

k

2

k

2

k

2

k

2

k

2

k

2

k

BC327

B

C

3

3

7

2

k

2

k

BC546A

2

k

2

k

B

C

3

3

7

BC327

BC546A

2

k

2

k

2

k

2

k

2

k

BC327

B

C

3

3

7

2

k

2

k

BC546A

2

k

2

k

1

N

4

1

4

8

1

N

4

1

4

8

1

N

4

1

4

8

1

N

4

1

4

8

1
2

OUT1

1
2

OUT2

ADJ

IN OUT

U1

ADJ

IN OUT

U2

C1

R

1

R

2

A

E

S

P1

A

E

S

P2

1
2
3
4
5
6
7
8

UC

1

2

3

4

5

6

7

8

9

10

PROGRAMATOR

T3

T2

T1

1
2

J1

3

R

3

R

4

R

6

R

7

R

8

R

9

R

1

0

T5

T6

R

11

R

1

2

T4

R

1

3

R

1

4

T9

T8

T7

R

1

5

R

1

6

R

1

7

R

1

8

R

1

9

T11

T12

R

2

0

R

2

1

T10

R

2

2

R

2

3

D

1

D

2

D

3

D

4

1
2

OUT3

1
2

OUT4

Rys. 1

Fot. 3

Rys. 2

IC1

DIS1

DIS2

DIS3

DIS4

Q1

Q2

Q3

Q4

Q5

Q6

Q7

Q8

C1

C2

C3

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

R15

R16

R17

IC2

Q9

R18

R19

R20

D1

Q10

JP2

JP3

JP1

JP4

R21

JP6

R22

R23

C4

C5

background image

umieściłem go na osobnej płytce znajdu-
jącej się przy ściance bocznej. Ponadto na
płytce regulatora umieściłem dwa układy
LM317, umożliwiające regulację napięcia dla
zasilania wentylatorów chłodzących krytycz-
ne elementy we wnętrzu. Dzięki obniżeniu
napięcia wentylatory pracują wolniej, ale
ciszej. Schemat ideowy modułu sterownika
jest zaprezentowany na rysunku 1, a regula-
tora na rysunku 2.

Płytki drukowane zostały przeze mnie

zaprojektowane w programie Eagle, wyko-
nane metodą termotransferu, a po wytrawie-
niu zabezpieczone farbą IDEAvetro. Schemat
montażowy sterownika przedstawiony jest na
rysunku 3, a regulatora na rysunku 4.

Wnętrze skrzynki odtwarzacza.

Na foto-

grafii 4 widoczne jest wnętrze odtwarzacza.
Obie zielone płytki modułu sterowania zosta-
ły omówione szczegółowo powyżej. W dolnej
części sterownika przylutowana jest szara
taśma, służąca do sterowania, jej drugi koniec
podłączony jest do komputera. Czerwono-
-czarny przewód z kolei to magistrala szere-
gowa, po której od komputera wędrują infor-
macje do wyświetlenia. Nad płytką widoczna
jest rurkowa żarówka samochodowa 12V5W
oświetlająca skalę. Żarówka ta, podłączona
do 12V, świeciła zbyt mocno, a na 5V zbyt
słabo. W rezultacie podłączyłem ją pomiędzy
przewody 5V i 12V, a na powstałej różnicy
napięć (7V) świeci idealnie. Na prawo od
płytki sterownika znajduje się głośnik, przy-
kręcony od środka do maskownicy.

Płytka pod głośnikiem to komputerowy

zasilacz AT. Byłem zmuszony wymontować z
oryginalnej obudowy płytkę zasilacza, bo ina-
czej nie zmieściłbym się we wnętrzu. Jednak
nie zalecam takiego rozwiązania, ponieważ

na płytce zasilacza panuje nie-
bezpieczne napięcie sieciowe!

Z zasilacza kolorowe wiązki

przewodów (oryginalne) rozpro-
wadzają napięcia do wszystkich
elementów systemu. Jednym z
nich jest widoczny w prawym
górnym rogu wzmacniacz audio
– standardowa aplikacja na ukła-
dzie TDA2030. Sygnał do niego
jest doprowadzany z potencjome-
tru znajdującego się we wcięciu
dużej płytki sterownika. Jest to

starego typu potencjometr z wyłącznikiem,
który jednocześnie załącza napięcie sieciowe
dla zasilacza. A sygnał na potencjometr trafia
z karty muzycznej komputera...

Komputer.

Jako bazy do konstrukcji użyłem

blaszanego elementu starej obudowy desk-
top PC. W obudowach tego typu podstawa
płyty głównej i tylna ściana do przykręca-
nia kart rozszerzeń tworzyły jedną całość.
Wyciąłem fragment z takiej obudowy tak,
aby utworzyć tylną ściankę mojego odtwa-
rzacza. Do elementu tego przykręcona jest
płyta główna z procesorem 486DX133. Do
płyty włożyłem karty rozszerzeń: muzyczną,
sieciową oraz – tylko na potrzeby serwisowe
– graficzną. Ponadto do jednego ze slotów
ISA zamontowałem na kawałku laminatu
dysk twardy. Komputerowa tylna ścianka
zamontowana jest na stalowym gwintowanym
pręcie, który stanowi zawias. Odchylając w
bok tylną ściankę uzyskuje się dostęp do
elementów komputera oraz wnętrza skrzynki
odbiornika. Konstrukcja taka z odchylanym
chassis stosowana była w starych lampowych
telewizorach. Szczegóły tego rozwiązania są
widoczne na fotografii 5.

Działanie.

Na przedniej ściance urządzenia

znajdują się 3 gałki. Pierwsza z nich, najwięk-
sza, okrągła to potencjometr, który służy do
włączania i regulacji głośności. Po włączeniu
musi się załadować system operacyjny kom-
putera. Ale już po niespełna 20 sekundach
z głośnika zaczyna wydobywać się muzyka
(cóż – radio lampowe też musiało się rozgrzać
☺). Prawa gałka służy do zmiany odtwarza-
nego utworu: w lewo – poprzedni, w prawo
– następny. Ponadto naciśnięcie tej gałki
wstrzymuje/wznawia odtwarzanie. Środkową
gałką analogicznie można zmieniać albu-
my (katalogi). Natomiast naciśnięcie środ-

kowej gałki służy do zmiany trybu działania
wyświetlacza. Można wybrać sekwencyjnie
następujące tryby:
TIME – wyświetla czas bieżący utworu,
TITLE – nazwa wykonawcy i tytuł utworu
(z ID3tag),
ALBUM – tytuł albumu,
SONG NBR. – numer bieżącego utworu – i
liczba wszystkich,
SILENT – w trybie tym sygnalizowana jest
tylko zmiana utworu i albumu jednorazowym
jej wyświetleniem,
DISP. OFF – wyświetlacz całkiem wyłączony
(jest dostępne tylko wskazanie analogowe

☺).

Dłuższe przytrzymanie tego przycisku restar-
tuje program odtwarzający muzykę.

Urządzenie zapamiętuje ostatnio wybrany

tryb wyświetlania. Odczytywanie napisów
przewijanych na takim wyświetlaczu wymaga
pewnej wprawy, ale jest wystarczająco czy-
telne. Zajmująca centralną pozycję za szybką
skali wskazówka pokazuje postęp słuchania
– z każdym utworem przesuwa się w prawo,
pokazując proporcjonalnie pozycję wśród
odnalezionych na dysku plików audio.

Ale co zrobić, gdy muzyka z dysku się

znudzi? Wystarczy podłączyć do wbudowa-
nej karty sieciowej kabel Ethernet lokalnej
sieci (lub skrosowany kabel do komputera)
i połączyć się z urządzeniem za pomocą
dowolnego klienta FTP. Wymiana plików
może następować w trakcie odtwarzania.
Odtwarzacz świetnie sobie radzi z wszelkimi
typami plików audio (mp3, aac, flac, wav i
wiele innych).

I jeszcze jedna zaleta DOS-a – nie trzeba go

zamykać. Zatem odtwarzacz wyłączamy prze-
kręcając gałkę potencjometru/wyłącznika.

Oprogramowanie

urządzenia

Oprogramowanie odtwarzacza PC

. Istnieje

mnóstwo programów do odtwarzania muzyki
na PC, np. WinAmp, Foobar. Niestety pracują
one w systemie Windows, a ten niezbyt dobrze
nadaje się do pracy bez myszy i klawiatury.
Ponadto w Windows mamy małą kontrolę
nad uruchomianymi procesami, co powoduje
długi start i zamykanie systemu oraz koniecz-
ność częstych interwencji w przebieg pracy
(np. niechciane wyskakujące okienka).

Szukając oprogramowania do odtwarzania

muzyki, trafiłem na freeware’owy program
Mpxplay. To konsolowy odtwarzacz rozma-
itych plików audio. Ma wbudowaną obsługę
sprzętowych rozszerzeń, jak wyświetlacze
LCD, odbiorniki podczerwieni, lub klawia-
tury podłączane poprzez porty LPT, RS232
czy port joysticka. Program ten ma wersję
skompilowaną pod Win32 (tekstowa konsola
systemu Windows), ale jego podstawowym
systemem operacyjnym jest DOS.

DOS (Disk Operation System) kojarzy

się z prymitywnym systemem operacyjnym,
który już dawno wyszedł z użycia, zastąpiony

17

17

Projekty AVT

Elektronika dla Wszystkich

Lipiec 2010

Lipiec 2010

O I

A

O I

A

2

3

1

1

2

3

1

2

3

2

3

1

2

3

1

1

2

3

1

2

3

2

3

1

OUT1

OUT2

U1

U2

C1

R1

R2

P1

P2

UC

PR

OGRAM

A

T

OR

T3

T2

T1

J1

R3

R4

R6

R7

R8

R9

R10

T5

T6

R1

1

R12

T4

R13

R14

T9

T8

T7

R15

R16

R17

R18

R19

T1

1

T12

R20

R21

T10

R22

R23

D1

D2

D3

D4

OU

T

3

OU

T

4

Rys. 4 Skala 50%

Fot. 4

Fot. 5

background image

przez nowocześniejsze, wielozadaniowe, gra-
ficzne systemy operacyjne. Oryginalny MS-
DOS powstał prawie 30 lat temu w firmie
Microsoft. W międzyczasie powstało jednak
wiele jego alternatywnych implementacji, a
systemy te nadal są używane w specyficznych
zastosowaniach. Jedną z jego wersji jest dar-
mowy FreeDOS. Zawiera on wiele innowacji,
których nie ma w oryginalnym DOS, m.in.
obsługę FAT32, długich nazw plików, portu
USB i sieci TCP/IP. Mpxplay ma wbudowany
serwer FTP, zatem urządzenie zbudowane w
oparciu o FreeDOS/Mpxplay można spróbo-
wać nazwać mianem „serwer muzyczny”.

System DOS.

Jedną z podstawowych zalet

systemu DOS są jego niskie wymagania
sprzętowe. Do budowy systemu, takiego jak
mój, wystarczy już jakieś stare Pentium 133
lub nawet 486. Instalacja i konfiguracja syste-
mu DOS nie jest tak prosta jak Windowsa, ale
jeśli wiemy, co i jak robić – trwa krócej

☺.

System FreeDOS jest rozpowszechniany w
Internecie, jako obraz płyty instalacyjnej CD
lub dyskietki. Ja wybrałem tę drugą opcję – ale
wymaga ona komputera ze stacją dyskietek,
co może być problematyczne. Ponadto praca
w czystym DOS-ie, polegająca na mozolnym
wklepywaniu poleceń, nie jest przyjemna. Ale
od czego są menedżery plików? Ja używam
klona programu Norton Commander o nazwie
Volkov Commander w wersji 5 (a właś-

ciwie 4,99).

To mały i zgrabny programik, który ma
ponadto obsługę długich nazw plików (co nie
jest typowe dla większości programów dla
DOS-u). FreeDOS, którego użyłem w moim
urządzeniu został sporo okrojony. Zawartość
mojego dysku C:\ wraz z opisem przedsta-
wiam w tabeli 1. Pliki konfiguracyjne zawie-
rają listing 1 – CONFIG.SYS oraz listing 2
– AUTOEXEC.BAT (komentarze zaczynają
się słowem REM).

Program MPXPLAY.

Program mpxplay ma

quasi-graficzny interfejs użytkownika. Ale na
moje potrzeby byłby zbędny. Dlatego urucha-
miam go z parametrami przełączającymi go w
tryb uproszczony. Dla poprawnej współpracy
mpxplay z modułem sterowania niezbędne są
zmiany w pliku konfiguracyjnym

MPXPLAY.

INI. Na listingu 3 przedstawiam fragment
zawierający najważniejsze ustawienia.

Program dla modułu sterowania.

Program

napisałem w języku C, wykorzystując środo-
wisko WinAVR. Ma on dość prostą budowę.
W funkcji głównej

main() następuje konfigu-

rowanie rejestrów procesora (porty, timery,
itd.) W pętli głównej tej funkcji obsługiwa-
ny jest jedynie przycisk do zmiany formatu
wyświetlania. Najważniejsze operacje wyko-
nują się w przerwaniach:
SIG_UART_RECV
Przerwanie wywoływane odbiorem znaku
poprzez port szeregowy. Dane z PC są prze-
s y ł a n e

w konsolowym formacie VT100. W formacie
tym przesyłane są tylko informacje wymaga-
jące zmiany w stosunku do poprzednio ode-
branych. Dlatego wszystkie odebrane dane
są buforowane w pamięci i modyfikowane
fragmentami w razie potrzeby. Kluczowym
znakiem jest #27 (ESC), który oznacza począ-
tek nowej sekwencji danych.
SIG_OVERFLOW0
Przerwanie od timera 0 służy do multiplek-
sowania wyświetlacza LED. Dla dłuższych
napisów obsługuje też ich przesuwanie. Samo
wyświetlanie napisów na wyświetlaczu 7-
segmentowym obarczone jest kompromisem.
O ile część liter, jak „A” „b” „h” czy „P” jest
raczej prosta do przedstawienia, o tyle „K” „T”
czy „Y” jest problematyczne. Ale jakoś sobie
poradziłem. Wzorce liter zawarłem w pamięci
programu:

prog_uint8_t g_Digit[48].

SIG_OVERFLOW1
Przerwanie od timera 1 jest wykorzysty-
wane do sterowania silnikiem krokowym.
Zastosowałem sterowanie półkrokowe – jeden
cykl pracy składa się z 8 kroków. Wzorce
sekwencji sterujących zapisałem w pamięci
programu:

prog_uint8_t g_Steps[9].

SIG_ADC
Przerwanie od przetwornika A/C. Po urucho-
mieniu programu silnik krokowy zaczyna
obracać wskazówką w lewo aż do zadzia-
łania wyłącznika krańcowego – zasłonięcia
szczeliny transoptora. Moment ten wykrywa

przetwornik A/C mikrokon-
trolera. Od tej chwili pro-
gram pamięta bieżącą pozy-
cję wskazówki. Ponieważ
wyłącznik krańcowy jest
tylko z jednej strony, mak-
symalne położenie wska-
zówki w prawo ustaliłem
empirycznie i zapisałem
jako stałą w programie,
który pilnuje, aby jej nie
przekroczyć.

Kompletny kod źród-

łowy jest dostępny na
Elportalu – wraz z innymi
materiałami.

Zakończenie

Zastosowanie tak stare-
go komputera jak 486 oraz
systemu operacyjnego DOS
może się wydawać anachro-
niczne. Uważam jednak, że

Tabela 1

18

Projekty AVT

Elektronika dla Wszystkich

Lipiec 2010

Lipiec 2010

DOSLFN

Katalog ze sterownikami do obs ugi d ugich nazw plików (wywo anie sterownika w pliku
AUTOEXEC.BAT)

FREEDOS

Katalog zawieraj cy pliki systemu operacyjnego FreeDOS

MP3

Katalog w którym przechowywane s pliki z muzyk (w formacie np. *.mp3)
Pliki mog (a nawet powinny) by umieszczane w podkatalogach

MPXP156T

Katalog z programem mpxplay w wersji 1.56TCP

NET_DRV

Katalog ze sterownikami karty sieciowej (wywo anie sterownika w pliku AUTOEXEC.BAT)

SNDAPP

Katalog ze sterownikami karty muzycznej (wywo anie sterownika w pliku AUTOEXEC.BAT)

VC5

Katalog z menederem plików Volkov Commander w wersji 4.99

AUTOEXEC.BAT

Plik konfiguracyjny z poleceniami wywo ywany po za adowaniu systemu operacyjnego.
Zawarto na listingu 2

COMMAND.COM Plik systemu operacyjnego FreeDOS
CONFIG.SYS

Plik konfiguracyjny wywo ywany w trakcie uruchamiania systemu operacyjnego.
Zawarto na listingu 1

KERNEL.SYS

Plik systemu operacyjnego FreeDOS

rem Uruchamianie sterowników pamięci rozszerzonej
rem (bez tego DOS obsługuje tylko 640kB pamięci)
DEVICE=C:\FREEDOS\HIMEM.EXE /TESTMEM:OFF
DEVICEHIGH=C:\FREEDOS\EMM386.EXE
DOS=UMB,HIGH

rem Rozmiary buforów, ilości otwartych plików itp.
LASTDRIVE=Z
FILES=20
BUFFERS=20
STACKS=9,256

rem Załadowanie sterownika napędu CD-ROM
rem (u mnie z powodu braku CD-ROM wykomentowane)
rem DEVICEHIGH=C:\FREEDOS\XCDROM.SYS /D:FDCD0001

Listing 1

rem Zdefiniowanie ścieżki do systemu
rem dla łatwiejszego wywoływania plików
PATH C:\FREEDOS

rem Ewentualne załadowanie sterownika CD-ROM
rem (pierwsza część procedury w pliku CONFIG.SYS)
rem LH SHSUCDX /D:*FDCD0001,G /~

rem Ładowanie sterownika długich nazw plików
LH C:\DOSLFN\DOSLFN.COM

rem Ładowanie sterownika karty muzycznej
LH C:\SNDAPP\CMINIT /WA:530 /WI:11 /WM:0 /VA:220
/VI:10 /VL:1 /VH:5 /MA:330 /MI:9 /GS:200 /FM:388
SET BLASTER=A220 I10 D1 H5 T4

rem Ładowanie sterownika karty sieciowej
C:\NET_DRV\NE2000 0x60 15 0x320
SET WATTCP.CFG=C:\NET_DRV

rem Kolejne linie to pętla w której ładowany jest
rem program mpxplay - każdorazowo przy wyjściu
rem sprawdzany jest warunek: Czy ma nastąpić
rem restart mpxplay czy przejście do konsoli?
:MPX
CD C:\MPXP156T
MPXPLAY.EXE -SL -DDMA -F0 -V -8 -CM C:\MP3\*.*\*.*
C:\MPXP156T\RESTART.EXE
IF ERRORLEVEL 1 GOTO :MPX

rem Jeżeli nie restartujemy mpxplay to ładujemy
rem sterownik myszy i menedżer Volkov Commander
LH CTMOUSE.EXE
LH C:\VC5\VC.COM

; Włączenie obsługi portu joysticka
; port ten wykorzystuję do sterowania odtwarzaniem
[joystick]
Joy1Port =0x0200
Joy1FuncBtn1 =0x3920 ; play
Joy1FuncBtn2 =0x011b ; esc
Joy1FuncRight =0xe02f ; a-
Joy1FuncDown =0x4a2d ; prev
Joy2FuncBtn1 =0x372a ; a+
Joy2FuncBtn2 =0x4e2b ; next

; Właczenie obsługi wewnętrznego serwera FTP
[serialport]
SerialEnable =1
HandlerCFG =FTPSRV

; Właczenie obsługi wysyłania danych
; do wyświetlania na port COM2 (RS-232)
; Interpretacją tych danych
; zajmuje się mikrokontroler ATmega8
[LCDdisplay]
LCDport =COM2
LCDtype =8
LCDrows =255
LCDlines =6
LCD_items=1,1,P_ALLSONGNUM
LCD_items=2,1,P_ENTRYNUM
LCD_items=3,1,P_ARTIST,” - „,P_TITLE
LCD_items=4,1,P_ALBUM,” - „,P_YEAR
LCD_items=5,1,P_TIMEPOS
LCD_items=6,1,S_PLAY

; UWAGA: Ten plik jest niekompletny !!!
; Więcej informacji o tym pliku
; w dokumentacji programu mpxplay

Listing 2

Listing 3

background image

DOS świetnie nadaje się do zabawy w łączenie
komputera z elektroniką. Stare komputery mają
komplet bardzo prostych w obsłudze portów
(zarówno szeregowe, jak i równoległy). Porty
te w DOS-ie dostępne są jako komórki pamię-
ci komputera, dzięki czemu samodzielne ich
oprogramowanie jest bardzo proste. Wbrew

pozorom w sieci nie brakuje dokumentacji
ani gotowego oprogramowania, np. program
Mpxplay jest nieustannie rozwijany. Ja użyłem
wersji 1,56, ale w chwili pisania tego artykułu
(kwiecień 2010) dostępna była już beta wersji
1,57 z nowymi funkcjami (m.in. odtwarzanie
plików z sieci). Gdyby ktoś chciał zbudować
podobne urządzenie, zalecam jednak trochę
mocniejszy procesor, bo mój 486 ma problemy
z plikami o większym bitrate. Zalecam procesor,
co najmniej Pentium 133. Nie od rzeczy jest też
dobra karta muzyczna, np. Sound Blaster Live.
W takim zestawieniu odtwarzacz pod względem
brzmienia bije na głowę większość tanich empe-
trójek, miniwież czy odtwarzaczy DVD.

Jak pisałem we wstępie, mam nadzieję, że

zainspirowałem do działania nie tylko siebie.
Bo ja, zachęcony działaniem opisanej powy-

żej konstrukcji buduję sobie – tym razem
rasowy – serwer muzyczny. Wyposażony
będzie m.in. w wyświetlacz LCD, pilot IR,
złącze USB, CD-ROM z możliwością odtwa-
rzania i ripowania płyt CD oraz odtwarzania
plików z sieci. I tym razem w obudowie
slim, pasującej do wieży audio. Oczywiście
z FreeDOS i MpxPlay na pokładzie. Jego
moduł sterowania będzie się kontaktował z
komputerem wyłącznie poprzez port RS232,
wykorzystując terminalowy protokół VT100.
Ale to temat na inny artykuł...

Sławomir Węgrzyn

bsw@poczta.onet.pl

Linki
Odtwarzacz mpxplay – http://mpxplay.sou-
rceforge.net/
System operacyjny FreeDOS – http://www.
freedos.org/

Projekty AVT

Uwaga! Podczas użytkowania urządze-
nia w jego obwodach występują napięcia
groźne dla życia i zdrowia. Osoby nie-
doświadczone i niepełnoletnie mogą wy-
konać je wyłącznie pod kierunkiem wy-
kwalifi kowanego opiekuna, na przykład
nauczyciela.

Moduł sterowania
Rezystory
R1-R8,R20. . . . . . . . . . . . . . 10kΩ
R9-R16 . . . . . . . . . . . . . . . . .220R
R17-R19,R22. . . . . . . . . . . . 4,7kΩ
R21 . . . . . . . . . . . . . . . . . . 100kΩ
R23 . . . . . . . . . . . . . . . . . . . 1,5kΩ
Kondensatory
C1 . . . . . . . . . . . . . . . . . . . . 100nF
C2 . . . . . . . . . . . . . . . . . . . . . 33pF
C3 . . . . . . . . . . . . . . . . . . . . . 33pF
C4 . . . . . . . . . . . . . . . . . . . . 220nF
C5 . . . . . . . . . . . . . . . . . . . . 100nF
Półprzewodniki
D1 . . . . . . . . . . . . . . . . . . . . . . 9V1
DIS1-DIS4 . . . . . . . . . . . .HD-K121
IC1 . . . . . . . . . . . . . . . . MEGA8-P

IC2 . . . . . . . . . . . . . . . 74HC164N
Q1-Q8 . . . . . . . . . . . . . . . . .BC327
Q10 . . . . . . . . . . . . . . . . . .BC546A
Pozostałe
Q9 . . . . . . . . . . . . . . . 11,0592MHz
Regulator
R1,R2 . . . . . . . . . . . . . . . . . 300Ω
R3,R4,R6-R23 2kΩ
P1,P2 . . . . . . . . . . . . . .2,5kΩ PR
C1 . . . . . . . . . . . . . . . . . . . . 100nF
D1-D4 . . . . . . . . . . . . . . . .1N4148
T1,T4,T7,T10 . . . . . . . . . . .BC546A
T2,T3,T5,T6,T8,T9,T11,T12

BC327

U1,U2 . . . . . . . . . . . . . . . . LM317
UC. . . . . . . . . . . . . . . . .goldpin x8
J1 . . . . . . . . . . . . . . . . . jumper x3
Programator. . . . . . . . .goldpin 5x2

Wykaz elementów

R E K L A M A


Wyszukiwarka

Podobne podstrony:
FIDE Trainers Surveys 2010 07 03 Georg Mohr Learning From the Old Masters
2010 07 Szkoła konstruktorów klasa II
Arot 2010 07 2010 id 69283 Nieznany
SERWIS 2010.07.05
2010 07 Płytki drukowane metoda fotochemiczna
kyoritsu 4140 103892 KARTA 2010 07 16 1
EPII zarzadzanie aktywami zapasy 2010.07.01
EPII zarzadzanie aktywami zapasy 2010 07 01
2010 07 HAS House's Automated System
2010 07 Szkoła konstruktorów klasa III
2010 07 22 Rozp MON Ćwiczenia wojskowe
2010 07 Ćwiczenie 4 Whisper posłuchiwacz szeptów
2010 07 09 Kalendarz Histmag org
Nowy Gornik 01 2010 07
bsn 2010 07 040
Nafta Gaz 2010 07 05
2010 07 08 Ustawa o Policji projekt zmianid 26997 (2)
2010 07 Transformator idealny Wykład1

więcej podobnych podstron