Სარჩევი:

ხელოვნური მცენარის ემოციის გამომხატველი (A.P.E.X.): 7 ნაბიჯი (სურათებით)
ხელოვნური მცენარის ემოციის გამომხატველი (A.P.E.X.): 7 ნაბიჯი (სურათებით)

ვიდეო: ხელოვნური მცენარის ემოციის გამომხატველი (A.P.E.X.): 7 ნაბიჯი (სურათებით)

ვიდეო: ხელოვნური მცენარის ემოციის გამომხატველი (A.P.E.X.): 7 ნაბიჯი (სურათებით)
ვიდეო: ვიქტორ ჰიუგო - "საბრალონი" - ნაწილი პირველი - წიგნი 1-4 2024, ნოემბერი
Anonim
Image
Image

მაგრამ დაელოდე … კიდევ არის!

ნაბიჯი 1: შესავალი

შესავალი
შესავალი
შესავალი
შესავალი
შესავალი
შესავალი

რა არის APEX?

APEX არის ჭკვიანი (რომ აღარაფერი ვთქვათ მიმზიდველი) მცენარეების მონიტორინგის მოწყობილობა. უბრალოდ შეაერთეთ იგი ნებისმიერ მცენარეში და ის აჩვენებს მცენარის "ბედნიერების" დონეს! ეს მშვენიერი შეხსენებაა თქვენი მცენარეების მორწყვისთვის, თუ თქვენ გაქვთ ცუდი ჩვევა დაივიწყოთ მათი მორწყვა.

Როგორ მუშაობს?

მაგია. Უბრალოდ ვხუმრობ! APEX იყენებს ტენიანობის სენსორზე მიმაგრებულ არდუინოს, რომელიც ჩასმულია მცენარის ნიადაგში. ეს სენსორი წაიკითხავს ნიადაგის ტენიანობას და შემდეგ არდუინო ითვლის რა სახის ჩვენებას.

Მაგრამ რატომ?

Რატომაც არა?

ნაბიჯი 2: ნაწილების და ინსტრუმენტების შეგროვება

ნაწილების და ინსტრუმენტების შეგროვება
ნაწილების და ინსტრუმენტების შეგროვება
ნაწილების და ინსტრუმენტების შეგროვება
ნაწილების და ინსტრუმენტების შეგროვება
ნაწილების და ინსტრუმენტების შეგროვება
ნაწილების და ინსტრუმენტების შეგროვება

შევეშვათ მას! ამ ინსტრუქციისთვის, დაგჭირდებათ საკმაოდ ბევრი ნაწილი და ინსტრუმენტი. საბედნიეროდ თქვენთვის, ისინი ყველა ჩამოთვლილია ქვემოთ:

მიკროკონტროლერების კონკურსის სულისკვეთებით, ეს პროექტი მთლიანად გაკეთდა ამაზონზე შეძენილი ნაწილებით! (არ არის დაფინანსებული)

ნაწილების სია:

  • არდუინო უნო
  • 8x8 LED ჩვენება
  • ტევადობის შეხების სენსორი
  • ტენიანობის სენსორი
  • ბატარეის 9V კონექტორი
  • 9 ვ ბატარეა

ინსტრუმენტების სია:

  • 22 Gauge Wire
  • ელექტრო ფირზე
  • მავთულის სტრიპტიზორები
  • გასაყიდი რკინა
  • შედუღების ტუმბო

მას შემდეგ რაც შეაგროვებთ ყველა საჭირო აღჭურვილობას, დროა დააყენოთ Arduino პროგრამული უზრუნველყოფა!

ნაბიჯი 3: დააინსტალირეთ Arduino IDE

Arduino IDE– ს დაყენება
Arduino IDE– ს დაყენება
Arduino IDE– ს დაყენება
Arduino IDE– ს დაყენება
Arduino IDE– ს დაყენება
Arduino IDE– ს დაყენება

იმისათვის, რომ ეს პროექტი იმუშაოს, ჩვენ უნდა შეგვეძლოს არდუინოს დაპროგრამება. ეს მოითხოვს თქვენს კომპიუტერში Arduino ინტეგრირებული განვითარების გარემოს (IDE) გადმოტვირთვას და დაინსტალირებას. ეს საკმაოდ მარტივი ახსნაა, მაგრამ მე გაგაცნობთ ამ პროცესს:

1. ეწვიეთ Arduino ვებსაიტს

2. ნავიგაცია ჩამოტვირთვების გვერდზე (პროგრამული უზრუნველყოფა> ჩამოტვირთვები)

3. დააწკაპუნეთ ჩამოტვირთვის ბმულზე თქვენი ოპერაციული სისტემისთვის

გვერდითი შენიშვნა: პროგრამა იმუშავებს Windows, Mac და Linux– ზე.

4. ინსტალაცია Windows- ზე

  • ორჯერ დააწკაპუნეთ გადმოწერილ ფაილზე გასაშვებად
  • დააწკაპუნეთ "ვეთანხმები", რომ დაეთანხმოთ ლიცენზიას
  • მიჰყევით დანარჩენ მოთხოვნებს
  • პროგრამა ახლა უნდა იყოს დაინსტალირებული!

(დარწმუნდით, რომ გადახედეთ ეკრანის სურათებს, თუ დაიკარგებით)

5. დაინსტალირება Mac- ზე

  • დააწკაპუნეთ გადმოწერილ ფაილზე
  • აირჩიეთ "გახსნა"
  • პროგრამა ავტომატურად დაინსტალირდება და მუშაობს!

(დარწმუნდით, რომ გადახედეთ ეკრანის სურათებს, თუ დაბნეული ხართ)

6. ეს არის ის

და დაასრულე! თქვენ უკვე გაქვთ Arduino IDE გადმოწერილი თქვენს სისტემაში!

ნაბიჯი 4: კოდი

Კოდი
Კოდი
Კოდი
Კოდი
Კოდი
Კოდი

ეს ნაბიჯი არის კოდის შესახებ. ეს საკმაოდ მოკლე პროგრამაა, ასე რომ მე განვიხილავ თქვენთან ერთად და აგიხსნით როგორ მუშაობს. პირველი, მოკლე მიმოხილვა, შემდეგ სიღრმისეული ახსნა და ბოლოს როგორ უნდა მიიყვანოთ იგი არდუინოში!

მოკლე მიმოხილვა

ვისაც არ გაინტერესებთ კოდის დეტალური ახსნა, მე გთავაზობთ TL; DR სეგმენტს! აქ არის ძირითადი ახსნა. Arduino იღებს მნიშვნელობებს ტენიანობის სენსორიდან ყოველ რამდენიმე წამში. ეს ინფორმაცია გამოიყენება გარკვეული სახის გამოსათვლელად და გამოსახვისათვის! ასევე არის ცოტაოდენი კოდი ბოლოს, რომლის საშუალებითაც შესაძლებელია capacitive touch ღილაკი ჩართოთ და გამორთოთ ეკრანი. საკმაოდ მარტივია, არა?

ნიტი გრიტი

გაკვეთილის ეს ნაწილი მათთვისაა, ვინც ძალიან დაინტერესებულია, თუ როგორ მუშაობს მთელი პროგრამა, სტრიქონიდან ხაზამდე. მე მოგაწვდით ეკრანის სურათებს, რათა დაგეხმაროთ გაიგოთ რაზე ვსაუბრობ, ასევე შევიტანო კოდის ზოგიერთი ხაზი ამ აღწერილობაში.

ეს პროგრამა დაყოფილია ხუთ ნაწილად:

  1. ბიბლიოთეკების ჩათვლით და ცვლადების შექმნა
  2. დაყენების ფუნქცია
  3. სახის გამომეტყველების ფუნქციები
  4. ჩაწერეთ არდუინო მატრიცის ფუნქციაზე
  5. მარყუჟის ფუნქცია

ბიბლიოთეკების ჩათვლით და ცვლადების შექმნა:

ამ კოდის პირველი ნაწილი არის ცვლადებისა და ბიბლიოთეკების შესახებ, რომელსაც ჩვენ გამოვიყენებთ.

#მოიცავს "LedControlMS.h"

#განსაზღვრეთ TouchSensor 7 LedControl lc = LedControl (12, 11, 10, 1); int sensorPin = A5; int sensorValue = 0; bool დაიწყო = ყალბი; bool on = ჭეშმარიტი; ლოგიკური დაჭერილი = LOW;

პირველი ხაზი მოიცავს ბიბლიოთეკას სახელწოდებით LedControlMS. ეს ბიბლიოთეკა საჭიროა იმისთვის, რომ შეძლოს ღირებულებების გაგზავნა LED ეკრანზე. შემდეგი სტრიქონი არის განმსაზღვრელი განცხადება, რომელიც ადგენს შეხების სენსორის პინს 7 -ზე. ამის შემდეგ ჩვენ გვაქვს კიდევ სამი ცვლადი, რომლებიც განსაზღვრავს LED ეკრანის, ტენიანობის სენსორის და მისი მნიშვნელობას. ბოლო სამი ხაზი არის ლოგიკური, რომელიც არეგულირებს სენსორული ღილაკისა და ეკრანის მდგომარეობას. ამის შემდეგ, ჩვენ გვაქვს ჩვენი ბაიტის მნიშვნელობები:

ბაიტის ღიმილი [4] = {B00000100, B00110010, B01100100, B01100000}; ბაიტის სიურპრიზი [4] = {B00001110, B00001010, B01101110, B10010000}; ბაიტი meh [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 byte 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 მატრიცის დაყენება 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]); }

void plain () {

lc.setRow (0, 0, meh [0]); lc.setRow (0, 1, meh [1]); lc.setRow (0, 2, meh [2]); lc.setRow (0, 3, meh [3]); lc.setRow (0, 4, meh [3]); lc.setRow (0, 5, meh [2]); lc.setRow (0, 6, meh [1]); lc.setRow (0, 7, meh [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]); }

void evilsmile () {

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]); }

void 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, ეპლაინი [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]); }

void evilyell () {

lc.setRow (0, 0, eyell [0]); lc.setRow (0, 1, eyell [1]); lc.setRow (0, 2, eyell [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 პოზიციას და ბაიტის მნიშვნელობებს და შემდეგ იყენებს მნიშვნელობებს ამ სვეტზე. ზოგიერთი ფუნქცია მოითხოვს მეტ ხაზს, რადგან უფრო მეტი სტრიქონი გამოიყენება ამ სახის მნიშვნელობების გამოსახატავად. თითოეული სახე სიმეტრიულია, რის გამოც ჩვენ ვიმეორებთ ხაზებს.

WriteArduinoOnMatrix ფუნქცია:

მეოთხე ნაწილი გამოიყენება LED ეკრანზე სათანადო სახეების გამოსათვლელად და დასაწერად. იგი შედგება სხვა განცხადებების სერიისგან, რომლებიც ამოწმებენ წყლის მნიშვნელობებს და შემდეგ ადგენენ ჩვენებას წინა განყოფილებისგან განსხვავებული ფუნქციების გამოძახებით.

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 = false; დაგვიანება (დაგვიანების დრო); } else {on = true; დაგვიანება (დაგვიანების დრო); }} sensorValue = analogRead (sensorPin); დაგვიანება (დაგვიანების დრო); if (on == true) {// Draw Faces writeArduinoOnMatrix (); }

დაწყებული = ჭეშმარიტი;

}

კოდში სულ ეს არის. ვიმედოვნებთ, რომ ახლა თქვენ უკეთესად გესმით, როგორ მუშაობს ეს ყველაფერი და შეგიძლიათ გამოიყენოთ ეს ცოდნა, რომ დაიწყოთ თქვენი პროექტის მორგება!

კოდის გადატანა არდუინოში

ახლა, როდესაც ჩვენ დავფარეთ ყველა კოდი, დროა გადავიტანოთ იგი არდუინოზე! საბედნიეროდ, IDE ამარტივებს ამას. ყველაფერი რაც თქვენ უნდა გააკეთოთ არის შეაერთეთ თქვენი Arduino თქვენს კომპიუტერში USB კაბელით და შემდეგ უბრალოდ დააწკაპუნეთ მარჯვენა ისარზე IDE– ს მარცხენა ზედა ნაწილში. მიეცით კოდს ხელი და თქვენ უნდა ნახოთ წარმატების შეტყობინება პროგრამის ბოლოში, თუ სწორად გააკეთეთ!

ნაბიჯი 5: წრიული დიაგრამა

Წრიული დიაგრამა
Წრიული დიაგრამა

კოდის მსგავსად, წრიული დიაგრამა არც ისე რთულია. ის მხოლოდ სამი სენსორისა და არდუინოსგან შედგება, ამიტომ მე გეტყვით თითოეულ მათგანს, და თუ სხვა დახმარება გჭირდებათ, უბრალოდ მიმართეთ ზემოთ მოცემულ დიაგრამას.

LED დისპლეი:

  • VCC -> 5V
  • GRD -> GRD
  • DIN -> პინ 12
  • CS -> პინ 10
  • CLK -> პინ 11

ტენიანობის სენსორი:

  • დადებითი -> 5V
  • უარყოფითი -> GRD
  • სიგნალი -> A5

ტევადობის შეხების სენსორი:

  • VCC -> 5V
  • GRD -> GRD
  • SIG -> 7

არც ისე რთულია, არა? თუ რაიმე პრობლემა შეგექმნებათ ამ პინთან დაკავშირებით, დარწმუნდით, რომ იხილეთ ქვემოთ მოყვანილი ვიდეო, სადაც მე გაგიზიარებთ თუ როგორ უნდა დააკავშიროთ იგი.

ნაბიჯი 6: ყველაფერი ერთად ააწყვეთ

აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად

ძნელია ტექსტით ახსნა, თუ როგორ ჯდება ეს ყველაფერი ერთმანეთთან, ამიტომ მე აუცილებლად გირჩევთ, რომ ნახოთ ვიდეო ამ ნაწილისთვის. მე ნამდვილად არ ვაპირებ ზუსტად ავხსნა როგორ შევაჯამო ჩემი, ეს ძალიან რთულია. მაგრამ ბუნდოვნად რომ ავხსნა, მავთულხლართებს შევეჯახე და დაფის უკანა მხარეს შემოვხვიე. შემდეგ დავაყენე სენსორები და გამოვიყენე ელექტრული ლენტი, რომ ეს ყველაფერი ერთად მეჭირა. და ბოლოს, მე გამოვცადე ის 9 ვ ბატარეით, შემდეგ კი როგორც კი ვიცოდი რომ მუშაობდა, ბატარეა დავდე უკანა მხარეს და ჩავამაგრე ისიც. როგორც უკვე ვთქვი, გადახედეთ ვიდეოს ამ ნაბიჯისათვის, მას აქვს ლამაზი პატარა შედუღების სეგმენტი, რომელიც დაჩქარებულია და დაგეხმარებათ მავთულის სწორად შეფუთვაში. მოგერიდებათ პაუზის გაკეთება ან ნახევარ სიჩქარეზე თამაში თუ დაიკარგებით.

გილოცავთ! თუ ყველაფერი წარმატებით დასრულდა, თქვენ უნდა გქონდეთ სრულად ფუნქციონალური APEX ერთეული!

თქვენი ერთეულის შესამოწმებლად, იპოვეთ მორწყული მცენარე და შეაერთეთ იგი! თქვენ უნდა გაარკვიოთ, რომ ის არის ბედნიერი ან გაკვირვებული და ეს ნიშნავს რომ ის უნდა მუშაობდეს !!! შესანიშნავი სამუშაო პროექტის დასრულებისთვის!

ნაბიჯი 7: დასკვნა

დასკვნა
დასკვნა

და ეს არის მთელი ინსტრუქცია! მადლობა პროექტის შემოწმებისთვის! დატოვეთ ნებისმიერი შეკითხვა და კომენტარი ქვემოთ და დარწმუნდით, რომ მიჰყევით ურბანული მეურნეობის ბიჭებს უფრო მაგარი გაკვეთილებისთვის! ჩვენ გვსურს მოვისმინოთ, თუ როგორ წავიდა თქვენი APEX მშენებლობა და სურათები ძალიან დაფასებულია! კიდევ ერთხელ მადლობა გვერდში დგომისთვის, წარმატებულ დღეს გისურვებთ!

(ეს ინსტრუქცია შთაგონებულია ძველი პროექტით, Plant Emoji!)

პ.ს. ეს ინსტრუქცია ჩართულია მიკროკონტროლერების კონკურსში, ასე რომ არ დაგავიწყდეთ ხმის მიცემა ჩვენთვის! ჩვენ ძალიან ვაფასებთ:)

პ.პ.ს. მოდით მივიღოთ APEX ჟურნალ Make- ში! ხმა მიეცი აქ! მადლობა:)

გირჩევთ: