Სარჩევი:
- მარაგები
- ნაბიჯი 1: როგორ მუშაობს …
- ნაბიჯი 2: კოდის ატვირთვა
- ნაბიჯი 3: საჭირო ბიბლიოთეკები:
- ნაბიჯი 4: კავშირები
- ნაბიჯი 5: დააკაკუნეთ ეს ყველაფერი ერთად
- ნაბიჯი 6: შემდგომი გაუმჯობესება:
ვიდეო: რობოტი, რომელიც გეუბნებათ, ელექტრონიკის გამყიდველი მოგატყუებთ თუ არა: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
შარშან, მე და მამა წავედით ახლად გახსნილ რობოტექნიკის/ელექტრონიკის მაღაზიაში, სადაც ჩვენ ვცხოვრობთ. იქ რომ შევედი, სავსე იყო ელექტრონიკით, სეროვებით, სენსორებით, ჟოლოს პისით და არდუინოსით. მეორე დღეს ჩვენ წავედით იმავე მაღაზიაში და შევიძინეთ ბევრი სენორი და 3 არდუინო დაახლოებით 150 აშშ დოლარი. როგორც კი სახლში წავედი, სხვა პროდუქტი არ მუშაობდა არდუინო მეგას გარდა. ჩვენ მოგვატყუეს დაახლოებით 130 აშშ დოლარად, რაც ბევრია.
ამრიგად, მე გადავწყვიტე შევქმნა რობოტი, რომელსაც შეუძლია შეამოწმოს დაახლოებით 12 სენსორი და 2 ძრავა (ჯერ კიდევ მუშაობს სერვოზე) და შეუძლია განსაზღვროს პროდუქტი გაუმართავია.
მოდი პირდაპირ მასში შევიდეთ!
მარაგები
1. არდუინო გაერო
2. 2.4 TFT სენსორული ეკრანი
3. რამოდენიმე მხტუნავი მავთული
4. სენსორები და ძრავები, რომ შეძლოთ მათი გამოცდა (აქ მე გამოვიყენე - მოძრაობის სენსორი, MQ6 გაზის სენსორი, ხმის სენსორი, პოტენომეტრი და წყლის დონის სენსორი)
ნაბიჯი 1: როგორ მუშაობს …
მე დავგეგმე 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– ით აღჭურვილი რობოტი.
- Ხარვეზის შესწორება
გირჩევთ:
გააკეთეთ მარტივი უსასრულობის სარკის კუბი - არა 3D ბეჭდვა და არა პროგრამირება: 15 ნაბიჯი (სურათებით)
გააკეთეთ მარტივი უსასრულობის სარკის კუბი | არა 3D ბეჭდვა და არა პროგრამირება: ყველას მოსწონს კარგი უსასრულობის კუბი, მაგრამ ისინი ისე გამოიყურებიან, როგორც ძნელი გასაკეთებელი. ჩემი მიზანი ამ ინსტრუქციულ პროგრამაში არის გაჩვენოთ ნაბიჯ-ნაბიჯ თუ როგორ უნდა გააკეთოთ ეს. არა მხოლოდ ეს, არამედ იმ მითითებებით, რასაც მე გაძლევთ, თქვენ შეძლებთ გააკეთოთ ერთი
დაბალანსებული რობოტი / 3 ბორბლიანი რობოტი / STEM რობოტი: 8 ნაბიჯი
დაბალანსებული რობოტი / 3 ბორბლიანი რობოტი / STEM რობოტი: ჩვენ შევქმენით კომბინირებული ბალანსირების და 3 ბორბლიანი რობოტი სკოლებში საგანმანათლებლო გამოყენებისთვის და სკოლის შემდგომ საგანმანათლებლო პროგრამებისთვის. რობოტი დაფუძნებულია Arduino Uno– ზე, საბაჟო ფარზე (კონსტრუქციის ყველა დეტალი მოცემულია), Li Ion ბატარეის პაკეტზე (ყველა კონსტრუქცია
[არდუინოს რობოტი] როგორ გავაკეთოთ მოძრავი გადაღების რობოტი - ცერა თითის რობოტი - სერვო ძრავა - წყაროს კოდი: 26 ნაბიჯი (სურათებით)
[არდუინოს რობოტი] როგორ გავაკეთოთ მოძრავი გადაღების რობოტი | ცერა თითის რობოტი | სერვო მოტორი | წყაროს კოდი: Thumbs Robot. გამოყენებული იქნა MG90S სერვო ძრავის პოტენომეტრი. ეს არის ძალიან სახალისო და მარტივი! კოდი ძალიან მარტივია. ეს მხოლოდ 30 სტრიქონია. როგორც ჩანს მოძრაობის გადაღება. გთხოვთ დატოვოთ ნებისმიერი შეკითხვა ან გამოხმაურება! [ინსტრუქცია] წყაროს კოდი https: //github.c
მისტიკური ბროლის ბურთი (ეს სიტყვასიტყვით გეუბნებათ თქვენს ბედს!): 3 ნაბიჯი (სურათებით)
მისტიკური ბროლის ბურთი (ეს სიტყვასიტყვით გეუბნებათ თქვენს ბედს!): ისწავლეთ როგორ გააკეთოთ ბედისწერის მომცემი ბროლის ბურთი, რომელიც თქვენს მომავალს ავლენს შეხებისას! პროექტი შედგება სამი ძირითადი ნაწილისგან და შეიძლება აშენდეს დაახლოებით ოთხ საათში. მასალები: 1. ტევადობის შეხების სენსორი: 1 - Arduino Uno მიკროკონტროლერი 1
არა ჯარისკაცი, მხიარული რობოტი წუთებში (Bristlebot): 11 ნაბიჯი (სურათებით)
არა ჯარისკაცი, მხიარული რობოტი წუთებში (Bristlebot): რეზიუმე: ააშენეთ იაფი რობოტი, რომელსაც არ აქვს შედუღება, პროგრამირება და მექანიკური მუშაობა. იგი აგებულია ჭურჭლის სარეცხი ფუნჯზე. წინსვლისთვის ის გამოიყენებს ვიბრაციებს, რომლებიც გადაეცემა ასიმეტრიულად ჯაგრისების გადახრით. მე დავინახე ასეთი რობოტი