Hoe om te versieren een kamer eenvoudige kleuren

Hoe om te versieren een kamer eenvoudige kleuren

Hoe om te versieren een kamer eenvoudige kleuren

 Velen van jullie hebben dat vaak opgemerkt in de supermarkten en grotere kantoorruimte beschikbaar in verschillende kleuren versierd met prachtige glas aquaria. We zullen proberen om hetzelfde te herhalen, maar in onze huizen.

Hoe om te versieren een kamer eenvoudige kleuren

 Stap 1: Materialen
  1.  Bodem
     Bloem (we kozen varen)
     Glazen container met een open top


    Hoe om te versieren een kamer eenvoudige kleuren

     Stap 2: Reinigen
     Was glazen flessen met water en zeep.
     Laten drogen voordat je de grond giet.

    Hoe om te versieren een kamer eenvoudige kleuren

     Stap 3: Test
     Zet voorzichtig een bloem in een kom, recht in de pot om te zien hoe het zal fabriek kijken.

    Hoe om te versieren een kamer eenvoudige kleuren

     Stap 4: Wijzig
     We nemen de bloem en snijd de extra takken als nodig is, zoals in ons geval.
    Hoe om te versieren een kamer eenvoudige kleuren

    Hoe om te versieren een kamer eenvoudige kleuren

    Hoe om te versieren een kamer eenvoudige kleuren

     Stap 5: Bodem
     Breng zorgvuldig de plant in een container, maar zonder pot.
     Vervult de aarde.
    Hoe om te versieren een kamer eenvoudige kleuren

     Stap 6: water geven
     Bewaterd bloem naar de bodem te verzachten. Niet overdrijven dit feit.
    Hoe om te versieren een kamer eenvoudige kleuren

    Hoe om te versieren een kamer eenvoudige kleuren

     Stap 7: Klaar
     Versier de kamer een paar bloemen.  

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA


 Totaal 200 roebels om een ​​goede basis te kopen voor een eenvoudige klus. Het project werd afgesloten met buitenlandse collega's Adruino Arts. Voor de tenuitvoerlegging moeten de basisprincipes van robotica, elektronica kennen en begrijpen een beetje programmering.
 In de videoclip auteur van vertelt en laat zien dat we een resultaat moet krijgen.
 Naast de lampen hebben we een set van Grove - Toy Kit. Bestel online u kunt winkelen op prijs 79,9 $.
 Het belangrijkste idee - definitie van statische of dynamische toestand van het object door bewegingsdetectie. Als het antwoord positief is, dan lopen een van de actuatoren en afspelen van vooraf opgenomen boodschap. Anders geactiveerd 2e servo, en een ander geluid opnemen.
 Bepaling van het gaan door een of andere vorm van invoer. Zo krijgen we het resultaat in binaire code 0 of 1.
 Recorder de opgenomen geluid slechts 4 te spelen via een extern signaal. Om op te nemen (elke 15 sec.), Het is noodzakelijk om over te schakelen op de knop «play» naar «opnemen». Na de opname opnieuw knop moet schakelen. Dit kan worden gedaan door middel van code (functie play ()). In servo kabel is 3 "plus", "min" en de digitale gegevens. De eerste 2 voedsel voor servo (max 7) en 3 verbonden met een digitale uitgang, die informatie over de toestand van de schakelaar en code ontvangt.
 Eerst ontleed lamp. We hebben geen elektrische componenten nodig, maar moeten fundament werken. Je moet ook een aantal rekwisieten en ondersteunende elementen.
 Maak een gat in de buis naar ons ontwerp aan te sluiten.
 Het prototype robot is klaar!

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

 Stap 1: Glow
 Met behulp van LED-lamp IKEA Oleby (Food op zonne-energie).
 De schakelaar werkt alleen in een digitaal apparaat, en daarom afhankelijk van het huidige netwerk. Als we overschakelen podsoedynym Pay Seeeduino, kunt u de digitale uitgang LOW zetten, en dan zal er stroom is. Toen zetten HIGH, verschijnt hij opnieuw.
 Ook binnen de lamp en we sluit een weerstand met de LED beschermen.
 Stel het licht element in de metalen voet.

Opgewaardeerd lamp robot met IKEA

 Stap 2: Principe
 Wij hebben de lamp bevestigd servo detector controle, triple as accelerometer, recorder en spelen 4 verschillende geluiden.
 Het basisprincipe van de lamp is als volgt:

 Het blijkt dat het lawaai (geluid)
 Inclusief lamp
 Runs opnemen №3
 Hand Lamp biedt beweging (links-rechts-links)
 Servo blijft bij 90 °
 Voltooide transactie

 Als er ruis, dan:

 Inclusief lamp
 Servo met lamp naar links
 Runs opnemen №2
 Lamp terug in positie 90 °
 Voltooide transactie

 Als de metalen arm van een bepaalde (hoge) positie bereikt, dan is het spelen opnemen №4.

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

Opgewaardeerd lamp robot met IKEA

 Stap 3: Verbetering
 In het ontwerp werk kan een aantal verbeteringen aan te brengen als het inbedden van een schakelaar vergoeding Seeeduino, tot code-uitvoering te controleren met behulp van een regelmatige cyclus IF. Als de schakelaar is ingeschakeld - start stand auto, zo niet - mode handleiding.
 Auto-mode bevat standaard code wanneer de lamp reageert op geluid.
 Manual-mode biedt beheer op afstand door middel van een drievoudige assige versnellingsmeter, het veranderen van de positie van de assen X en Y.
 U kunt een bocht lichten te maken op 360 °, voegt er een aparte servo. Kan ik instellen om verbinding via Wi-Fi / Ethernet.
 Stap 4: Code
 Auteur code (MrLdnr) is hieronder te vinden.
 [Spoiler]
 #include
 const int buttonpin = 4; // Positie schakelaar
 int buttonState = 0; // Variabele voor het lezen van de positie knoppen
 // Servo Setup
 Servo myservo2;
 Servo myservo; // Maakt voor servo controle
 int pos = 0; // Variabele om de servo positie op te slaan
 int POS2 = 0; // Variabele om de servo positie op te slaan
 int val1;
 int val2;
 // LED SETUP
 const int ledPin2 = 5; // Hoofd licht
 const int ledPin = 12; // licht van de Buis
 int countlamp2 = 0;
 // Noise Setup
 const int thresholdvalue = 300; // De respons op geluid
 // Set akseleometra
 int ystate;
 int xstate;
 #include
 # define MMA766ddr 0x4c
 # define MMA7660_X 0x00
 # define MMA7660_Y 0x01
 # define MMA7660_Z 0x02
 # define MMA7660_TILT 0x03
 # define MMA7660_SRST 0x04
 # define MMA7660_SPCNT 0x05
 # define MMA7660_INTSU 0x06
 # define MMA7660_MODE 0x07
 # define MMA7660_SR 0x08
 # define MMA7660_PDET 0x09
 # define MMA7660_PD 0x0A
 klasse Versnelling
 {
 publiek:
 char x;
 char y;
 char z;
};

 char index;
 char controle;
 char staat;
 int audiodelay = 1000;
 leegte mma7660_init (void)
 {
 Wire.begin ();
 Wire.beginTransmission (MMA766ddr);
 Wire.send (MMA7660_MODE);
 Wire.send (0x00);
 Wire.endTransmission ();
 Wire.beginTransmission (MMA766ddr);
 Wire.send (MMA7660_SR);
 Wire.send (0x07); // Monsters / Second Active Mode en Auto-Slaap
 Wire.endTransmission ();
 Wire.beginTransmission (MMA766ddr);
 Wire.send (MMA7660_MODE);
 Wire.send (0x01); // actieve modus
 Wire.endTransmission ();
}

 leegte setup ()
 {
 mma7660_init (); // Doe I2C-bus (adres selectieve master-apparaat)
 Serial.begin (9600);
 // Motion Sensor
 pinMode (6 INPUT); // gebruikt 2 voeten voor extern signaal
 // Lamp licht en de basis licht
 pinMode (ledPin, OUTPUT);
 pinMode (ledPin2 OUTPUT);
 // SERVOS
 // AUDIO
 DDRD | = 0x0C; // D2 en D3 schrijven in stand;
 PORTD & = 0xF3; // D2 en D3 te laag;
 // Noise sensor op analoge 0
 // SWITCH
 pinMode (buttonpin, INPUT);
}
 leegte rec_2_begin ()
 {
 PORTD = (PORTD | 0b00000100) & 0b11110111;
}
 leegte rec_2_stop ()
 {
 PORTD & = 0xF3;
}
 leegte play_2 ()
 {
 PORTD = (PORTD | 0b00000100) & 0b11110111;
 vertraging (audiodelay);
 PORTD & = 0xF3;
}
 ////////////////////////////////////////////////// ////////////////////
 ////////////////////////////////////////////////// /////
 // Functie om de segment_3 controleren
 leegte rec_3_begin ()
 {
 PORTD = (PORTD | 0b00001000) & 0b11111011;
}
 leegte rec_3_stop ()
 {
 PORTD & = 0xF3;
}
 leegte play_3 ()
 {
 PORTD = (PORTD | 0b00001000) & 0b11111011;
 vertraging (audiodelay);
 PORTD & = 0xF3;
}
 ////////////////////////////////////////////////// ///
 ////////////////////////////////////////////////
 // Functie om de segment_4 controleren;
 leegte rec_4_begin ()
 {
 PORTD = PORTD | 0b00001100;
}
 leegte rec_4_stop ()
 {
 PORTD & = 0xF3;
}
 leegte play_4 ()
 {
 PORTD = PORTD | 0b00001100;
 vertraging (audiodelay);
 PORTD & = 0xF3;
}
 //////////////////////

 leegte check_move ()
 {
 int sensorValue = digitalRead (6);
 if (sensorValue == 1)
 {
 // DigitalWrite (ledPin, HIGH);
 //Serial.println(sensorValue, December); // output de positie signaal naar de monitor.
 // Servo1 ();
}
 anders
 {
 // DigitalWrite (ledPin, LOW);
 //Serial.println(sensorValue, December); // output de positie signaal naar de monitor.
 // Servo2 ();
}
}
 leegte servo1_right ()
 {
 myservo.attach (9);
 voor (pos = 90; pos = 90; moge- = 1) // loopt van 0 tot 180 graden
 {
 myservo.write (pos); // Vertelt de servo positie door middel van een variabele 'pos'
 vertraging (10); // Waits 15 ms totdat de servo neemt de positie
} * /
}
 leegte servo1_left ()
 {
 myservo.attach (9);
 voor (pos = 90; pos & gt; 1; pos - = 1) // gaat van 0 tot 180 graden
 {// Stappen van 1 graad
 myservo.write (pos); // Vertelt de servo positie door middel van een variabele 'pos'
 vertraging (10); // Wacht op 15 ms, terwijl de servo geen positie innemen
} / *
 play_2 ();
 delay (1000);
 voor (pos = 1; pos90) {
 voor (pos = posact; pos & gt; 90; pos - = 1) // 90 graden terug
 {// Stappen van 1 graad
 myservo.write (pos); // Vertelt de servo positie door middel van een variabele 'pos'
 vertraging (10); // Wacht op 15 ms, terwijl de servo geen positie innemen
}
}
 else {
 voor (pos = posact; pos 60; pos - = 1) // gaat van 0 tot 180 graden
 {// Stappen van 1 graad
 myservo2.write (pos); // Vertelt de servo positie door middel van een variabele 'pos'
 vertraging (10); // Wacht op 15 ms, terwijl de servo geen positie innemen
} / *
 play_2 ();
 delay (1000);
 voor (pos = 1; pos90) {
 voor (pos = posact; pos & gt; 90; pos - = 1) // de positie van 90 graden terug
 {// Stappen van 1 graad
 myservo2.write (pos); // Vertelt de servo positie door middel van een variabele 'pos'
 vertraging (10); // Wacht op 15 ms, terwijl de servo geen positie innemen
}
}
 else {
 voor (pos = posact; pos<=90 ;="" pos="" +="1)" goes="" from="" 0="" degrees="" to="" 180="">
 {// Stappen van 1 graad
 myservo2.write (pos); // Vertelt de servo positie door middel van een variabele 'pos'
 vertraging (10); // Wacht op 15 ms, terwijl de servo geen positie innemen
}
}
}


 leegte servo1_no ()
 {
 myservo.attach (9);
 voor (pos = 90; pos = 90; moge- = 1) // gaat 180-0 graden
 {
 myservo.write (pos); // Vertelt de servo positie door middel van een variabele 'pos'
 vertraging (10); // Wacht op 15 ms, terwijl de servo geen positie innemen
}
}
 leegte servo2 ()
 {
 myservo2.attach (10);
 voor (POS2 = 110; POS2< 140;="" pos2="" +="1)" ??="" 0="" ??="" 180="">
 {//
 myservo2.write (POS2); // Vertelt de servo positie door middel van een variabele 'pos'
 vertraging (15); // Wacht op 15 ms, terwijl de servo geen positie innemen
}
}

 ongeldig servo1R ()
 {
 myservo.write (90);
 myservo.detach ();
}
 ongeldig servo2R ()
 {
 myservo2.write (90);
 myservo2.detach ();
}
 leegte lampblink ()
 {
 // Int sensorValue = digitalRead (6);
 // If (sensorValue 1 =) {
 digitalWrite (ledPin, HIGH);
 // Delay (1);
 // DigitalWrite (ledPin, LOW);
 // Delay (1);
 //}
 // Else
 // DigitalWrite (ledPin, LOW);
}
 leegte lamptest ()
 {
 for (int i = 0; i<100;>
 {
 digitalWrite (12 HIGH);
 vertraging (50);
 digitalWrite (12 LOW);
 vertraging (50);
}
}
 leegte lampoff ()
 {
 // Delay (2000);
 digitalWrite (ledPin, LOW);
}
 // Akseleometr
 ongeldig Ecom ()
 {
 unsigned char val [3];
 int count = 0;
 val [0] = val [1] = val [2] = 64;
 Wire.requestFrom (0x4c, 3); // Vraagt ​​3 bytes van het apparaat in de slave-modus 0x4c
 while (Wire.available ())
 {
 als (aantal 63) // herladen
 {
 val [count] = Wire.receive ();
}
 tel ++;
}
 // Zet het signaal van 7 bits 8 bits
 Versnelling ret;
 ret.x = ((char) (val [0] 2)) / 4;
 ret.y = ((char) (val [1] 2)) / 4;
 ret.z = ((char) (val [2] 2)) / 4;
 ystate = ret.y;
 xstate = ret.x;
 Serial.print ("x =");
 Serial.println (ret.x, december); //
 Serial.print ("y =");
 Serial.println (ret.y, december); //
 Serial.print ("z =");
 Serial.println (ret.z, december); //
}
 char lezen = 0;

 leegte loop ()
 {
 Ecom (); // Controleer de status van de versnellingsmeter
 digitalWrite (ledPin2HIGH);
 buttonState = digitalRead (buttonpin); // Reading standenschakelaar
 if (buttonState == HIGH)
 {
 lampblink (); // slaat LED aan:
 myservo.attach (9);
 myservo2.attach (10);
 val1 = ystate;
 val1 = kaart (val130 -300.179);
 myservo2.write (val1);
 val2 = xstate;
 val2 = kaart (val2 -30.300 179);
 myservo.write (val2); // Stelt de servo positie volgens de waarde ranzhyruemыm
 if (ystate thresholdvalue)
 {
 Serial.println ("JA");
 // DigitalWrite (ledNoise, HIGH);
 play_4 ();
 // Lampoff ();
 lampblink ();
 servo1_no ();
 servo1_no ();
 servo1R ();
 delay (1000);
}
 anders
 {
 lampoff ();
}
 // Controleren op beweging
 int sensorValue = digitalRead (6); // Bewegingsmelder
 if (sensorValue == 1)
 {
 Serial.println ("Move");
 // Movestate = 1;
 lampblink ();
 // Servo2 ();
 servo2_right ();
 servo1_right ();
 play_2 ();
 delay (1000);
 servo2_return ();
 servo1_return ();
 servo1_left ();
 servo2_left ();
 play_2 ();
 delay (1000);
 servo2_return ();
 servo1_return ();
 // Delay (1000);
}
 anders
 {
 // DigitalWrite (ledNoise, LOW);
 // Servo2 ();
 servo1R ();
 servo2R ();
 lampoff ();
 // Play_2 ();
 // Movestate = 0;
}
}
}  




Яндекс.Метрика