Orodha ya maudhui:

Nuru ya trafiki inayoingiliana mahiri: Hatua 5 (na Picha)
Nuru ya trafiki inayoingiliana mahiri: Hatua 5 (na Picha)

Video: Nuru ya trafiki inayoingiliana mahiri: Hatua 5 (na Picha)

Video: Nuru ya trafiki inayoingiliana mahiri: Hatua 5 (na Picha)
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Novemba
Anonim
Nuru ya trafiki inayoingiliana mahiri
Nuru ya trafiki inayoingiliana mahiri

Uko tayari kujenga taa bora zaidi ya trafiki ulimwenguni? Nzuri! Katika mafunzo haya, tutaelezea jinsi unaweza kujiunda peke yako ukitumia Arduino.

Vipengele vinavyohitajika: - Arduino (..duh) - LM317 Mosfet- 2x 60cm Analog RGB LED Strips (12V) - PVC tube (1m x 125mm) - Cables (nyekundu na nyeusi) - Sahani za Chuma za kofia nyepesi- Acryl ya taa -cons (angalia flaticon.com kwa aikoni za.svg) - Rangi nyeusi ya Spraycan nyeusi na nyeupe. - Kanda ya umeme - Vipengele vyote vinavyohitajika vya kutengenezea- Onyesha na ngao inayohitajika (haitumiki katika mafunzo)

Hatua ya 1: Hatua ya 1: Tengeneza vifuniko vya taa

Hatua ya 1: Tengeneza vifuniko vya taa
Hatua ya 1: Tengeneza vifuniko vya taa

Ubunifu ni kweli kwako. Tumefanya kofia ya 15x15cm kushikilia taa. Tumekata mabamba ya chuma kwa saizi sahihi na tumetumia bender ya chuma (hapana, sio kutoka kwa Avatar) kuinama kofia katika maumbo sahihi. Sahani za nyuma zilitengenezwa kutoka kwa sehemu tofauti.

Hatua ya 2: Hatua ya 2: Kutayarisha Ncha ya PVC

Hatua ya 2: Kutayarisha Ncha ya PVC
Hatua ya 2: Kutayarisha Ncha ya PVC

Kata mashimo 2 kwenye nguzo ya PVC ili kutoshea kofia nyepesi. Kisha tumia dawa ya kupaka rangi nyeusi kupaka rangi yote nyeusi. Ikiwa unataka, unaweza kuongeza kupigwa nyeupe chini ya nguzo (kawaida nchini Uholanzi).

Hatua ya 3: Hatua ya 3: Kukusanya Vipande vya RGB vya LED na Kuchimba Sanduku za Akriliki

Hatua ya 3: Kukusanya Vipande vya RGB vya LED na Kuchimba Sanduku za Akriliki
Hatua ya 3: Kukusanya Vipande vya RGB vya LED na Kuchimba Sanduku za Akriliki
Hatua ya 3: Kukusanya Vipande vya RGB vya LED na Kuchimba Sanduku za Akriliki
Hatua ya 3: Kukusanya Vipande vya RGB vya LED na Kuchimba Sanduku za Akriliki

Ifuatayo utahitaji kukusanya vitambaa vya LED vya RGB ndani ya kofia ya taa. Zivae vizuri karibu na kofia, na uziweke karibu na mbele iwezekanavyo.

Halafu utahitaji kuweka mchanga alama iliyochaguliwa kwenye bamba la akriliki. Pata mkanda na funika sahani nzima ya akriliki. Kisha kata sura / takwimu unayotaka. Baada ya hii, unaweza kuweka sandblast sahani ili kupata athari kama glasi-kama glasi.

Hatua ya 4: Hatua ya 4: Unganisha Vipande vya LED vya RGB kwa Arduino

Hatua ya 4: Unganisha Vipande vya LED vya RGB kwa Arduino
Hatua ya 4: Unganisha Vipande vya LED vya RGB kwa Arduino

Sasa inakuja sehemu ya ujanja: kuunganisha Vipande vya LED vya RGB na Arduino. Unapounganisha pini hakikisha umeweka 12v kwenye 12v ya ukanda wako. Kati ya kila rangi, nyekundu au kijani kibichi, unahitaji kuweka mosfet. Unganisha data ya ukanda ulioongozwa kwenye pini ya katikati ya mosfet, na pini ya kushoto kwa Arduino yako. Pini ya kulia inapaswa kurudi kwenye ardhi ya Arduino.

Hatua ya 5: Hatua ya 5: Andika Nambari ya Arduino

Hatua ya 5: Andika Nambari ya Arduino
Hatua ya 5: Andika Nambari ya Arduino

Nambari hii ya Arduino inadhibitiwa na Bluetooth, kwa sababu hatukutumia onyesho la ndani. Kwa hivyo nambari hiyo inadhibitiwa kupitia ujumbe wa Bluetooth katika kazi ya kitanzi ().

#fafanua r 6 # fafanua g 11 # pamoja na

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

#fafanua urefu wa hasira 4

#fafanua kuangukaUrefu 3 #fafanua furahaUrefu 4 #fafanua juu yaUrefu wa simu 13 #fafanua kuzungumzaUrefu 5 #fafanua kutembeaUrefu 4 #fafanua kutembeaUrefu wa 4 #fafanua kufurukutaUrefu 6

kitufe cha boolBonyeza;

int sasaMillis; int uliopitaMillis;

int animation1Delay;

int animation2Delay; int animation3Delay; int animation4Delay;

uhuishaji wa bool1Done = uongo;

bool animation2Done = uongo; uhuishaji wa bool3Done = uongo; uhuishaji wa bool4Done = uongo; uhuishaji wa bool5Done = uongo;

block boolLight = uongo;

bool lightRed = kweli;

int currentAnimationDelay;

usanidi batili () {

// weka nambari yako ya usanidi hapa, kukimbia mara moja: pinMode (r, OUTPUT); pinMode (g, OUTPUT);

Serial. Kuanza (9600);

kuanza (38400); Serial.setTimeout (25); kifungoBonyeza = uwongo; currentMillis = 0; uliopitaMillis = 0;

uhuishaji1Delay = Urefu wa kutembea * 1000;

uhuishaji2Delay = kupunga urefu * 1000; uhuishaji3Delay = HappyLength * 1000; uhuishaji4Delay = kutembeaOutLength * 1000;

// currentAnimationDelay = uhuishaji1Kuchelewa * 1000;

lightRed = kweli; }

kitanzi batili () {

// kuchelewa (20);

// weka nambari yako kuu hapa, kukimbia mara kwa mara: unsigned long currentMillis = millis (); ikiwa (buttonPressed == kweli) {if (animation1Done == false) {if (currentMillis - previousMillis> animation1Delay) {Serial.println ("0"); previousMillis = currentMillis; uhuishaji1Done = kweli; }} mwingine ikiwa (animation2Done == uongo na uhuishaji1Done == kweli) {if (currentMillis - previousMillis> animation2Delay) {Serial.println ("1"); previousMillis = currentMillis; uhuishaji2Done = kweli; }} mwingine ikiwa (animation3Done == uongo na animation2Done == kweli) {if (currentMillis - previousMillis> animation3Delay) {Serial.println ("2"); //Serial.println ("sauti: kijani"); previousMillis = currentMillis; uhuishaji3Done = kweli; lightRed = uwongo; }} mwingine ikiwa (animation4Done == uongo na uhuishaji3Done == kweli) {if (currentMillis - previousMillis> animation4Delay) {previousMillis = currentMillis; uhuishaji4Done = kweli; Serial.println ("FLSH"); }}}

ikiwa (Serial haipatikani ()) {

Kamba str = Serial.readString (); ikiwa (str == "CMD: BUTTON_PRESSED") {

uhuishaji1Done = uongo;

uhuishaji2Done = uongo; uhuishaji3Done = uongo; uhuishaji4Done = uongo; uhuishaji5Done = uongo;

uhuishaji1Delay = Urefu wa kutembea * 1000;

uhuishaji2Delay = kupunga urefu * 1000; uhuishaji3Delay = HappyLength * 1000; uhuishaji4Delay = kutembeaOutLength * 1000;

// currentAnimationDelay = uhuishaji1Kuchelewa * 1000;

lightRed = kweli; Serial.println ("3"); kifungoPress = kweli; previousMillis = currentMillis; }

ikiwa (str == "NYEKUNDU") {

blockLight = uwongo; lightRed = kweli; }

ikiwa (str == "KIJANI") {

blockLight = uwongo; lightRed = uwongo; }

ikiwa (str == "MWANGA: KIJANI: ZIMA") {

blockLight = kweli; Andika Analog (g, 255); } ikiwa (str == "MWANGA: KIJANI: KWENYE") {blockLight = kweli; Andika Analog (g, 0); } //Serial.println (str); }

ikiwa (blockLight == uongo) {

ikiwa (lightRed == kweli) {

Andika Analog (r, 0); Andika Analog (g, 255); } ikiwa (lightRed == uongo) {analogWrite (r, 255); Andika Analog (g, 0); }}}

Ilipendekeza: