Բովանդակություն:
- Քայլ 1: Ներածություն
- Քայլ 2: Մասերի և գործիքների հավաքում
- Քայլ 3: Տեղադրեք Arduino IDE- ն
- Քայլ 4: Կոդ
- Քայլ 5: Շղթայի դիագրամ
- Քայլ 6: Ամեն ինչ միասին դնել
- Քայլ 7: Եզրակացություն
Video: Արհեստական բույսերի զգացմունքների արտահայտիչ (A.P.E.X.). 7 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Բայց սպասիր… Ավելին կա:
Քայլ 1: Ներածություն
Ի՞նչ է APEX- ը:
APEX- ը խելացի (էլ չենք ասում ՝ գեղեցիկ) բույսերի մոնիտորինգի սարք է: Պարզապես միացրեք այն ցանկացած գործարանի, և այն կցուցադրի բույսի «երջանկության» մակարդակը: Սա հիանալի հիշեցում է ձեր բույսերը ջրելու համար, եթե վատ սովորություն ունեք մոռանալ դրանք ջրելը:
Ինչպես է դա աշխատում?
Կախարդական: Պարզապես կատակում եմ! APEX- ն օգտագործում է խոնավության տվիչին ամրացված Arduino- ն, որը տեղադրված է գործարանի հողի մեջ: Այս սենսորը կկարդա հողի խոնավության պարունակությունը, այնուհետև Arduino- ն հաշվարկում է, թե որ դեմքը ցուցադրվի:
Բայց ինչու?
Ինչու ոչ?
Քայլ 2: Մասերի և գործիքների հավաքում
Եկեք մտնենք դրա մեջ: Այս Instructable- ի համար ձեզ հարկավոր կլինեն բավականին մասեր և գործիքներ: Բարեբախտաբար, դրանք բոլորը ստորև թվարկված են.
Միկրոհսկիչների մրցույթի ոգով այս նախագիծը ամբողջությամբ պատրաստվել է Amazon- ում գնված մասերի շնորհիվ: (չի հովանավորվում)
Մասերի ցուցակ
- Արդուինո Ունո
- 8x8 LED էկրան
- Capacitive Touch Sensor
- Խոնավության ցուցիչ
- 9 Վ մարտկոցի միակցիչ
- 9 Վ մարտկոց
Գործիքների ցուցակ
- 22 չափիչ մետաղալար
- Էլեկտրական ժապավեն
- Մետաղալարեր
- Sոդման երկաթ
- Desոդման պոմպ
Բոլոր անհրաժեշտ սարքավորումները հավաքելուց հետո ժամանակն է կարգավորել Arduino ծրագիրը:
Քայլ 3: Տեղադրեք Arduino IDE- ն
Որպեսզի այս նախագիծը աշխատի, մենք պետք է կարողանանք ծրագրավորել Arduino- ն: Սա պահանջում է ներբեռնել և տեղադրել Arduino ինտեգրված զարգացման միջավայրը (IDE) ձեր համակարգչում: Դա բավականին պարզ բացատրություն է, բայց ես ձեզ կներկայացնեմ գործընթացի միջոցով.
1. Այցելեք Arduino կայք
2. Գնացեք դեպի Ներլցումների էջ (Softwareրագրակազմ> Ներլցումներ)
3. Կտտացրեք Ներբեռնման հղումը ձեր օպերացիոն համակարգի համար
Կողմնակի նշում. Programրագիրը կաշխատի Windows- ի, Mac- ի և Linux- ի վրա:
4. Windows- ում տեղադրում
- Կրկնակի կտտացրեք ներբեռնված ֆայլին `այն գործարկելու համար
- Կտտացրեք «Համաձայնել» ՝ Լիցենզիային համաձայնվելու համար
- Հետևեք մնացած հուշումներին
- Այժմ ծրագիրը պետք է տեղադրվի:
(Համոզվեք, որ նայեք սքրինշոթներին, եթե կորչեք)
5. Տեղադրում Mac- ում
- Կտտացրեք ներբեռնված ֆայլին
- Ընտրեք «Բաց»
- Automaticallyրագիրը ինքնաբերաբար կտեղադրվի և կաշխատի:
(Համոզվեք, որ շփոթվելու դեպքում ստուգեք սքրինշոթերը)
6. Դա այն է
Եվ դուք ավարտեցիք: Դուք այժմ ունեք Arduino IDE- ն ներբեռնված ձեր համակարգում:
Քայլ 4: Կոդ
Այս քայլը վերաբերում է ծածկագրին: Դա բավականին կարճ ծրագիր է, այնպես որ ես կանդրադառնամ ձեզ հետ և կբացատրեմ, թե ինչպես է այն աշխատում: Նախ, համառոտ ակնարկ, այնուհետև խորը բացատրություն, և վերջապես, թե ինչպես այն մղել Arduino- ին:
Հակիրճ ակնարկ
Ձեզանից նրանց համար, ովքեր հետաքրքրված չեն ծածկագրի մանրամասն բացատրությամբ, ես տրամադրում եմ TL; DR հատված: Ահա հիմնական բացատրությունը: Arduino- ն խոնավության ցուցիչից արժեքներ է վերցնում ամեն մի վայրկյանը մեկ: Այս տեղեկատվությունը այնուհետև օգտագործվում է որոշակի դեմք հաշվարկելու և ցուցադրելու համար: Վերջում կա նաև մի փոքր կոդ, որը թույլ է տալիս capacitive touch կոճակը միացնել և անջատել էկրանը: Բավականին պարզ է, չէ՞:
The Nitty Gritty
Ձեռնարկի այս հատվածը նրանց համար է, ովքեր շատ հետաքրքրված են, թե ինչպես է աշխատում ամբողջ ծրագիրը ՝ տող առ տող: Ես կտրամադրեմ վերևի սքրինշոթեր, որոնք կօգնեն ձեզ հասկանալ, թե ինչի մասին եմ խոսում, ինչպես նաև այս նկարագրության մեջ ներառել կոդի որոշ տողեր:
Այս ծրագիրը բաժանված է հինգ բաժնի.
- Ներառյալ գրադարաններ և փոփոխականների ստեղծում
- Կարգավորման գործառույթը
- Դեմքի արտահայտությունների գործառույթներ
- Գրեք Arduino- ն մատրիցային գործառույթի վրա
- Օղակի գործառույթը
Ներառյալ գրադարաններ և փոփոխականների ստեղծում
Այս ծածկագրի առաջին բաժինը վերաբերում է այն փոփոխականներին և գրադարաններին, որոնք մենք կօգտագործենք:
#ներառել «LedControlMS.h»
#սահմանել TouchSensor 7 LedControl lc = LedControl (12, 11, 10, 1); int sensorPin = A5; int sensorValue = 0; բոլը սկսվեց = կեղծ; bool on = true; բուլյան սեղմված = OWԱOWՐ;
Առաջին տողը ներառում է LedControlMS անունով գրադարան: Այս գրադարանից պահանջվում է, որ կարողանա արժեքներ ուղարկել LED էկրանին: Հաջորդ տողը սահմանման հայտարարություն է, որը հպման տվիչի քորոցը սահմանում է 7. Դրանից հետո մենք ունենք ևս երեք փոփոխական, որոնք սահմանում են LED էկրանին, խոնավության տվիչին և դրա արժեքը: Վերջին երեք տողերը բուլյան են, որոնք կարգավորում են հպման կոճակի և ցուցադրման վիճակը: Դրանից հետո մենք ունենք մեր բայթ արժեքները.
բայթ ժպիտ [4] = {B00000100, B00110010, B01100100, B01100000}; բայթ անակնկալ [4] = {B00001110, B00001010, B01101110, B10010000}; բայթ մե [4] = {B00000100, B00100100, B00100100, B00100000}; բայթ տխուր [4] = {B00000010, B01100100, B00110010, B00110000}; բայթ մահացած [6] = {B00001010, B00100100, B00101010, B00100000, B01100000, B01101010}; բայթ սխալ [8] = {B00111100, B01000010, B10100001, B10010001, B10001001, B10000101, B01000010, B00111100}; // Evil Faces բայթ esmile [4] = {B00000010, B00101010, B01000100, B01000000}; բայթ elaugh [4] = {B00000010, B00101010, B01100100, B01100000}; բայթ eplain [4] = {B00000010, B00101010, B00100100, B00100000}; բայթ eyell [4] = {B00000001, B01101001, B01100010, B01100000}; բայթ etalk [4] = {B00000001, B00101001, B01100010, B01100000};
Այս արժեքները ներկայացնում են APEX- ի բոլոր դեմքերը: Յուրաքանչյուր բայթ մի զանգված է, որը պարունակում է բազմաթիվ բիթեր, որոնք թելադրում են տվյալ տողի յուրաքանչյուր պիքսելի վիճակը: «1» և «0» համապատասխանաբար ներկայացնում են միացում/անջատում:
Կարգավորման գործառույթը
Անցնելով հաջորդ բաժին ՝ մենք ունենք մեր տեղադրման գործառույթը:
void setup () {// MS Serial Output Serial.begin (9600);
pinMode (TouchSensor, INPUT);
// LED Matrix Setup lc. անջատում (0, կեղծ); lc.setIntensity (0, 4); lc.clearDisplay (0); }
Անունը դա շատ լավ բացատրում է: Սա այն վայրն է, որտեղ մենք «կարգավորում» ենք մեր հպման ցուցիչը և էկրանը: Առաջին երկու տողերը սկսում են մեր սերիական ելքը (օգտագործվում է վրիպազերծման համար): Երրորդ տողը հպման տվիչի քորոցը դնում է մուտքի վրա, իսկ վերջին չորս տողերը սկսում են ցուցադրումը:
Դեմքի արտահայտությունների գործառույթներ
Սա, ամենայն հավանականությամբ, ամենաերկար բաժինն է, բայց ամեն ինչ շատ պարզ է և կրկնվող:
դատարկություն կոտրված () {lc.setRow (0, 0, սխալ [0]); lc.setRow (0, 1, սխալ [1]); lc.setRow (0, 2, սխալ [2]); lc.setRow (0, 3, սխալ [3]); lc.setRow (0, 4, սխալ [4]); lc.setRow (0, 5, սխալ [5]); lc.setRow (0, 6, սխալ [6]); lc.setRow (0, 7, սխալ [7]); }
երջանիկ դատարկ () {
lc.setRow (0, 0, ժպտացեք [0]); lc.setRow (0, 1, ժպտացեք [1]); lc.setRow (0, 2, ժպտացեք [2]); lc.setRow (0, 3, ժպտացեք [3]); lc.setRow (0, 4, ժպտացեք [3]); lc.setRow (0, 5, ժպտացեք [2]); lc.setRow (0, 6, ժպտացեք [1]); lc.setRow (0, 7, ժպտացեք [0]); }
դատարկ պարզ () {
lc.setRow (0, 0, մեհ [0]); lc.setRow (0, 1, մեհ [1]); lc.setRow (0, 2, մեհ [2]); lc.setRow (0, 3, մեհ [3]); lc.setRow (0, 4, մեհ [3]); lc.setRow (0, 5, մեհ [2]); lc.setRow (0, 6, մեհ [1]); lc.setRow (0, 7, մեհ [0]); }
դատարկ զարմացած () {
lc.setRow (0, 0, անակնկալ [0]); lc.setRow (0, 1, անակնկալ [1]); lc.setRow (0, 2, անակնկալ [2]); lc.setRow (0, 3, անակնկալ [3]); lc.setRow (0, 4, անակնկալ [3]); lc.setRow (0, 5, անակնկալ [2]); lc.setRow (0, 6, անակնկալ [1]); lc.setRow (0, 7, անակնկալ [0]); }
դատարկ մեռնել () {
lc.setRow (0, 0, մահացած [0]); lc.setRow (0, 1, մահացած [1]); lc.setRow (0, 2, մահացած [2]); lc.setRow (0, 3, մահացած [3]); lc.setRow (0, 4, մահացած [4]); lc.setRow (0, 5, մահացած [5]); lc.setRow (0, 6, մահացած [1]); lc.setRow (0, 7, մահացած [0]); }
դատարկ լաց () {
lc.setRow (0, 0, տխուր [0]); lc.setRow (0, 1, տխուր [1]); lc.setRow (0, 2, տխուր [2]); lc.setRow (0, 3, տխուր [3]); lc.setRow (0, 4, տխուր [3]); lc.setRow (0, 5, տխուր [2]); lc.setRow (0, 6, տխուր [1]); lc.setRow (0, 7, տխուր [0]); }
դատարկ չարիք () {
lc.setRow (0, 0, զմայլանք [0]); lc.setRow (0, 1, զմայլիկ [1]); lc.setRow (0, 2, զմայլիկ [2]); lc.setRow (0, 3, զմայլիկ [3]); lc.setRow (0, 4, զմայլիկ [3]); lc.setRow (0, 5, զմայլիկ [2]); lc.setRow (0, 6, զմայլիկ [1]); lc.setRow (0, 7, զմայլիկ [0]); }
դատարկ evillaugh () {
lc.setRow (0, 0, elaugh [0]); lc.setRow (0, 1, elaugh [1]); lc.setRow (0, 2, elaugh [2]); lc.setRow (0, 3, elaugh [3]); lc.setRow (0, 4, elaugh [3]); lc.setRow (0, 5, elaugh [2]); lc.setRow (0, 6, elaugh [1]); lc.setRow (0, 7, elaugh [0]); }
void evilplain () {
lc.setRow (0, 0, eplain [0]); lc.setRow (0, 1, eplain [1]); lc.setRow (0, 2, eplain [2]); lc.setRow (0, 3, eplain [3]); lc.setRow (0, 4, eplain [3]); lc.setRow (0, 5, eplain [2]); lc.setRow (0, 6, eplain [1]); lc.setRow (0, 7, eplain [0]); }
դատարկ evilyell () {
lc.setRow (0, 0, աչքեր [0]); lc.setRow (0, 1, աչք [1]); lc.setRow (0, 2, աչք [2]); lc.setRow (0, 3, eyell [3]); lc.setRow (0, 4, eyell [3]); lc.setRow (0, 5, eyell [2]); lc.setRow (0, 6, eyell [1]); lc.setRow (0, 7, eyell [0]); }
void eviltalk () {
lc.setRow (0, 0, etalk [0]); lc.setRow (0, 1, etalk [1]); lc.setRow (0, 2, etalk [2]); lc.setRow (0, 3, etalk [3]); lc.setRow (0, 4, etalk [3]); lc.setRow (0, 5, etalk [2]); lc.setRow (0, 6, etalk [1]); lc.setRow (0, 7, etalk [0]); }
Այս գործառույթներն օգտագործվում են դեմքի յուրաքանչյուր արտահայտություն սահմանելու համար `օգտագործելով մեր առաջին բայթի բայթ արժեքները: Յուրաքանչյուր տող սահմանում է x դիրքի և բայտի արժեքներ, այնուհետև արժեքները կիրառում է այդ սյունակում: Որոշ գործառույթներ պահանջում են ավելի շատ տողեր, քանի որ ավելի շատ տողեր են օգտագործվում այդ դեմքի արժեքները ցուցադրելու համար: Յուրաքանչյուր երես սիմետրիկ է, դրա համար էլ մենք կրկնում ենք տողերը:
The WriteArduinoOnMatrix գործառույթը
Չորրորդ բաժինը օգտագործվում է LED էկրանին համապատասխան դեմքերը հաշվարկելու և գրելու համար: Այն բաղկացած է մի շարք այլ if հայտարարություններից, որոնք ստուգում են ջրի արժեքները, այնուհետև ցուցադրում է ցուցադրումը ՝ նախորդ բաժնից տարբեր գործառույթներ կանչելով:
void writeArduinoOnMatrix () {if (sensorValue> 0 && sensorValue 30 && sensorValue 100 && sensorValue 200 && sensorValue 400 && sensorValue 650 && sensorValue <= 800) {զարմացած (); } else {կոտրված (); }}
Դուք կարող եք նկատել, որ մենք ավելացրել ենք «կոտրված» դեմքեր այն դեպքում, երբ սենսորը դուրս է գալիս աշխատանքային տիրույթներից: Սա կանխում է որոշ տարօրինակ զրո սխալներ, որոնք տեղի են ունենում և մեզ ավելի լավ տեսողական պատկերացում է տալիս, թե ինչ է կատարվում ծածկագրում:
Օղակի գործառույթը
Վերջին, բայց ամենակարևորը, օղակի գործառույթն է: Այս կոդը անում է հենց այն, ինչ ասում է իր անունը, այն օղակ է: Չնայած այս գործառույթում կան բավականին շատ տողեր, այն իրականում բավականին պարզ է: Կոդը սկզբում կարդում է կոճակի վիճակը և տեսնում, արդյոք էկրանը «Միացված» է: Եթե դա ճիշտ է համարում, ապա այն կկանչի WriteArduinoOnMatrix գործառույթը, որն այնուհետև դեմք կքաշի APEX- ում: Քանի որ այս գործառույթը հանգչում է, այն կթարմացնի էկրանը այնքան հաճախ, որքան ցանկանում ենք: Այս ուշացումը թելադրված է ուշացման փոփոխականով:
void loop () {if (start == true) {delaytime = 3000; } // Կարդալու կոճակը սեղմված է = digitalRead (TouchSensor);
եթե (սեղմված) {
եթե (միացված է == ճշմարիտ) {lc.clearDisplay (0); on = կեղծ; ուշացում (ուշացում); } else {on = true; ուշացում (ուշացում); }} sensorValue = analogRead (sensorPin); ուշացում (ուշացում); if (on == true) {// Draw Faces writeArduinoOnMatrix (); }
սկսված = ճշմարիտ;
}
Այսքանը կա օրենսգրքում: Հուսով եմ, հիմա դուք ավելի լավ եք հասկանում, թե ինչպես է ամեն ինչ աշխատում, և կարող եք օգտագործել այս գիտելիքը ՝ այն ձեր նախագծին հարմարեցնելու համար:
Կոդը հրելով Arduino- ին
Այժմ, երբ մենք ծածկել ենք ամբողջ ծածկագիրը, ժամանակն է այն մղել դեպի Arduino: Բարեբախտաբար, IDE- ն դա շատ պարզ է դարձնում: Մնում է ձեր Arduino- ն ձեր համակարգչին միացնել USB մալուխով, այնուհետև պարզապես սեղմել IDE- ի վերևի ձախ ձախ սլաքը: Թող կոդն առաջ մղվի, և դուք պետք է հաջողության ուղերձ տեսնեք ծրագրի ներքևում, եթե դա ճիշտ եք արել:
Քայլ 5: Շղթայի դիագրամ
Կոդի նման, սխեմայի սխեման այնքան էլ բարդ չէ: Այն բաղկացած է ընդամենը երեք սենսորից և Arduino- ից, ուստի ես ձեզ կասեմ յուրաքանչյուրի համար նախատեսված եզրերը, և եթե որևէ այլ օգնության կարիք ունեք, պարզապես հղեք վերևի գծապատկերին:
LED էկրան
- VCC -> 5V
- GRD -> GRD
- DIN -> PIN 12
- CS -> Pin 10
- CLK -> PIN 11
Խոնավության ցուցիչ
- Դրական -> 5 Վ
- Բացասական -> GRD
- Ազդանշան -> A5
Capacitive Touch Sensor:
- VCC -> 5V
- GRD -> GRD
- SIG -> 7
Շատ դժվար չէ, այնպես չէ՞: Եթե որևէ խնդիր ունեք այս անջատման հետ, համոզվեք, որ հղում կատարեք ստորև բերված տեսանյութին, որտեղ ես ձեզ կպատմեմ, թե ինչպես այն միացնել:
Քայլ 6: Ամեն ինչ միասին դնել
Դժվար է տեքստով բացատրել, թե ինչպես է այն համընկնում բոլորի հետ, այնպես որ ես անպայման կառաջարկեի դիտել այս մասի տեսանյութը: Ես իրականում չեմ բացատրի, թե ինչպես եմ իմը համատեղում, դա չափազանց դժվար է: Բայց ինչ -որ բան անորոշ բացատրելու համար ես կպցրի մետաղալարերի միացումները և դրանք փաթաթեցի տախտակի հետևի մասում: Հետո ես տեղադրեցի սենսորները և օգտագործեցի էլեկտրական ժապավեն ՝ այդ ամենը միասին պահելու համար: Ի վերջո, ես այն փորձարկեցի 9 Վ մարտկոցով, իսկ հետո, երբ իմացա, որ այն աշխատում է, մարտկոցը դրեցի հետևի մասում և այն նույնպես կպցրեցի: Ինչպես նախկինում ասացի, ԱՅՍ ՔԱՅԼԻ ՀԱՄԱՐ ԴԻՄԵՔ ՏԵՍԱՆՅՈԹԸ, այն ունի մի փոքր զոդման մի հատված, որը արագացված է և կօգնի ձեզ ճիշտ փաթաթել լարերը: Ազատորեն դադարեցրեք այն կամ կես արագությամբ խաղացեք, եթե կորչեք:
Շնորհավորում եմ: Եթե ամեն ինչ հաջողությամբ ընթացավ, ապա այժմ պետք է ունենաք լիովին ֆունկցիոնալ APEX միավոր:
Ձեր միավորը փորձարկելու համար գտեք ջրված բույս և միացրեք այն: Դուք պետք է պարզեք, որ այն կամ ուրախ է, կամ զարմացած, և դա նշանակում է, որ այն պետք է աշխատի !!! Հիանալի աշխատանք նախագիծն ավարտելու համար:
Քայլ 7: Եզրակացություն
Եվ դա ամբողջ Ուսուցիչն է: Շնորհակալություն նախագիծը դիտելու համար: Թողեք որևէ հարց և մեկնաբանություն ներքևում և համոզվեք, որ հետևեք Urban Farming Guys- ին ՝ նման ավելի հիանալի ձեռնարկների համար: Մենք կցանկանայինք լսել, թե ինչպես է ընթացել ձեր APEX կառուցվածքը, և նկարները շատ են գնահատվում: Կրկին շնորհակալություն այցելության համար, հիանալի օր:
(Այս Instructable- ը ոգեշնչված էր ավելի հին նախագծով ՝ Plant Emoji!)
Պ. Ս. Այս Instructable- ը մասնակցում է Microcontrollers մրցույթին, այնպես որ մի մոռացեք քվեարկել մեր օգտին: Մենք շատ ենք գնահատում:)
P. P. S. Եկեք ձեռք բերենք APEX- ը Make Magazine- ում: Քվեարկե՛ք այստեղ: Շնորհակալություն:)
Խորհուրդ ենք տալիս:
Բույսերի ջրամատակարարման ավտոմատ համակարգ ՝ օգտագործելով միկրո. Բիթ ՝ 8 քայլ (նկարներով)
Micro: bit- ի միջոցով գործարանների ջրամատակարարման ավտոմատ համակարգ. Այս հրահանգում ես ձեզ ցույց կտամ, թե ինչպես կարելի է կառուցել բույսերի ջրման ավտոմատ համակարգ `օգտագործելով Micro: bit և որոշ այլ փոքր էլեկտրոնային բաղադրիչներ: Micro: bit- ը օգտագործում է խոնավության տվիչ վերահսկել գործարանի հողում խոնավության մակարդակը և
Արհեստական բանականություն և պատկերի ճանաչում HuskyLens- ի միջոցով. 6 քայլ (նկարներով)
Արհեստական բանականություն և պատկերի ճանաչում HuskyLens- ի միջոցով. Աքարշ այստեղ CETech- ից: Այս նախագծում մենք մտադիր ենք դիտել HuskyLens- ը DFRobot- ից: Դա արհեստական ինտելեկտով աշխատող տեսախցիկի մոդուլ է, որն ունակ է արհեստական ինտելեկտի մի քանի գործողություններ կատարել, ինչպիսիք են ՝ Face Recognitio
Otionգացմունքների արտահայտիչ ՝ 4 քայլ
Otionգացմունքների արտահայտիչ. Ներածություն. Այս մեքենան հույզեր արտահայտող է, այն աշխատում է ՝ օգնելով այն մարդկանց, ովքեր լավ չեն արտահայտում իրենց զգացմունքները, արտահայտելու իրենց զգացմունքները: Այս մեքենան կարող է օգնել այն մարդկանց, ովքեր օգնության կարիք ունեն կամ կարիք ունեն, որ ինչ -որ մեկը լսի նրանց, որոնք բողոքում են այն բանից, ինչ
Talkրուցեք ընտրովի և արհեստական բանականության հետ զրուցելու Cleverbot- ի միջոցով. 14 քայլ (նկարներով)
Talkրուցեք ընտրովի և արհեստական բանականության հետ Cleverbot- ի միջոցով. Իրականում գաղափարը ծագեց այն ժամանակ, երբ հայտնաբերվեցին, որ երեխաները գույները խառնում են գունազարդման տուփում, երբ գույնը վերցնում են մեկ գույնից մինչև ամենամոտը: Բայց վերջապես իրականություն
LED- թղթե արհեստական լամպեր `12 քայլ (նկարներով)
LED-Paper Craft Լամպեր. Սա թղթե արհեստի լամպերի շարք է, որոնք օգտագործում են LED- ները: Ես մոդելավորեցի լամպը Blender- ում, այնուհետև հյուսվածքներին հատկացրեցի յուրաքանչյուր մասի, այնպես որ, եթե ցանկանում եք փոխել լամպի տեսքը, դա անելու մի քանի եղանակ կա: Մեկը ներկի կամ լուսանկարի օգտագործումն է