zondag 24 mei 2015

Een loketautomaat met leengoederen

Af en toe krijgen we bij Zyp25 gasten die hun leesbril of telefoonvoeding thuis hebben laten liggen. Ik heb al een hele tijd het idee om voor hen leen-leesbrilletjes ter beschikking te stellen. De brilletjes had ik al gekocht, maar ik had nog geen leuke manier om ze aan te bieden.

Een automatiek leek me eigenlijk wel het mooiste. Op internet vond ik een bedrijf (www.automatenservicenederland.com) die nog een tweedehandse loketautomaat had en die kwam dit weekend aan.


De loketautomaat
 Je kunt wel zien waar hij vandaan komt: FEBO!



 Ik ben begonnen met het verwijderen van alle knalgele bordjes.


Een zat een slotje in, maar zonder sleutel. Gelukkig had ik nog een cilinder en die paste precies.

Nieuw slot


Daarna heb ik verlichting er bij gemaakt van een oude TL-balk die nog in de kelder lag.



Even testen met een brilletje en het ziet er goed uit.


De automaat heeft geen achterwand en voor mijn doel is dat wel handig, dus ik heb er plaatjes Tiffany-glas in gemaakt.


Sponning voor het glas
De automaat komt in een algemeen toegankelijk deel van het pand, namelijk de gang naar het achterhuis.

Muur met wandcontactdoos

Hier is een muurtje van gipsplaat waar hij mooi in gemaakt kan worden. Het enige probleem is dat er een stofzuigstopcontact in de muur zit en die zit net op de plaats van de automaat.


Die moet dus naar beneden verplaatst worden.

Achterkant wand
De achterkant van deze muur zit in een kast en is alleen afgewerkt met een plaat gips en wat schroeven, dus die kan er makkelijk uit.

Achterkant verwijderd
 De wandcontactdoos heb ik verwijderd en het gat voor de automaat gezaagd,



Frame in het gat

Na een beetje bijsnijden past het frame van de automaat er mooi in.


Boven de automaat heb ik en wandcontactdoos gemaakt voor de verlichting van de loketautomaat.



Daarna is het een kwestie van de automaat er in hangen en aansluiten.

Achterkant




Om het geheel wat meer in de stijl van het pand te maken heb ik er een goud gespoten lijst omheen gemaakt.

De lijst geklemd zodat de montagekit kan drogen
 Als laatste heb ik de leenspullen er in gelegd.






Een leuk project afgerond in ongeveer een dag. Benieuwd wat de gasten er van vinden...

zaterdag 9 mei 2015

Werken aan de glaskapjes van de tappenhuisverlichting

In het trappenhuis zijn er negen traphekken met elk vier lampjes. Elk lampje heeft twee glaskapjes.
Een deel van de 72 glaskapjes is al klaar.

Dit hek heeft alle glaskapjes

Deze ook

Dit is de andere kant van het hek op de vorige foto

Met parfumflesje

Deze stelt een libellenkop voor met twee oogjes




Dit is de andere kant van de libellenkop


In dit flesje kan een bloemetje

In dit kapje zitten twee glasbeestjes verwerkt



donderdag 26 februari 2015

Problemen met de trapsturing opgelost

De besturing van de trapverlichting bleek een probleem te hebben. Wanneer alle 38 lampjes aangeschakeld waren, dan raakte er iets oververhit in de processorprint en schakelde de print zichzelf uit. Dat komt omdat ik 36 minirelais rechtstreeks op de processor had aangesloten.
Kennelijk verbruikt dat toch te veel stroom.

Maar niet getreurd, in China heb ik een print gekocht met 16 relais en met opto-couplers, zodat de aansturing nauwelijks stroom vraagt. Er moest alleen nog een kast omheen en aansluiten maar.

In de bovenste kast de tweede print
Nu kan ik wel alle lampjes tegelijk aan sturen.

zondag 14 december 2014

Een testprogramma voor de trap

Voor de aansturing van de trap heb ik een eenvoudig programma (sketch in Arduino-taal) geschreven dat een paar lampen aanstuurt op basis van de PIR-sensoren en de afstandbediening.

In een oneindige loop kijkt het programma welke knop van de afstandbediening wordt ingedrukt (er zijn vier knoppen) en of er iemand in bereik van de PIR-schakelaar loopt.

Afstandbediening met vier knoppen. Midden de ontvanger en rechts de antenne

PIR-sensor in het hekwerk
In rood de uitleg bij het programma.

De sensoren heb ik op analoge pinnen 4 en 5 van de Arduino aangesloten.

  //set up constants for PIR sensors
  const int PIR1 = A4;   // PIR sensor 1
  const int PIR2 = A5;   // PIR sensor 2


De afstandbediening heb ik op analoge pinnen A0 t.m. A3 aangesloten

  // set up constants for remote control
  const int RCA = A2;   // Remote Control button A
  const int RCB = A0;   // Remote Control button B
  const int RCC = A3;   // Remote Control button C
  const int RCD = A1;   // Remote Control button D


Voorlopig stuur ik zes lamprelais aan, aangesloten op de digitale pinnen 8 t.m. 13 

  //set up constants for relais output to lamps
  const int L1 = 13;   // Lamp1
  const int L2 = 12;   // Lamp2
  const int L3 = 11;   // Lamp3
  const int L4 = 10;   // Lamp4
  const int L5 = 9;    // Lamp5
  const int L6 = 8;    // Lamp6

//set up blinkmodes

Ik definieer vier modussen voor het systeem: Alles uit, alles aan, alles knipperen en alleen knipperen bij aanwezigheid van een persoon

  const int BM_AllOff = 0;    // All lights are off
  const int BM_AllOn = 1;    // All lights are on
  const int BM_BlinkAll = 2; // All lights blink
  const int BM_PIR = 3;    // Blink on PIR-sensor reading


We starten in de modus waarin alles uit is.

  int BlinkMode = BM_AllOff; //

De variabele BlinkStatus gebruik ik om tussen Aan en Uit te schakelen. De variabele houdt bij of de lampen aan of uit staan.

  boolean BlinkStatus = false;

// the setup routine runs once when you press reset:

Nu moeten we de pinnen configureren, dus bepalen of ze input-pinnen zijn of output-pinnen.
De Afstandbediening-pinnen zijn input-pinnen

void setup() {
  // set up pins for remote control
  pinMode(RCA, INPUT);
  pinMode(RCB, INPUT);
  pinMode(RCC, INPUT);
  pinMode(RCD, INPUT);

De PIR-pinnen zijn input-pinnen

  // set up pins for PIR sensors
  pinMode(PIR1, INPUT);
  pinMode(PIR2, INPUT);


De Lamp-pinnen zijn output-pinnen

  // set up pins for lamps
  pinMode(L1, OUTPUT);
  //pinMode(L2, OUTPUT);


  // Make the inputs for remote control a pullup resistor
  digitalWrite(RCA,HIGH);
  digitalWrite(RCB,HIGH);
  digitalWrite(RCC,HIGH);
  digitalWrite(RCD,HIGH);

Omdat ik op mijn scherm wil zien wat het systeem doet, configureer ik een communicatiekanaal
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
 

}

De onderstaande procedure zorgt er voor dat de lampen knipperen. De procedure doet één (halve) knipper. De procedure maakt de lamp-pinnen hoog of laag, afhankelijk van wat ze waren en wacht daarna een tussenpoos van 500 milliseconden.

void doBlink(){
    if (BlinkStatus) {
      digitalWrite(L1, HIGH);
      digitalWrite(L2, LOW);
   
    }else{
      digitalWrite(L1, LOW);
      digitalWrite(L2, HIGH);
    }
    delay(500);
    BlinkStatus = !BlinkStatus;
}


// the loop routine runs over and over again forever:

Dit is de loop die eindeloos herhaald wordt

void loop() {

 // read the input pin:

Kijk wat de afstandbediening aangeeft

  int buttonA = digitalRead(RCA);
  int buttonB = digitalRead(RCB);
  int buttonC = digitalRead(RCC);
  int buttonD = digitalRead(RCD);

Schakel de juiste blinkmode in afhankelijk van de ingedrukte knop
en stuur de waarde naar de serial printer zodat ik die op het scherm kan zien.

  // Set blinkmode from remote control
  if (buttonA == 1) {
    BlinkMode = BM_AllOff;
    Serial.print("BlinkMode set to BM_AllOff"); Serial.println();
  }
  if (buttonB == 1) {
    BlinkMode = BM_AllOn;
    Serial.print("BlinkMode set to BM_AllOn"); Serial.println();
  }
  if (buttonC == 1) {
    BlinkMode = BM_BlinkAll;
    Serial.print("BlinkMode set to BM_BlinkAll"); Serial.println();
  }

  if (buttonD == 1) {
    BlinkMode = BM_PIR;
    Serial.print("BlinkMode set to BM_PIR"); Serial.println();
  }

De onderstaande code implementeert de knipper modussen 

//Blinking routine

Alles uit, dus maak de lamp-pinnen laag
  //All lights are off
  if (BlinkMode == BM_AllOff){
    digitalWrite(L1, LOW);
    digitalWrite(L2, LOW);
  }

Alles aan, dus maak de lamp-pinnen hoog
  //All lights are on
  if (BlinkMode == BM_AllOn){
    digitalWrite(L1, HIGH);
    digitalWrite(L2, HIGH);
  }

Alles knipperen, dus wissel de status van de lampen met de knipperroutine
  //All lights blink
  if (BlinkMode == BM_BlinkAll){
  doBlink();
  }

Knipperen bij aanwezigheid, dus knipper wanneer één van de twee PIR-sensoren een spanning afgeeft. N.B: || = OR

// Lights blink on PIR
  if (BlinkMode == BM_PIR){

    if ((digitalRead(PIR1)== HIGH)||(digitalRead(PIR2)== HIGH)) {
    doBlink();
    }

 
  }

delay(5); // delay in between reads for stability
}

Dit programma heb ik getest en het werkt naar behoren. Ik hoop dat het nog steeds werkt wanneer er vijf meter kabel tussen de sensor en de Arduino zit... Maar dat hoor je in een volgende blog.

Werken aan de schakelkast van de trap

De schakelkast van de trap vordert langzaam want steeds bedenk ik weer wat en dan heb ik onderdelen van Conrad nodig en dat duurt dan weer een paar dagen.

Zo had ik bedacht dat een draadloze afstandbediening wel leuk zou zijn. Dus ééntje besteld, maar die deed het niet. Duurde weer even voordat ik een werkende had.

Afstandbediening

Printje met connector voor de afstandbediening. Rechts de hoofdzekering.

En ik had mooie PIR-sensoren gekocht voor in het hekwerk. Maar de sensor zat niet recht voor de print en daardoor paste hij niet in mijn 3D-geprinte behuizing.

Fout uitgelijnde sensor en print
Ik kreeg nieuwe van de leverancier www.hobbyelectronica.nl en wel de volgende dag. De sensoren zitten nu in de traphekken.

PIR sensor


De sensoren vallen niet erg op
Verder heb ik bedacht dat het toch wel handig zou zijn wanneer de kast geheel met stekkers zou zijn aangesloten. Waarschijnlijk moet hij nog wel een paar keer naar de werkplaats. Dus een connector (40 polig) besteld en geprobeerd de vijf netwerkkabels er in te krijgen. De connector is bedoeld voor lintkabel, dus dat ging mis en nu wacht ik op de volgende connector....

Ook had ik een kortsluiting in de bekabeling, met als gevolg dat een netwerkcontactdoos gesmolten is. Dat krijg je er van wanneer je je lampjes even leuk aansluit voor de kerst, de zekering vergeet en een 10 Ampère voeding zichzelf begrenst op 10 ampère bij kortsluiting. Dus een nieuwe doos besteld en een automatische zekering... En weer wachten....


Zo ziet de kast er nu uit
De onderkant met van links naar rechts:
12V lampvoeding, lampenconnector, RJ45 sensorconnector,
USB-aansluiting Arduino, 7V computervoeding Arduino

Zucht...

Maar het zal ooit lukken. In ieder geval ziet de kast er al indrukwekkend complex uit.......