User Tools

Site Tools


random_object_build_challenge_2020:random_build_wrusman

This is an old revision of the document!


Op dinsdag 1 december gaf willem het volgende object aan wouter :


Het lijkt te gaan op een mechanische/optische 4 bit teller (0..15) die wordt aangedreven door een stappenmotor.
De schijf onderbreekt de lichtstralen tussen de gloeilampjes bovenin en de lichtsensoren (waarschijnlijk fotodiode) onderin.


Het geheel wordt aangedreven door een IMPEX (Philips) ID0.4 stappenmotor van het type 9904 112 04102
Zoeken op internet wijst uit dat dit een 4 fase unipolaire stappenmotor is die is geproduceert in week 21 van 1973.
De codering MB 03 slaat op de fabriek van MBLE (aanverwant aan philips) waar de motor is gefabriceerd

Specificaties van dit specifieke type zijn niet te vinden, wel van zijn voorganger uit 1970:

Hieruit zijn in ieder geval de kleuren van de draden te herleiden naar hoe de motor aangesloten moet worden.

Om de motor te laten draaien moeten de spoelen in een specifieke volgorde worden aangestuurd:

De “Wave drive” lijkt makkelijk zat, uiteraard in stijl discreet uitgevoerd (tranistoren) met zoiets als dit :


En weer een stapje verder ben ik er uit; het gaat een synthesizer-sequencer worden doormiddel van een 74HCT4514 4-to-16 line decoder en drie oscillatoren die hierdoor worden aangestuurd.

Deze decoder maakt met de output van de fotodiodes uit het object en de snelheid die de schijf draait een sequence die elke tel van de schijf een ander pootje van het ic “hoog” maakt en zo 16 kanalen op- of aftelt. Op elke stap worden 3 oscillatoren met elk een apart in te stellen toonregeling aangestuurd.

"Look mum no computer" heeft een heel mooi simpel analoog oscillator schema staan,


De wave drive blijkt op lage snelheden niet vloeiend te bewegen, dus ik moest toch overstappen op iets dat nettere stap patronen genereert. Uiteindelijk is het een attiny85 geworden omdat deze :

  • precies genoeg i/o pinnen heeft.
  • een makkelijk te solderen dip behuizing heeft.
  • weinig tot geen randcomponenten nodig heeft om te kunnen werken,
  • qua rekenpower meer dan genoeg capaciteit heeft voor deze taak.
  • ik deze nog had liggen ;-)

Het schema is vrij simpel en heb ik in Fritzing uitgetekend :

Ook de code is vrij straightforward, het stap patroon voor half-step zoals in de documentatie beschreven wordt is hierin terug te vinden :

void setup() {  
  pinMode(0, OUTPUT); // attiny pin 5
  pinMode(1, OUTPUT); // attiny pin 6
  pinMode(2, OUTPUT); // attiny pin 7
  pinMode(3, OUTPUT); // attiny pin 2
  pinMode(A2, INPUT); // attiny pin 3
  digitalWrite(0, LOW);
  digitalWrite(1, LOW);
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
}

void loop() {
  // half-step drive using input from potmeter as speed control
  int delay1=map(analogRead(A2),0,255,20,80);
  digitalWrite(0, HIGH); 
  digitalWrite(1, LOW); 
  digitalWrite(2, LOW); 
  digitalWrite(3, HIGH);
  delay(delay1);                    
  digitalWrite(0, HIGH); 
  digitalWrite(1, LOW); 
  digitalWrite(2, LOW); 
  digitalWrite(3, LOW);
  delay(delay1);                    
  digitalWrite(0, HIGH); 
  digitalWrite(1, LOW); 
  digitalWrite(2, HIGH); 
  digitalWrite(3, LOW); 
  delay(delay1);                    
  digitalWrite(0, LOW); 
  digitalWrite(1, LOW); 
  digitalWrite(2, HIGH); 
  digitalWrite(3, LOW);
  delay(delay1);                    
  digitalWrite(0, LOW); 
  digitalWrite(1, HIGH); 
  digitalWrite(2, HIGH); 
  digitalWrite(3, LOW);
  delay(delay1);                    
  digitalWrite(0, LOW); 
  digitalWrite(1, HIGH); 
  digitalWrite(2, LOW); 
  digitalWrite(3, LOW);
  delay(delay1);                    
  digitalWrite(0, LOW); 
  digitalWrite(1, HIGH); 
  digitalWrite(2, LOW); 
  digitalWrite(3, HIGH);
  delay(delay1);                    
  digitalWrite(0, LOW); 
  digitalWrite(1, LOW); 
  digitalWrite(2, LOW); 
  digitalWrite(3, HIGH);
  delay(delay1);                    
}

samen wordt dit opgebouwd in print dit geheel :

De 7805 spanningsregelaar kan het net trekken qua stroom, ik zal er voor deze zekerheid nog even een koellichaam op zetten.


random_object_build_challenge_2020/random_build_wrusman.1607934236.txt.gz · Last modified: 2022/09/29 21:26 (external edit)