Świąteczne lampki na parallelu
30 12 2008Na kilka dni przed świętami Bożego Narodzenia wpadłem na pomysł, by uatrakcyjnić je odrobiną elektroniki w połączeniu z informatyką. Zacząłem od migających diod na klawiaturze, co jednak wydało mi się zbyt minimalistyczne w porównaniu do ogromnej tajemnicy obchodzonego wydarzenia. Postanowiłem sterować girlandą świąteczną za pomocą układu od starej klawiatury. Jednak po rozmowie z tatą (elektronikiem) i Kosmą (informatykiem, elektronikiem) pomysł ewoluował.
Tata wskazał na moją nieużywaną od lat iluminofonię J-50 z zestawu do samodzielnego złożenia, a Kosma zaproponował port LPT (parallel) zamiast układu z klawiatury i uzmysłowił mi, jak i jakimi częściami to wszystko połączyć, jako że o elektronice nie mam większego pojęcia.
Port LPT posiada 8 bitów, 8 czyli sygnałów sterujących. To właśnie one zostały wykorzystane do włączania i wyłączania lampek. Każdy bit odpowiada za jeden odbiornik zasilania, więc musimy zadecydować, ile ich chcemy wykorzystać. Mi wystarczyły 2, dlatego też do pinu 2. i 3. portu za pośrednictwem wtyczki (którą zakupił mi uprzejmy kolega Fbz) przylutowałem oporniki 150 ohmów, a je z kolei do anod transoptorów CNY17 (polecam specyfikację). Każdy z bitów ma wspólną masę, która znajduje się w 25. pinie — łączymy ją z katodą każdego transoptora. Transoptor służy nam tu jako zabezpieczenie przed przedostaniem się napięcia 230 V w kierunku parallela.
Poniżej przedstawiam fragment schematu iluminofonii, który może przydać się nam do zbudowania tego prostego układu (oczywiste jest, że nie potrzebujemy całej iluminofonii).

Posłużę się przykładem pierwszego rozgałęzienia, który jest analogiczny do pozostałych. Rzecz jasna takich rozgałęzień możemy stworzyć do 8, by miało to sens.
Tranzystor T1 jest nam tak naprawdę niepotrzebny, więc łączymy się do niego równolegle lub zamiast niego. Kolektor transoptora (patrz: schemat w specyfikacji na 1. stronie) lutujemy do opornika R11, a emiter — do R12. Zamiast gwintów żarówek na końcu mocujemy gniazdo sieciowe (nie polecam ściennego
) i posiadając połączenie bit-opornik-transoptor-oporniki-układ-gniazdo dla pojedynczego odbiornika elektrycznego, elektronikę mamy z głowy.
Sterowanie za pomocą skryptu Perla jest całkiem proste. Oto ten, który napisałem:
#!/usr/bin/perl
use strict;
use Time::HiRes qw/usleep/;
use Device::ParallelPort;
use Device::ParallelPort::drv::parport;
my $p = Device::ParallelPort->new('parport');
$| = 1;
sub pin {
@_ = grep (($_ != 0), @_);
return $p->set_data () unless @_;
my $pins = 1 << (shift () - 2);
$pins = ($pins | (1 << ($_ - 2))) for (@_);
return $p->set_data ($pins);
}
sub off {
pin (0);
exit;
}
$SIG{'INT'} = 'off';
open U, "< $ARGV[0]" or die;
my $t = scalar <U>;
my $l = scalar <U>;
my @u;
while (<U>) {
chomp;
my $pn = 2;
s/1/$pn/g;
push @{$u[0]}, (split / */, $_);
for (my $i = 1; $i < $l; $i++) {
$_ = scalar <U>;
chomp;
$pn = $i + 2;
s/1/$pn/g;
push @{$u[$i]}, (split / */, $_);
}
}
close U;
while (1) {
for my $i (0 .. (scalar @{$u[0]} - 1)) {
pin (map $u[$_][$i], (0 .. ($l - 1)));
usleep ($t);
}
}Z dodatkowych modułów potrzebujemy Device::ParallelPort i Device::ParallelPort::drv::parport; znajdują się one w rezpozytorium SCXD. Uruchamiamy go w następujący sposób:
$ ./lamps.pl <układ>
Przez układ rozumiem plik z układem w następującej postaci:
<tempo w jednostce czasu usleep> <ilość sygnałów sterujących> <cyfry 0 i 1 reprezentujące odpowiednio stan włączony i wyłączony 1. sygnału> <2. sygnału> ... <1. sygnału> <2. sygnału> ...
Dla zrozumienia prosty przykład:
200000 2 11111111 00000111 00000111 11111111
Na tyle krótki, że nie trzeba używać więcej niż 1 linii dla każdego sygnału. Spacje służą jedynie przejrzystości. Budowę tego schematu można przyrównać do zapisu nutowego z klamrą na kilka instrumentów.
Efektem kilkugodzinnej pracy są synchronicznie migające świąteczne światełka.
Przedstawiam krótkie nagranie z udziałem mojego okna i balkonu przy wykorzystaniu przedstawionego układu.
Zastrzegam, że nie odpowiadam za ewentualne szkody wynikające z próby zbudowania tej ekscentrycznej maszyny. Życzę chęci i powodzenia.



A może masz jakiś filmik prezentujący działanie tego ? Zawsze chciałem się pobawić w elektronikę ale jakoś ciężko przychodzi mi nauka o tych wszystkich urządzonkach i prądzie;/
Umieściłem.
Znacznie mniej roboty a lepszy efekt byś miał jak byś w każdy obwód szeregowo wpiął starter od świetlówki;)