[ Terug ]

Computersturing

Dit is het schema dat ik wil bouwen:

Hoe werkt dit ding? Op de lijnen D0 t/m D7 zet de computer 0 of 5 volt spanning. Die lijnen komen toe op twee latch-chips (de bovenste twee 74LS373's op de figuur). Een latch is een soort klein geheugen: als de chip een signaal krijgt op de E-pin, zullen de lijnen Q0 t/m Q7 van de latch dezelfde toestand krijgen als D0 t/m D7. Als we het signaal op de E-pin uitzetten, blijft de toestand van Q0 t/m Q7 behouden, ook al veranderen we de toestand van D0 t/m D7. De latch blijft de acht toestanden dus onthouden, en als we ze willen veranderen, stellen we de lijnen D0 t/m D7 in, en geven een puls op de E-ingang van de latch.
Nu moeten we nog een manier vinden om de E-lijnen van de latches aan te sturen. Er zijn nog maar vier uitgangs-pinnen over op de parallelle poort, en om wat meer mogelijkheden tot latere uitbreiding te hebben, gebruik ik een truukje om met vier lijnen acht signalen te kunnen genereren. De mooie naam voor dit truukje is demultiplexen; vandaar de naam van de 74LS155 chip in het midden links op de figuur. Met de lijnen C1 t/m C3 kan je kiezen welke uitgang van de demultiplexer-chip er aan zal staan; alle andere zeven uitgangen zullen uit staan. Er zijn inderdaad acht combinaties te maken met drie lijnen (ga maar na). De lijn C0 gebruiken we om de chip te activeren: als C0 uit staat, zijn alle acht uitgangen uitgeschakeld; als C0 aan staat, is de uitgang actief die we met C1 t/m C3 ingesteld hebben. Met deze demultiplexer kunnen we de twee eerdergenoemde latch-chips aansturen.
De rest van het schema bevat het CCD-gedeelte, en omdat ik nog geen CCD-chip heb kunnen bemachtigen, zal ik de uitleg hiervan tot later uitstellen.

Om mee te beginnen bouw ik enkel het steppermotor gedeelte, dus het stuk met de twee latches aan de D0--D7 ingangen en de multiplexer. Voor elke steppermotor komen er vier signaallijnen uit dit curcuit; die worden verder versterkt. Het schema is per twee lijnen (aangeduid met IN) als volgt:

Dit schema is voor een groot deel geïnspireerd op dat van Mel Bartels. De werking is als volgt: de rest van de schakeling (in ons geval dus uiteindelijk een latch) stuurt de IN lijn aan en zet er ofwel 0 volt ofwel 5 volt op. Even kijken wat er gebeurt in beide gevallen:
Op de bovenste ingang zetten we 0 volt en dus begint er een stroompje te lopen (groene pijlen links) die de optokoppelaar activeert (voorgesteld door de twee bliksempijltjes). Dit zorgt ervoor dat de fototransistor aan de andere kant van de optokoppelaar begint te geleiden en dus loopt er een stroompje van de +12V naar de aarde (groene pijlen rechts). Hierdoor wordt de transistor niet aangestuurd; die transistor geleidt dus geen stroom en de +12V kan niet door de winding van de steppermotor passerren.
Op de onderste ingang staat 5 volt; er loopt dus geen stroompje links van de optokoppelaar en dus geleidt de fototransistor niet. Het stroompje van de +12V onderaan (groene pijlen) moet dus nu wel naar de transistor lopen; die transistor begint dus te geleiden, en dus kan er ook stroom door lopen die van de steppermotor-winding komt (blauwe pijlen).
Dus: 0V op de IN lijn zetten zet geen stroom op de winding, +5V op de IN lijn zetten zet wel stroom op de winding.

Wat staan die twee diodes en die zenerdiode daar dan eigenlijk nog te doen? Windingen (ook wel spoelen genaamd) hebben de onhebbelijke gewoonte veranderingen in stroomsterkte tegen te werken. Als je dus plots stroom begint te sturen door de winding (de stroomsterkte stijgt dus ineens), zal de winding eerst een beetje tegenwerken. Omgekeerd, als je plots de stroom wegneemt (de stroomsterkte daalt abrupt), dan zal de winding zelf stroom beginnen maken om de daling tegen te werken. Natuurlijk kan de winding niet erg lang blijven tegenwerken (anders hadden we een makkelijke oplossing voor de energiecrisis gevonden :-) ), maar de stroom die de winding zelf maakt kan gedurende een heel korte tijd wel heel sterk zijn en de transistoren kapot maken.

Even kijken wat er precies gebeurt. We hebben dus net de stroom uitgezet op de onderste winding; de onderste transistor staat dus uit. De winding maakt zoals hierboven uitgelegd zelf een stroompje om ons tegen te werken. Omdat de transistor uit staat, moet de stroom door de diode passeren, en als ze sterk genoeg is, gaat ze ook door de zenerdiode, om weer bij de winding uit te komen. De stroom blijft dus rondjes draaien, todat de stroomsterkte klein genoeg is geworden en de stroom niet meer door de zenerdiode geraakt. Het werkt overigens ook goed zonder zenerdiode: de stroom blijft dan wat langer ronddraaien tot ze is uitgestorven; door de zenerdiode toe te voegen stopt die stroom wat sneller (en reageert de steppermotor dus ook sneller op onze signalen).

Maandag 20 maart 2000: ik ga even langs bij Gentronics met het volgende boodschappenlijstje:
AantalPrijs (fr)Omschrijving
204010k weerstand
512574LS373 latch
12574LS155 demultiplexer
11574LS04 hex inverter
175CNY74-4 optocoupler
1189Voorgedrukte printplaat ECS3 (bakeliet enkelzijdig, eilandjes per 3)
Totaal469
De weerstandjes van 10k zullen verderop overbodig blijken ...

Dinsdag 21 maart 2000: bij Radio Home koop ik nog dit:
AantalPrijs (fr)Omschrijving
4201N4007 diode 1A
250Zenerdiode 30V 5W
1207805 5V voltage regulator
8800,1 microfarad condensator tantalum
Totaal170
Ik vraag meteen ook eens naar CCD's van het type KAF 0401 (ze verdelen geen Kodak), TC211 en TC215 (de prijs hiervan zullen ze aan hun leveranciers trachten te ontfutselen).

Donderdag 23 maart: bij Gentronics haal ik wat sokkels om de chips die ik al heb in te steken:
AantalPrijs (fr)Omschrijving
5LC20 IC-voet 20pin
2LC16
1LC14

Vrijdag 24 maart: ik ga mijn licht opsteken bij Colin Electronics (in Lovendegem, een uurtje fietsen). Jammer genoeg hebben ze geen van MAX6160, MAX151, TC211, TC215 of KAF0401 in voorraad (ook hier hebben ze absoluut nog nooit van Kodak chips gehoord) en ze raden me aan ook eens te informeren bij ... Radio Home. Juist ja.
Op de pagina van TI staan toch wel drie Belgische leveranciers, dus wie weet ...:

  • EBV Bij Products & Services kan je een Article/Stock search doen. Een TC211 kost 2762 fr, een TC211CCD 1871 fr (wat is het verschil?) en ze zijn per stuk te bestellen. Levertijd is jammergenoeg niet beschikbaar en er zijn er (op het ogenblik van schrijven) geen in voorraad.
  • SEI
  • Spoerle: doe Detailed Search, en zoek op CCD in Part Description: TC237 (680x500 pixels), TC245-40 (786x488 pixels), TC255P (336x244 pixels). Kodak en Maxim zijn bij geen enkele van de drie bekend.
    Op de pagina van Maxim is één enkele Belgische verdeler te vinden: Master Chips.

    Zaterdag 25 maart: bij Gentronics haal ik nog wat gerief:
    AantalPrijs (fr)Omschrijving
    412220ohm weerstand
    4120TIP-122 transistor
    125Bar-M-R-E pin-header
    Totaal157
    De pin-header is gewoon een rijtje van 40 pinnetjes naast elkaar. De steppermotoren die ik uit oude floppy's gesloopt heb, hebben een connector met 6 gaatjes, en de rest kan je zelf wel raden :-)
    Eigenlijk wou ik TIP-120 transistors bestellen, zoals gebruikt bij Mel Bartels' schema, maar die bleken niet meer te bestaan. De mevrouw van Gentronics keek dus even in een heel dik boek met allemaal nummertjes en zei dat TIP-122 ook goed zou zijn. Even snuffelen in de data sheets achteraf leert dat de TIP-122 een collector-emitter-spanning van 100V op 5A aankan, waar dat bij de TIP-120 maar 60V is.

    Maandagavond 3 april: van de Zeus WPI (Werkgroep Informatica van de universiteit) heb ik een oude 386 gekregen om wat mee te prutsen. Ik ontdek dat het beestje geen harde schijf heeft. Dat wordt zoeken naar een Linux-versie die op een floppy past. Na een avond zoeken vind ik tomsrtbt, dat een speciale floppy maakt waar 1,7MB op kan (de standaard manier van floppy's gebruiken krijgt er maar 1,44MB op) en propt daarop een min of meer bruikbare Linux. Eerst had ik Linux On A Floppy geprobeerd, maar daarmee slaagde ik er niet in diskettes in te lezen.
    Nog gauw een eenvoudig testprogrammaatje (partest) ineen prutsen en het is alweer middernacht ... Het programma is geïnspireerd op de Linux I/O port programming mini-HOWTO. Een ding om op te letten is dat ik in de makefile de optie -static gebruik. Het testprogramma wordt immers op een gewone computer gecompileerd, en die zorgt ervoor dat veelgebruikte functies niet rechtstreeks in het programma zelf worden ingeplakt, maar verwijst gewoon naar een centrale functiebibliotheek. De mini-op-één-floppy Linux heeft geen (of toch niet genoeg) van die functiebibliotheken; daarom moeten de functies toch in het programma geplakt worden, en dat gaat zoals je intussen wel kon raden met -static. (Zie ook http://www.cs.uiowa.edu/~jones/step/example.html)

    Dinsdagavond 4 april: het testprogrammaatje een beetje opgekuisd; maar jammer genoeg blijkt er niks uit die parallele poort te komen!

    Woensdagmorgen 5 april: nog een paar veranderingen aan het testprogramma aangebracht. Maar bovendien ontdek ik nu waarom ik gisteren geen leven uit de parallelle poort dacht te bespeuren: ik ben een paar cruciale draadjes op de printplaat vergeten te solderen! Het zijn de vier draadjes die de D0/D1/D2/D3 signalen die langs de 10k weerstanden gepasseerd zijn voort zouden moeten sturen naar de latch-chip. Daardoor krijgt de hele schakeling geen signalen binnen, dus ook niet op de plek waar ik gisteren zat te meten ... Op de weerstanden zelf meten geeft wel resultaat: met het testprogramma kan ik de vier signalen aan en uit zetten.

    Donderdagavond 6 april: de signalen komen eindelijk door, nu is er weer iets anders dat problemen geeft :-) De 10k weerstandjes zijn blijkbaar wat te overdreven. Een logische 0 geeft 0V vóór de weerstand en 0,78V erna. De chips herkennen jammer genoeg maar een logische 0 als de spanning minder dan ongeveer 0,5V bedraagt. Bij de logische 1 is er geen probleem: 3,56V vóór de weerstand wordt omgezet in 3,53V erna (en 2V is al genoeg voor een logische 1).

    Vrijdag 8 april: ik haal tien 1kOhm weerstandjes bij Gentronics, kostprijs 20fr.

    Maandag 10 april: de schakeling met 1k weerstandjes in plaats van 10k geeft goede resultaten: een 0 komt door als 0,2V en een 1 als 3,55V. Jammer genoeg werkt het voorbij de optocouplers nog altijd niet. Het blijkt dat ik de weerstandjes van 1k in het schema dat de stepper aanstuurt moet toevoegen.

    Woensdagavond 12 april: weerstandjes bijgesoldeerd, en het werkt! Wat ik nu heb is een halve stepper-aansturing (die twee van de vier windingen kan aansturen).

    Donderdag 13 april: ik begin de andere helft van de stepper-aansturing ook ineen te zetten. Mijn 1k weerstandjes zijn op, dus haal ik er weer tien bij Gentronics (20fr).

    Vrijdag 14 april: de andere helft is klaar en werkt! Ik schrijf vlug step.c waarmee de stepper een aantal stappen naar links of rechts kan draaien. Halfsteppen werkt ook al.

    zondag 29 oktober: Ik stuur een fax naar EBV Elektronik, SEI en Spoerle om wat info te vragen over CCD chips.

    Maandag 30 oktober: Er komt al een email terug van Spoerle, spijtig genoeg om te zeggen dat ze niks voor ons hebben. Dit is toch wel een beetje vreemd omdat er enkele CCD's van TI op hun homepage vermeld staan. Misschien is ``CCD's voor astrofotografische doeleinden'' wel een beetje een slechte formulering geweest ...

    Links

    Algemeen

    Guiding a Telescope

    Stepper motors

    Jones on stepping motors
    Mel Bartels: Motorize Your Telescope
    Home built plotter
    Stepper Motor Intro
    Basic Stepper Motor Concepts
    Boondog Automation: tutorials, PCB artwork, free source code

    Chips

    Van Ganswijk chip directory
    CHIPINFO
    http://209.1.238.250/arpdf/1665.pdf

    Parallel port

    The PC's Parallel Port (veel links)
    Linux I/O port programming mini-HOWTO
    Linux On A Floppy
    tomsrtbt (Tom's floppy which has a root filesystem and is also bootable.") FTP download
    Problems with printer port adapters
    Linux Stepper Motor Device Driver

    Copyright © 2000, Geert Vernaeve.
    [ Terug ]