Viedais interaktīvais luksofors: 5 soļi (ar attēliem)
Viedais interaktīvais luksofors: 5 soļi (ar attēliem)
Anonim
Gudrs interaktīvs luksofors
Gudrs interaktīvs luksofors

Vai esat gatavs izveidot pasaulē labāko un interaktīvāko luksoforu? Labi! Šajā apmācībā mēs izskaidrosim, kā to izveidot pats, izmantojot Arduino.

Nepieciešamās sastāvdaļas:- Arduino (..duh)- LM317 Mosfet- 2x 60cm Analog RGB LED sloksnes (12V)- PVC caurule (1m x 125mm)- Kabeļi (sarkans un melns)- Metāla plāksnes gaismas vāciņiem- Akrils gaismai - ikonas (pārbaudiet flaticon.com.svg ikonas)- Spraycan melnbaltā krāsa.- Elektriskā lente- Visas nepieciešamās lodēšanas sastāvdaļas- Displejs ar nepieciešamo vairogu (netiek izmantots apmācībā)

1. darbība: 1. darbība: izveidojiet gaismas vāciņus

1. solis: izveidojiet gaismas vāciņus
1. solis: izveidojiet gaismas vāciņus

Dizains patiešām ir atkarīgs no jums. Mēs esam izveidojuši 15x15 cm vāciņu, lai turētu gaismas. Mēs esam sagriezuši metāla plāksnes pareizajā izmērā un izmantojuši metāla locītāju (nē, ne no Avatar), lai salocītu vāciņus pareizās formās. Aizmugurējās plāksnes tika izgatavotas no cita komponenta.

2. solis: 2. solis: PVC staba sagatavošana

2. solis: PVC staba sagatavošana
2. solis: PVC staba sagatavošana

Izgrieziet 2 caurumus PVC stabā, lai tie atbilstu gaismas vāciņiem. Pēc tam izmantojiet smidzinātāju ar melnu krāsu, lai visu nokrāsotu melnā krāsā. Ja vēlaties, staba apakšā varat pievienot baltas svītras (izplatīta Nīderlandē).

3. darbība: 3. darbība: RGB LED sloksņu salikšana un akrila plākšņu smilšstrūkla

3. solis: RGB LED sloksņu salikšana un akrila plākšņu smilšstrūkla
3. solis: RGB LED sloksņu salikšana un akrila plākšņu smilšstrūkla
3. solis: RGB LED sloksņu salikšana un akrila plākšņu smilšstrūkla
3. solis: RGB LED sloksņu salikšana un akrila plākšņu smilšstrūkla

Tālāk jums būs jāsamontē RGB LED sloksnes gaismas vāciņa iekšpusē. Cieši piestipriniet tos pie vāciņa un novietojiet tos pēc iespējas tuvāk priekšpusei.

Tālāk jums vajadzēs smilšstrūklas izvēlēto simbolu uz akrila plāksnes. Iegūstiet lenti un pārklājiet visu akrila plāksni. Pēc tam izgrieziet vēlamo formu/figūru. Pēc tam jūs varat notīrīt plāksni ar smilšu strūklu, lai iegūtu matēta stikla līdzīgu efektu.

4. darbība: 4. darbība: pievienojiet RGB LED sloksnes Arduino

4. solis: pievienojiet RGB LED sloksnes Arduino
4. solis: pievienojiet RGB LED sloksnes Arduino

Tagad nāk sarežģītā daļa: RGB LED sloksņu savienošana ar Arduino. Savienojot tapas, pārliecinieties, ka 12v ir uzlikts uz sloksnes 12V. Starp katru krāsu, tik sarkanu vai zaļu, jums jāievieto mosfets. Savienojiet LED sloksnes datus ar mosfet vidējo tapu un kreiso tapu ar savu Arduino. Labajai tapai jāatgriežas Arduino zemē.

5. darbība: 5. darbība: uzrakstiet Arduino kodu

5. solis: uzrakstiet Arduino kodu
5. solis: uzrakstiet Arduino kodu

Šo Arduino kodu kontrolē Bluetooth, jo mēs neizmantojām iekšējo displeju. Tātad kods tiek kontrolēts, izmantojot Bluetooth ziņojumus cilpas () funkcijā.

#definēt r 6 #definēt g 11 #iekļaut

SoftwareSerial mySerial (10, 11); // RX, TX

#define angry

#definēt krišanuLength 3 #define happyLength 4 #define onPhoneLength 13 #define talkGarums 5 #define walkingGength 4 #define walkingOutLength 4 #define wavingLength 6

bool buttonPressed;

int currentMillis; int previousMillis;

int animation1Delay;

int animation2Delay; int animation3Delay; int animation4Delay;

bool animation1Done = false;

bool animation2Done = false; bool animation3Done = false; bool animation4Done = false; bool animation5Done = false;

bool blockLight = nepatiess;

bool lightRed = taisnība;

int currentAnimationDelay;

void setup () {

// ielieciet šeit savu iestatīšanas kodu, lai palaistu vienu reizi: pinMode (r, OUTPUT); pinMode (g, OUTPUT);

Sērijas sākums (9600);

mySerial.begin (38400); Serial.setTimeout (25); buttonPressed = false; currentMillis = 0; iepriekšējaisMillis = 0;

animācija1Kavēšanās = iešanaGarums * 1000;

animation2Delay = wavingLength * 1000; animation3Delay = happyLength * 1000; animation4Delay = walkingOutLength * 1000;

// currentAnimationDelay = animation1Delay * 1000;

lightRed = taisnība; }

void loop () {

// kavēšanās (20);

// ielieciet šeit savu galveno kodu, lai palaistu atkārtoti: unsigned long currentMillis = millis (); if (buttonPressed == true) {if (animation1Done == false) {if (currentMillis - previousMillis> animation1Delay) {Serial.println ("0"); previousMillis = currentMillis; animation1Done = true; }} cits if (animation2Done == false un animation1Done == true) {if (currentMillis - previousMillis> animation2Delay) {Serial.println ("1"); previousMillis = currentMillis; animation2Done = true; }} cits if (animation3Done == false un animation2Done == true) {if (currentMillis - previousMillis> animation3Delay) {Serial.println ("2"); //Serial.println("sound:green "); previousMillis = currentMillis; animation3Done = true; lightRed = nepatiess; }} cits if (animation4Done == false un animation3Done == true) {if (currentMillis - previousMillis> animation4Delay) {previousMillis = currentMillis; animation4Done = true; Serial.println ("FLSH"); }}}

ja (Serial.available ()) {

String str = Serial.readString (); ja (str == "CMD: BUTTON_PRESSED") {

animation1Done = false;

animation2Done = false; animation3Done = false; animation4Done = nepatiess; animation5Done = false;

animation1Delay = iešanaGarums * 1000;

animation2Delay = wavingLength * 1000; animation3Delay = happyLength * 1000; animation4Delay = walkingOutLength * 1000;

// currentAnimationDelay = animation1Delay * 1000;

lightRed = taisnība; Serial.println ("3"); buttonPressed = true; previousMillis = currentMillis; }

ja (str == "RED") {

blockLight = nepatiess; lightRed = taisnība; }

ja (str == "GREEN") {

blockLight = nepatiess; lightRed = nepatiess; }

ja (str == "LIGHT: GREEN: OFF") {

blockLight = taisnība; analogWrite (g, 255); } ja (str == "LIGHT: GREEN: ON") {blockLight = true; analogWrite (g, 0); } //Serial.println(str); }

ja (blockLight == false) {

ja (lightRed == true) {

analogWrite (r, 0); analogWrite (g, 255); } if (lightRed == false) {analogWrite (r, 255); analogWrite (g, 0); }}}

Ieteicams: