Nachtlamp ‘Counting Pugs’

by loishansjek in Circuits > Arduino

81 Views, 1 Favorites, 0 Comments

Nachtlamp ‘Counting Pugs’

image.png
IMG 4151

Het idee:

De mopshondjes zitten allebei los verbonden aan hun eigen motor dat rond de 90 graden van links en rechts kan bewegen. Deze motortjes zitten verstopt achter de voorgrond van wolkjes en een maan. Om beweging te detecteren zit er een ultrasoon sensor verwerkt in de voorgrond die verstopt is als het gezicht van het wolkje. Zodra er beweging rond de 30 cm voor het tafereeltje is, stuurt het een signaal naar de motortjes die dan beginnen te draaien.

 Ik heb ervoor gekozen om de lampjes wel de hele nacht aan te laten zoals een normaal nachtlampje. Er zijn twee kleine LED's verwerkt in de achtergrond waardoor er net genoeg licht te zien is. Dit geeft ook de illusie van een sterrennacht lucht om binnen thema te blijven. De lampjes zijn verbonden aan de lichtsensor boven op het tafereeltje. Dit is een systeem los van de motoren.


Ontstaan van het idee:

Na veel onderzoek kwam ik uiteindelijk uit op het idee om een automatische automaton te maken. Naar mijn verbazing is dit iets dat nog helemaal/bijna niet gemaakt is. Mijn moeder heb ik als onderwerp gekozen na aanleiding van een verhaal dat ze mij laatst vertelde. Afgelopen maanden heeft ze erg last van nachtmerries waarbij ze dan wakker schrikt en niet goed meer weet waar ze is. Dit is erg verontrustend en vermoeiend al helemaal midden in een drukke week.

Mijn idee was om een nachtkast tafereeltje te maken om haar gerust te stellen en bewust te worden van het feit dat het maar een droom was. 


Supplies

Behuizing:

  • Kartonnen doos: 7 cm, 15 cm, 11 cm
  • Los karton
  • Ijzerdraad
  • Printpapier, Ipad (voor tekeningen).

Gereedschap:

  • Lijm
  • Schaar
  • Potlood
  • Stanleymes
  • Tape
  • Lijmpistool

Benodigdheden solderen:

  • Soldeertin
  • Derde handje
  • Krimpkous
  • Ijzerwol
  • Aansteker
  • Soldeerbout

Elektrische onderdelen:

  • 2x Gele LEDs
  • 1x Ultrasoon sensor
  • 2x Arduino UNO
  • 1x LDR lichtgevoelige weerstand
  • 1x weerstand K Ohm
  • Verschillende jumper wires
  • Rood & zwart electriciteitsdraad
  • 2x Servomotoren S90
  • 5 V transformator stekker AC DC
  • 2x Aansluitsnoeren voor Arduino’s
  • 4x 1,5 V batterijen
  • 2x Batterij houders
  • 1x Soldeer board
  • 1x Kleine breadboard
  • 2x LED houder

Itereren & Ontwerpen

image (5).png
image (6).png
image (7).png
image (9).png
image (8).png

Omdat ik met mijn moeder ging samenwerken en wij andere eisen voor het project hadden moest hier rekening mee worden gehouden tijdens het ontwerpen (onder andere meerdere sensoren en actuatoren). Vanuit dit standpunt ben ik begonnen met het ontwerpen van een hypothetisch verzonnen sequence, om vervolgens daar een doel aan te geven. Deze tekeningen zijn niet relevant voor dit project maar wel voor het ontwerp process.

Deze ontwerpen waren te ingewikkeld en te geavanceerd voor een beginner om te maken en begrijpen.  Omdat de sequence ook geen ruimte voor kansen en doelen vanuit het perspectief van een ‘spel’ toeliet, kon ik hier als designer niet veel mee. Vanaf dat moment heb ik gekozen om het concept ‘een spel’ los te laten. Zoals al eerder benoemd is toen het concept van een zelfwerkende automaton ontstaan. Daar hoorde ook nog wat concept schetsen bij.

Bevestigen

image (10).png
image (12).png
image (11).png
image (13).png

Een groot probleem waar ik tegenaan liep was dat de simulaties die in Tinkercad goed werkten en niet in het echt. Op de afbeelding zijn alle gemaakte simulaties te zien.

Uiteindelijk is het wel gelukt om alles samen te voegen, echter had dit niet het gewenste effect. De twee systemen konden wel samen op een Arduino werken maar niet precies tegelijkertijd. Als het lampje aanging gingen de motoren uit en als de motoren aan gingen gingen uiteraard de lampjes uit. Vandaar bestaat dit project uit twee los werkende systemen. Toch voor het idee staat onder ook de versie waarbij alles op een systeem staat.



De Code

Arduino Code LED


/*Lois van den Berg & Caroline Krull

* april/mei 2023

* automaton nachtlamp Mopsjes tellen

* 2x gele LED

* 2x sensor (ldr & ultrasoon)

* 2x actuator (twee servo’s)

* 1x externe spanningsbron van 6 V

*/




int ldrPin = A0;        // LDR pin

int ledPin = 6;         // twee gele LEDs

int ldrVal = 0;         // Wrde van LDR


  void setup (){

  Serial.begin(9600);     // Stel seriele monitor in

  pinMode(ledPin, OUTPUT);    // Stel ledPin in als uitvoer

  }


//herhaal oneindig

void loop() {

 

  ldrVal = analogRead (ldrPin); // Lees analoge wrde LDR

  Serial.println(ldrVal);   // Toon de wrde in seriele monitor

 

  if  (ldrVal < 200) {      // Als LDR wrde lager is dan 200

    digitalWrite (ledPin, HIGH);// Zet LEDs aan

  } else {

    digitalWrite(ledPin, LOW);  // Zet LEDs uit

  }

 

  delay(100);         // pauze 100


}




Arduino Code Ultrasoon met servo’s

/*Lois van den Berg & Caroline Krull

* april/mei 2023

* automaton nachtlamp Mopsjes tellen

* 2x gele LED

* 2x sensor (ldr & ultrasoon)

* 2x actuator (twee servo’s)

* 1x externe spanningsbron van 6 V

*/



int trigPin = 3;

int echoPin = 2;

#include <Servo.h>

Servo servo 1;

Servo servo 2;

int angle = 0;


void setup() {

  Serial.begin(9600);         // stel seriële monitor in

   pinMode(trigPin, OUTPUT);  //stel trigpin in uitvoer

  pinMode(echoPin, INPUT);    // stel echopin in als invoer

  servo1.attach(4);           // servo 1 op pin 4

  servo1.write(angle);        //servo 1 beweegt naar hoek

  servo2.attach(12);          //servo 2 op pin 12

  servo2.write(angle);        //servo 2 beweegt naar hoek

}


void loop() {

  long duration, distance;

  digitalWrite(trigPin,HIGH);     //zet servo aan

  delayMicroseconds(1000);        //pauze

  digitalWrite(trigPin, LOW);      //zet servo uit

  duration=pulseIn(echoPin, HIGH); //zend ultrasoon

  distance =(duration * 0.0343) /2; // (duur * snelheid van licht): 2 (heen en terug)

  Serial.print("Afstand");        //serialmonitor notatie

  Serial.println(distance);      //serialmonitor notatie

  delay(100);                    //pauze


if (distance < 30)              //als afstand tot ultrasoonmeter kleiner dan 30 cm is dan ..

{

servo1.write(90);               //servo 1 gaat naar hoek van 90 graden

servo2.write(0);                //servo 2 gaat naar hoek van 0 graden

}

else {                          //als afstand tot ultrasoonmeter groter is dan 30 cm dan:

servo1.write(0);                // servo 1 gaat naar hoek van 0 graden

servo2.write(90);               // servo 2 gaat naar hoek van 90 graden

}

}





Bouwen

image (16).png
image (14).png
image (15).png

De volgende stap was om te gaan solderen en alles in elkaar te zetten. De twee lampjes worden aan elkaar gesoldeerd en daarna netjes afgesloten met krimpkousjes die krimpen in contact met vuur van de aansteker. Met behulp van het derde handje kan je de draadjes goed positioneren zodat het heel gemakkelijk is om ze vast te solderen. Vervolgens kunnen de lichtgevoelige sensor en bijbehorende weerstand vast worden gesoldeerd aan een klein stukje soldeer board zodat deze makkelijk achteraf gepositioneerd kan worden in het doosje. Ook worden de verbindende jumperwires hier aan vast gemaakt.

Alles is gemonteerd in een kartonnen doosje met twee verdiepingen. In de onderste verdieping is de breadboard met daarop de ultrasoon door een gat in het doosje gestoken. De motortjes zijn daarboven in het doosje uitgesneden met Stanleymes zodat ze goed vastzitten als de motortjes aan gaan en bewegen. Dit is gedaan met genoeg warme lijm. Omdat dit zichtbaarder was dan gedacht, heb ik hier nog een wolkje voor moeten zetten. De lampjes hebben hun eigen gaatjes in de achtergrond gekregen met een LED houder, zodat het er netjes afgewerkt uit ziet. In de bovenverdieping bevindt zich het tweede systeem met de lichtsensor die bovenop het doosje eruit steekt, bevestigd met wat tape.In dit project heb ik gebruik gemaakt van twee Arduino’s. Dat komt doordat er twee verschillende systemen tegelijkertijd moeten functioneren. Bij het systeem met de ultrasoon sensor vragen twee servomotoren om meer spanning dan de Arduino heeft (5 V), daarom is er voor de motoren een extra batterijpakket van 6 V aangesloten op de Arduino. Het andere systeem met de LEDs krijgt stroom van een 5 V transformator AC/DC stekker (in normaal gebruik van het nachtlampje zou dit dan ook een batterijpakket moeten zijn). 

Het ontwerp is uitgetekend in Procreate, uitgeprint op papier, op karton geplakt en uitgeknipt. Er zijn uiteraard ook andere ontwerpen mogelijk. Een probleem waar ik tegenaan liep was het geprinte papier dat zijn kleur losliet waardoor er veel krasjes ontstonden. Hier moet je voorzichtig mee zijn.



Conclusie

Aan de technische kant heb ik heel veel nieuwe dingen geleerd, zoals solderen, meer coderen en het hele concept Arduino. Persoonlijk ligt mij dit niet helemaal, waardoor ik er niet heel veel plezier in heb gehad maar ik ben wel trots op de resultaten daardoor. Een van de meest tijdrovende onderdelen was het combineren van de twee functies en het zoeken naar een oplossing in de code. Achteraf was dit op een veel makkelijkere manier op te lossen want een Arduino kan dit niet tegelijkertijd. Door dit ‘trial and error'-proces is mijn basis kennis een stuk beter geworden voor mogelijke toekomstige projecten.