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.......

Leuningen voor de traphekken

De afgelopen week heb ik de eikenhouten leuningen gemonteerd op de traphekken.

De leuningen zijn als profiel aangeleverd, op maat gemaakt en gelakt.

Rechte leuning


Bovenste leuning

De drie geknikte leuningen zijn met deuvels verbonden.

Geknikte leuning

De leuningen zijn met zwarte 6 x 40 torx schroeven aan het hekwerk bevestigd.


N.B. Zoals je ziet is het hek helemaal in kerstsfeer!

maandag 17 november 2014

De schakelkast voor de lampen in de traphekken

Alle 38 lampen in de traphekken zijn individueel schakelbaar met een Arduino microprocessor. De kabels van de lampen komen samen in een schakelkast waar de Arduino in zit. Om de lampen aan te sturen heb ik 38 printrelais gekocht.

Deze gaan in groepen van 20 en 18 op een experimenteerboard. Voor de aansluiting van de kabels van de lampen heb ik een klemmenstrook gekocht. Ik maak de print als een module die ik kan uitnemen voor het geval er iets mis mee is. Er zitten dus aan beide kanten connectoren.


Twee relais gemonteerd, nog 18 te gaan. Links de klemmenstrook voor de aansluiting van de lampen.

Achterkant met solderingen
De verbindingen heb ik gemaakt met gekleurde draadjes, steeds soldeer ik twee bij elkaar liggende gaten met in het ene gat een pin van een onderdeel en in het andere gat een draad.
Alle 20 relais gemonteerd

Achterkant met solderingen
De prints moeten ook vastgeschroefd kunnen worden. Hiervoor heb ik steunen geprint met de 3D-printer.

De 3D-printer aan het werk met de printsteun

De steun voor de relaisprint

Het model in de computer
 Hetzelfde geldt voor de microprocessorprint. Hier heb ik ook een steun voor geprint


Het model

De kast met de steun en de Arduino
De steunen lijm ik in de montagedoos met tweecomponentenlijm. Er zaten wat schroefsteuntjes in weg, maar die heb ik met een Dremel en een roterend zaagblad weggehaald.

Het is nu wachten om wat aansluitmateriaal, zoals een lintkabel, die ik nodig heb voor de verbinding tussen de relais-print en de Arduino. Daarna kan ik hopelijk de kast afmaken.

Aan de slag met de lampen in de traphekken

De afgelopen weken ben ik druk geweest met de lampenbollen in de traphekken. In alle traphekken is draad getrokken en ik heb de lamphouders met de 3D-printer gemaakt.

Ik heb één lampje afgemaakt, dat wil zeggen dat ik twee helften van glasmozaïek gemaakt heb en het lampje heb aangesloten. Het is een 12 V 3W gloeilampje.







Met de labvoeding kan ik de sterkte mooi instellen. Ik denk dat 8 V een mooie lichtsterkte oplevert.

Labvoeding

Het lampenkapje is verwijderbaar.
Omdat de lamp vervangen moet kunnen worden is het kapje verwijderbaar.
Momenteel sluiten de kapjes niet goed aan op de stalen ring, waardoor je in de lamp kijkt. Daar moet ik nog iets op verzinnen.





woensdag 8 oktober 2014

De traphekken zijn gearriveerd

De Hekkenman (www.hekkenman.nl) heeft de traphekken afgeleverd en geplaatst.
Een hele verbetering voor het trappenhuis. het ziet er al heel chic uit.




In elk hek zit een dier verstopt.

Maar nu moeten we nog aan de slag met de lampen in het hek. In elk hek zitten vier ringen waar een glasmozaïek bol in komt.


Ring voor een bol

De ringen hebben verschillenden vormen

Dat zijn dan dus 36 x 2 halve bollen die gemaakt moeten worden.....

Dit is het prototype


donderdag 11 september 2014

Privacyschermen voor de B&B

Tussen de B&B kamer de de badkamer zit een schuifdeur met mooi glas in lood.

Schuifdeuren
Maar..... Het is weliswaar gekleurd, maar toch erg transparant glas. Je kijkt er dus doorheen. En soms hebben wij gasten die dat niet prettig vinden. Bijvoorbeeld als het twee volwassenen zijn die geen intieme relatie hebben.

In het verleden heb ik daar stukjes hardboard voor gemaakt die je in de glasopeningen kunt klemmen. Maar dat is niet erg professioneel. Ik heb de hardboardstukjes nu voorzien van handvatten en ze mooi geschilderd. Het ziet er zo een stuk beter uit.

Handvatten en panelen liggen te drogen

De lange panelen voor de hoge glaspartijen
De paneeltjes zijn voorzien van een label dat de positie aangeeft.

Label: "Rechts boven"
Nu kun je in een handomdraai alle paneeltjes plaatsen.
Deur met paneeltjes
Voor de nette presentatie heb ik nog een doos gemaakt van een paar houtjes en wat platen 9 mm multiplex.
De doos in de lijmklemmen

Doos met deksel

De doos geopend
Zo kunnen de schermpjes netjes onderin de linnenkast opgeborgen worden.

zondag 7 september 2014

Een kast voor de kachelpijp

Door mijn appartement loopt een dikke rookgasafvoer van de houtkachel op de verdieping eronder. Daar heb ik een kast omheen gemaakt.

De kast bestaat eigenlijk uit drie platen die aan elkaar en de aan de muur zitten.

De voorplaat heb ik voorzien van roosters zodat de eventuele warme lucht van de buis uit de kast kan. Ik eg eventueel omdat de buis heel goed geïsoleerd is.

Achter de roosters heb ik de buis zwart gespoten met kachelzwart.

Buis en voorplaat

Onderkant buis 

Alle onderdelen heb ik van te voren in de werkplaats klaar gemaakt.

Zijplaten
Onder door de kast lopen ook nog twee netwerkkabels. Hiervoor heb ik een 28 mm buis in de lengte open gesneden en onder de kabels er door gehaald.



De balkjes zitten op de muur met slagpluggen. De kast paste meteen en met een beetje duwen stond hij ook nog redelijk waterpas.


De kast geplaatst

 Daarna heb ik de bestaande boekenkasten er weer tegenaan geplaatst.

Het eindresultaat
Het ziet er een stuk beter uit. De volgende stap is de witte kast links van de nieuwe kast vervangen door een terugliggend rood exemplaar.

Maar daarover later.