Სარჩევი:

რობოტი, რომელიც გეუბნებათ, ელექტრონიკის გამყიდველი მოგატყუებთ თუ არა: 6 ნაბიჯი
რობოტი, რომელიც გეუბნებათ, ელექტრონიკის გამყიდველი მოგატყუებთ თუ არა: 6 ნაბიჯი

ვიდეო: რობოტი, რომელიც გეუბნებათ, ელექტრონიკის გამყიდველი მოგატყუებთ თუ არა: 6 ნაბიჯი

ვიდეო: რობოტი, რომელიც გეუბნებათ, ელექტრონიკის გამყიდველი მოგატყუებთ თუ არა: 6 ნაბიჯი
ვიდეო: ქართული წარმოების სამხედრო დანიშნულების ტექნიკა, რომელიც ექსპორტზე გადის 2024, ნოემბერი
Anonim
რობოტი, რომელიც გეუბნებათ, ელექტრონიკის გამყიდველი მოგატყუებთ თუ არა
რობოტი, რომელიც გეუბნებათ, ელექტრონიკის გამყიდველი მოგატყუებთ თუ არა

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

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

მოდი პირდაპირ მასში შევიდეთ!

მარაგები

1. არდუინო გაერო

2. 2.4 TFT სენსორული ეკრანი

3. რამოდენიმე მხტუნავი მავთული

4. სენსორები და ძრავები, რომ შეძლოთ მათი გამოცდა (აქ მე გამოვიყენე - მოძრაობის სენსორი, MQ6 გაზის სენსორი, ხმის სენსორი, პოტენომეტრი და წყლის დონის სენსორი)

ნაბიჯი 1: როგორ მუშაობს …

Image
Image

მე დავგეგმე Arduino- ს შექმნა და ინტერაქტიული ინტერფეისი TFT დისპლეით. როგორც ვიცით, TFT ეკრანს აქვს მხოლოდ ერთი უფასო პინი, ანუ A5 პინი. (თუ იყენებთ გაეროს). ასე რომ, ნებისმიერი სენსორი, რომელიც იყენებს ანალოგიურ ქინძისთავებს მონაცემების წასაკითხად, თავსებადია ამ დაყენებასთან…

UI– ში შეგიძლიათ შეცვალოთ დესკტოპის ფონის ფერი და გახსნათ აპლიკაცია, რომელიც შემუშავებულია Arduino– ს მიერ ჩემ მიერ სენსორების შესამოწმებლად.

აპლიკაციის გახსნისას შეგიძლიათ ნახოთ 2 ვარიანტი, INPUT და OUTPUT. თუ დააწკაპუნებთ შეყვანაზე, ის აჩვენებს 4 სენსორს (ის თავსებადია 12 -თან, მაგრამ მე ჯერ არ ვაპროგრამებ მას, რადგან გამოცდები ახლოვდება ….დრო არ არის:(. ნებისმიერს შეუძლია კოდის რედაქტირება …)

მას ასევე შეუძლია შეამოწმოს, მუშაობს თუ არა სერვო ძრავა თქვენთან სლოტში.

გადახედე:

ნაბიჯი 2: კოდის ატვირთვა

კოდი არის 600 ხაზიანი პროგრამა, რომელიც მე დეტალურად დავაკოდი დაახლოებით 50 საათში. მას აქვს რამდენიმე შეცდომა, ასე რომ გთხოვთ შეცვალოთ იგი და გამომიგზავნოთ ჩემს ფოსტაში ([email protected]).

ატვირთეთ კოდი და დაუკავშირეთ TFT ფარი არდუინოს. მე გირჩევთ ითამაშოთ UI– ით ისე, რომ უკეთ გაეცნოთ მას.

Კოდი:

#ჩართეთ

#ჩართეთ #ჩართეთ #ჩართეთ #განსაზღვრეთ LCD_CS A3 #განსაზღვრეთ LCD_CD A2 #განსაზღვრეთ LCD_WR A1 #განსაზღვრეთ LCD_RD A0 #განსაზღვრეთ LCD_RESET A4 #განსაზღვრეთ შავი 0x0000 #განსაზღვრეთ ლურჯი 0x001F #განისაზღვრეთ 0x7FF 0 0 #განსაზღვრეთ MAGENTA 0xF81F #განსაზღვრეთ ყვითელი 0xFFE0 #განსაზღვრეთ თეთრი 0xFFFF #განსაზღვრეთ LIGHTGREY 0xC618 #განსაზღვრეთ მეწამული 0x780F #განსაზღვრეთ OLIVE 0x7BE0 #განსაზღვრეთ შერჩევა #დააზუსტეთ X2 160 #განსაზღვრეთ TS_MAXX 160 #განსაზღვრეთ TS_MAXY 970 TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); #განსაზღვრეთ BOXSIZE 40 #განსაზღვრეთ PENRADIUS 3 #განსაზღვრეთ MINPRESSURE 10 #განსაზღვრეთ MAXPRESSURE 1000 int ხმა; char სახელმწიფო = 6; int შეხება = 0; int ფერი = შავი; int redir = 0; ინტო ოტა; void setup () {Serial.begin (9600); tft.reset (); tft.setFont (& FreeMonoBoldOblique12pt7b); tft. დასაწყისი (0x9325); tft.setRotation (45); tft.setTextSize (0.5); tft.fillScreen (WHITE); tft.setCursor (60, 160); tft.setTextColor (შავი); tft.print ("გადაფურცლეთ შესასვლელად"); } void loop () {float sensorVoltage; მცურავი სენსორი ღირებულება; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); if (pz> MINPRESSURE && pz 240 && px 130 && py 240 && px 20 && py 240 && px 20 && py 160 && px 12 && py 240 && px 20 && py 240 && px 20 && py 40 && px 15 && py 150 && px 40 && py 150 && px 80 && py 150 && px 120 && py 150 && px 170 && py 90 && px 40 && py 90 && px 80 && py 90 && px 120 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 100 && px 20 && py 200 && px 100 && py 100 && px 20 && py 100 && px 20 && py 100 && px 20 && py <100) {touch = 26; }} if (შეხება == 1 && მდგომარეობა == 6) {tft.setRotation (0); tft.fillScreen (ფერი); ხმა = 0; tft.fillRect (200, 180, 80, 140, WHITE); tft.drawRect (201, 181, 81, 141, შავი); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, შავი); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, შავი); tft.fillRect (10, 180, 30, 120, PURPLE); tft.drawRect (11, 181, 31, 121, შავი); tft.fillRect (45, 180, 30, 120, ცისფერი); tft.drawRect (46, 181, 31, 121, შავი); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, შავი); tft.fillRect (115, 180, 30, 120, მწვანე); tft.drawRect (116, 181, 31, 121, შავი); tft.fillRect (150, 180, 30, 120, YELLOW); tft.drawRect (151, 181, 31, 121, შავი); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); tft.fillRect (200, 35, 12, 12, WHITE); tft.drawTriangle (210, 30, 210, 50, 220, 40, შავი); tft.drawRect (200, 35, 12, 12, შავი); tft.drawCircle (210, 40, 14, WHITE); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print ("პარამეტრები"); tft.fillRoundRect (45, 75, 75, 75, 4, WHITE); tft.drawRoundRect (45, 75, 75, 75, 4, შავი); tft.fillRect (75, 75, 15, 30, შავი); tft.fillRect (75, 120, 15, 30, შავი); tft.fillRect (90, 105, 30, 15, შავი); tft.fillRect (45, 105, 30, 15, შავი); მდგომარეობა = 7; შეხება = 0; ოტა = 0; } if (touch == 2) {tft.fillScreen (WHITE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); tft.fillRect (200, 35, 12, 12, WHITE); tft.drawTriangle (210, 30, 210, 50, 220, 40, შავი); tft.drawRect (200, 35, 12, 12, შავი); tft.drawCircle (210, 40, 14, შავი); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, შავი); tft.drawLine (300, 30, 270, 30, შავი); tft.setCursor (20, 200); tft.print ("პერსონალიზაცია"); tft.setCursor (20, 170); tft.print ("გასვლა"); tft.setCursor (20, 140); tft.print ("პერიფერიული მოწყობილობები"); tft.setCursor (20, 110); tft.print ("შესახებ"); შეხება = 1; მდგომარეობა = 2; } if (touch == 10 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (10, 160); tft.setTextColor (შავი); tft.print ("შეიქმნა და განვითარდა"); tft.setCursor (100, 190); tft.print ("by:"); tft.setCursor (60, 220); tft.print ("მოზარდი ინდოეთიდან"); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); tft.fillRect (200, 35, 12, 12, WHITE); tft.drawTriangle (210, 30, 210, 50, 220, 40, შავი); tft.drawRect (200, 35, 12, 12, შავი); tft.drawCircle (210, 40, 14, შავი); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, შავი); tft.drawLine (300, 30, 270, 30, შავი); მდგომარეობა = 6; } if (touch == 11 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (60, 40); tft.print ("აარჩიე"); tft.setCursor (40, 60); tft.print ("ფონის ფერი"); tft.fillRect (60, 180, 45, 45, RED); tft.fillRect (120, 180, 45, 45, ყვითელი); tft.fillRect (180, 180, 45, 45, ცისფერი); tft.fillRect (240, 180, 45, 45, მწვანე); tft.fillRect (60, 130, 45, 45, MAGENTA); tft.fillRect (120, 130, 45, 45, NAVY); tft.fillRect (180, 130, 45, 45, LIGHTGREY); tft.fillRect (240, 130, 45, 45, CYAN); tft.fillRect (60, 80, 45, 45, თეთრი); tft.drawRect (60, 80, 45, 45, შავი); tft.fillRect (120, 80, 45, 45, შავი); tft.fillRect (180, 80, 45, 45, ზეთისხილი); tft.fillRect (240, 80, 45, 45, PURPLE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); tft.fillRect (200, 35, 12, 12, WHITE); tft.drawTriangle (210, 30, 210, 50, 220, 40, შავი); tft.drawRect (200, 35, 12, 12, შავი); tft.drawCircle (210, 40, 14, შავი); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, შავი); tft.drawLine (300, 30, 270, 30, შავი); მდგომარეობა = 6; if (redir == 1) {color = WHITE; } if (redir == 2) {color = BLACK; } if (redir == 3) {color = OLIVE; } if (redir == 4) {color = PURPLE; } if (redir == 5) {color = MAGENTA; } if (redir == 6) {color = NAVY; } if (redir == 7) {color = LIGHTGREY; } if (redir == 8) {color = CYAN; } if (redir == 9) {color = RED; } if (redir == 10) {color = YELLOW; } if (redir == 11) {color = BLUE; } if (redir == 12) {color = GREEN; }} if (touch == 26) {ota = 1; tft.fillScreen (WHITE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); tft.fillRect (200, 35, 12, 12, WHITE); tft.drawTriangle (210, 30, 210, 50, 220, 40, შავი); tft.drawRect (200, 35, 12, 12, შავი); tft.drawCircle (210, 40, 14, შავი); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, შავი); tft.drawLine (300, 30, 270, 30, შავი); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("შეყვანა"); tft.setCursor (30, 150); tft.print ("გამომავალი"); tft.drawRect (25, 130, 90, 30, შავი); tft.drawRect (25, 60, 90, 30, შავი); if (p.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("წყლის დონე"); tft.setCursor (150, 170); tft.print ("გაზის დონე"); tft.setCursor (150, 120); tft.print ("მანძილი"); tft.setCursor (150, 70); tft.print ("ხმა"); შეხება = 1; მდგომარეობა = 2; }}} while (sound == 1) {tft.fillScreen (WHITE); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("ხმის დონე ="); Serial.println (sensorVoltage); დაგვიანება (1000); თუ (ხმა == 0) {შესვენება; }}}}

ნაბიჯი 3: საჭირო ბიბლიოთეკები:

  • Adafruit_GFX.h
  • Adafruit_TFTLCD.h
  • TouchScreen.h

Github ბმულები იგივეა:

github.com/adafruit/Adafruit-GFX-Library

github.com/adafruit/TFTLCD-Library

github.com/adafruit/Adafruit_TouchScreen

ნაბიჯი 4: კავშირები

დააკაკუნეთ ეს ყველაფერი ერთად
დააკაკუნეთ ეს ყველაფერი ერთად

თქვენ გჭირდებათ 6 ჯუმბერის მავთული. 3 მამაკაცი და 3 ქალი. მიამაგრეთ ისინი პირდაპირ არდუინოს დაფაზე ასე:

ნაბიჯი 5: დააკაკუნეთ ეს ყველაფერი ერთად

ჩადეთ მავთულები არდუინოში (იხილეთ სურათი), საჭიროების შემთხვევაში გამოიყენეთ წებოვანი იარაღი…

შემდეგ მიამაგრეთ TFT ფარი და შეამოწმეთ თქვენი სენსორები.

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

გიხარია ელექტრონიკის თაღლითების დამზადება და სიფრთხილე?

ნაბიჯი 6: შემდგომი გაუმჯობესება:

  • მეტი სენსორული თავსებადობა
  • სერვო ძრავის კოდი უნდა დასრულებულიყო
  • კიდევ ერთი აპლიკაცია, რომელსაც შეუძლია Bluetooth მოდულებთან ინტერფეისი, რათა ჩვენ გავაკონტროლოთ მასთან ერთად Bluetooth– ით აღჭურვილი რობოტი.
  • Ხარვეზის შესწორება

გირჩევთ: