Somewhere start 2002, i made a tool for playing darts. Well … keeping score and history
I was multiuser, multigame with statistics and undo. You could click on the little dartboard what your have thrown on a real board. It just kept score and told you best finish options.
Screenshot below was a digitized picture, no way accurate. Versions later the board was realtime drawn with GDlib and pixelperfect. It even showed you previous throws.
At the end of the game it should give you the hotspots you have thrown.
It was a beautiful day in May, and a lot of people were outside enjoying themselves.
Monique was working in the garden, and i was sitting in the living room.
We heard some commotion and saw the smoke. Some people said that the Chinese restaurant in that neighbourhood (containing illegal fireworks) was burning.
We heard a big explosion and Monique was blown off her feet, and sat down in the garden.
I saw the large livingroom window bulging to the inside and moving outside again. (This had loosen the mortar around the window)
When seeing the now black smoke, we went inside, to the opposite site of our home, and turned on the news/checked websites.
We were lucky that there was a large factory between us and the blast (Polaroid factory)
Large pieces of cement where found 100m further than our house was.
Below some of my own media, for a better understanding of the destruction and aftermath of the disaster check the divers websites.
The script which tracked a certain webpage realtime was using something like a pixel tracker. But it was a complete logo.
I created a cgi-bin bash script which, when called, just printed a jpg with the correct headers, and because the server was in my room, it played a soundfile over the speakers also.
Just place the following part somewhere in your webpage
#!/bin/sh
echo Content-type: image/jpeg
echo
cat /var/lib/httpd/htdocs/banners/logo.jpg
bwavplay /data/test.wav > /dev/null
echo ACCESS | mail 0612345678@gin.nl -s "Archive Site Accessed"
Build a hardware webcounter (it was a thing back then) , i used below schematic. Wanted to use huge 7 segment displays but never got around it to buy the large ones.. It was easily converted to multiple segments. I think i used 4 and pulses where send via a parallel port.
Old webcounter schematic
The three (my case four) buttons are to get the counter in sync with my real counter which was a CGI script. It generated html code with took numeric images and displayed these on a page, the state was stored in a file. No numbers where send to the counter, only a pulse. So no synchronisation! Not the way to do this nowadays!
Joystick recorder
I designed a joystick movement recorder for a school project.
You could record movement, and press a button to start recording. (and starting the game) It was not really usable. Because, it needed a higher recording rate, a game which always reacted to the player in the same manner. Only made a half proof of concept.
Drawing images using lasers
For another school project i wanted to be able to draw figures using a laser. One of my teachers fixed a meetup for me with a guy attending university in Enschede. He was using lasers to scan miniscule objects using a laser in groves something resembling a longplayer record.
I wanted to use two DACs to control the movement of two mirrors. But i’d had to take into account the speed of the movement and the weight of the mirrors, else images where distorted.
He gave me a schematic which used: 2 controllabe video disc mirrors, light split glasses and amplifier part.
Previous project with Oscilloscope drawings helped, with understanding those problems. https://www.henriaanstoot.nl/1992/01/01/oscilloscope-graphics-using-a-amiga-bonus-vectrex/
I’ve still got the components, except for the high grade laser i lend from a friend. But a simple laser pen should suffice
Using a steppermotor controller with two motors. A video capturing device (videoblaster) and a mini B/W camera.
Web interface with glassbuttons effects which i rendered using Bryce.
Up/down/left/right and diagonal
Red double speed green single speed
Reset view
2 Presets with save and recall
Setup with parallel cable
Written software in html and some CGI scripts. Perl and C.
#include <asm/io.h>
# C Code for moving left
int main(int agrc,char agrv[])
{
int i,wachten;
int richting1[8]={0x27,0x2d,0x1c,0x0d,0x03,0x09,0x38,0x29};
int richting2[8]={0x29,0x38,0x09,0x03,0x0d,0x1c,0x2d,0x27};
ioperm(0x378,3,1);
ioperm(0x37a,3,1);
wachten=100;
for (i=0; i<=7; i=i+1)
{
outb(richting2[i], 0x378);
outb(1, 0x37a);
usleep(wachten);
outb(0, 0x37a);
usleep(wachten);
outb(1, 0x37a);
usleep(wachten);
}
return(0);
}
#!/usr/bin/perl
# Perl CGI script
# Uses 204 no content trick to stay on same page
use LWP::Simple;
my $img = get ('http://10.1.0.1/cgi-bin/left.cgi');
print "Status: 204 No content\n\n";
Streaming video was done using progressive JPG push. Later i used the capturing command in the loop below.
#!/bin/sh
# push jpg, and update after 1sec
# output mime header
echo Content-type: multipart/x-mixed-replace;boundary=--WebcamRules\n
echo
echo --WebcamRules
# create stream
while true; do
echo Content-type: image/jpeg
echo
cat /var/lib/httpd/htdocs/webcam.jpg
echo
echo --WebcamRules
sleep 1
done
Steppermotor card was using a parallel port.
Camera with video out
Aluminum machined part by Joost
"If something is worth doing, it's worth overdoing."