Jag ville altså att nyheterna från t.ex. Dagens Nyheter skulle rulla förbi på min lcd-display.. Först var det ju till att få igång lcd'n, ganska lätt, bara att löda på pin-headern på själva display-delen och sedan plugga in den i onewire-drivkretsen. Kopplade sen in fem volt i entrådsnätet med hjälp av en spänningsinjektor.. Bara att koppla in drivkretsen så funkade det! Coolt. I och med att jag redan hade owfs installerat på min linuxburk så dök lcd'n upp som en mapp i dess filstruktur.
Därifrån så var det ju bara att skriva innehåll till de olika raderna på displayen, typ echo "Hello World" > /mnt/owfs/FF.8A0300000100/line20.0 , så dök det upp på displayen. Displayen var skapligt snabb märkte jag direkt, när jag tryckte enter så dröjde det inte mer än några hundradels sekunder innan displayen var uppdaterad. Perfekt till nyhetsrullaren, för att det ska kännas som att texten rullar förbi så krävs ganska hög uppdateringsfrekvens.. Såhär blev det att se ut iallafall.. Nyheten om jättedinosaurien scrollar förbi, men själva rullandet gör sig inte så bra på stillbild..

La upp en video på youtube, men min kamera suger så det blev inte alls bra.. Det syns iallafall vad som händer på http://www.youtube.com/watch?v=JywTQ1jbX1A
För den som inte redan är uttråkad nog följer scriptet som gör jobbet i sin helhet här nedanför.. Perl blev det naturliga valet då jag ska börja jobba som perl-kodare om ett par veckor och behöver öva

Kod: Markera allt
<newsticker.pl>
#!/usr/bin/env perl
use IO::Handle;
use XML::RSS;
use LWP::Simple;
#starta evighetsloop, rulla nyheter tills någon stänger av scriptet
while(1){
#skriv ut att det är dn's nyheter vi visar
$string = "DN";
my $rss = new XML::RSS;
#hämta hem dn's nyheter via deras rss-sajt... de 10 första nyheterna..
#hämtas på nytt efter varje varv.. Hoppas att inte DN misstycker att
#jag hämtar hem deras rss så ofta..
$content = get("http://www.dn.se/DNet/custom-jsp/rss.jsp?d=145&numItems=10");
#parsa rss'en
$rss->parse($content);
foreach my $item (@{$rss->{'items'}}) {
next unless defined($item->{'title'}) && defined($item->{'link'});
#för varje nyhet i rss'en, ta titel-raden och lägg till den
#i strängen som ska scrollas förbi
$string = $string." >> ".$item->{'title'};
#byt ut å-ä-ö mot tecken som lcd'n klarar av att visa, å blir @,
# ä byts mot ä, fast med lcd'ns teckentabell och ö byts mot ö fast
# med lcd-displayens teckentabell..
$string =~ s/å/@/;
$string =~ s/ä/á/;
$string =~ s/ö/ï/;
}
#lägg till lite mellanslag först i strängen så att nyheterna rullar
# in från vänster..
$copy = " ".$string;
$a = 0;
# rulla ut hela nyhets-strängen på displayen!
while($a < length($copy)){
#öppna utfilen på displayen OBS! Byt sökvägen till ditt serienummer!!
open(OUTFILE, ">/mnt/owfs/FF.8A0300000100/line20.0");
#en liten perl-teknisk detalj, auto-flush är ett måste.
autoflush OUTFILE,1;
#skriv strängen till displayen, allt mellan $a och 20 tecken framåt
print OUTFILE substr($copy,$a,20);
close(OUTFILE);
#vänta 0.05s innan förflyttningen av strängen åt vänster
select(undef, undef, undef, 0.05);
#flytta strängen ett steg åt vänster
$a++;
#och så länge det finns tecken kvar i strängen, skriv ut den
# redan flyttade strängen en gång till..
}
#en liten bonus för att sudda bort det sista tecknet från displayen när
# det aktuella varvet snurrat färdigt. OBS! Byt sökvägen till ditt
# serienummer!!
open(OUTFILE, ">/mnt/owfs/FF.8A0300000100/line20.0");
print OUTFILE " ";
close(OUTFILE);
}
<slut på fil>
