Talaan ng mga Nilalaman:

Isang Robot na Nagsasabi Kung ang Isang Elektronikal na Nagbebenta ay Niloloko Ka o Hindi: 6 na Hakbang
Isang Robot na Nagsasabi Kung ang Isang Elektronikal na Nagbebenta ay Niloloko Ka o Hindi: 6 na Hakbang

Video: Isang Robot na Nagsasabi Kung ang Isang Elektronikal na Nagbebenta ay Niloloko Ka o Hindi: 6 na Hakbang

Video: Isang Robot na Nagsasabi Kung ang Isang Elektronikal na Nagbebenta ay Niloloko Ka o Hindi: 6 na Hakbang
Video: МАСТЕР-КЛАСС по Arduino | Полный семинар по программированию за 90 минут! 2024, Nobyembre
Anonim
Isang Robot na Nagsasabi Kung ang Isang Elektronikal na Nagbebenta ay Niloloko Ka o Hindi
Isang Robot na Nagsasabi Kung ang Isang Elektronikal na Nagbebenta ay Niloloko Ka o Hindi

Noong nakaraang taon, ako at ang aking ama ay nagpunta sa isang bagong bukas na tindahan ng robot / electronics na malapit sa tinitirhan namin. Pagpasok ko doon, Puno ito ng electronics, serovs, sensor, Raspberry pis, at Arduinos. Kinabukasan, nagpunta kami sa parehong tindahan at bumili ng maraming mga senador at 3 Arduinos na nagkakahalaga ng halos 150 USD. Pag-uwi ko lang, wala nang ibang mga produkto ang nagtrabaho maliban sa Arduino Mega. Kami ay na-scam para sa halos 130 USD na marami.

Kaya, nagpasya akong lumikha ng isang robot na maaaring subukan ang tungkol sa 12 sensor at 2 motor (gumagana pa rin sa servo) at matutukoy kung may mali ang produkto.

Dumiretso tayo dito!

Mga gamit

1. Arduino UNO

2. 2.4 TFT touchscreen display

3. pares ng mga jumper wires

4. mga sensor at motor upang masubukan mo ang mga ito (dito ginamit ko - Motion sensor, MQ6 gas sensor, Sound sensor, potentiometer at level ng water sensor)

Hakbang 1: Paano Ito Gumagawa….

Image
Image

Nag-program ako ng isang Arduino upang lumikha at makipag-ugnay sa UI na may isang display na TFT. Tulad ng alam natin, ang display ng TFT ay may isang libreng pin lamang ibig sabihin ay ang A5 pin. (kung gagamitin mo ang UNO). Kaya't ang anumang sensor na gumagamit ng mga Analog na pin upang mabasa ang data ay katugma sa pag-setup na ito …

Sa UI, maaari mong baguhin ang kulay ng background sa desktop, at maaari mong buksan ang app na binuo para sa Arduino sa akin upang subukan ang mga sensor.

Sa pagbubukas ng app, maaari mong makita ang 2 mga pagpipilian, INPUT at OUTPUT. kaya't kung nag-click ka sa Input, nagpapakita ito ng 4 na mga sensor (Ito ay katugma sa 12, ngunit i-program ko pa rin ito dahil mayroon akong mga pagsusulit na papalapit …. walang oras:(. Sinuman ay malayang i-edit ang code …)

At maaari mo ring suriin kung gumagana ang servo motor ng iyong ikonekta ito sa puwang.

tumingin:

Hakbang 2: Pag-upload ng Code

Ang code ay isang 600 na linya ng programa na masusing naka-code sa loob ng 50 oras. Mayroon itong ilang mga bug kaya't baguhin ito at ipadala ito sa akin sa aking mail ([email protected]).

I-upload ang code at ikonekta ang kalasag ng TFT sa Arduino. Inirerekumenda ko sa iyo na maglaro kasama ang UI upang mas mahusay na mabitin ito.

Ang code:

# isama

#include #include #include #define LCD_CS A3 #define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4 #define BLACK 0x0000 #define BLUE 0x001F #define NAVY 0x000F #definedefinex 0definexx 0xf 0dfc 0xf0xfcxxfcxfcxf0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0fcfxfcfxfcfxfcfxfc #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Select 160 #define TS_MAXX 160 #define TS_MAXY 970 TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); #define BOXSIZE 40 #define PENRADIUS 3 # tukuyin ang MINPRESSURE 10 # tukuyin ang MAXPRESSURE 1000 int tunog; estado ng char = 6; int touch = 0; int kulay = BLACK; int redir = 0; int ota; void setup () {Serial.begin (9600); tft.reset (); tft.setFont (& FreeMonoBoldOblique12pt7b); tft.begin (0x9325); tft.setRotation (45); tft.setTextSize (0.5); tft.fillScreen (PUTI); tft.setCursor (60, 160); tft.setTextColor (BLACK); tft.print ("Mag-swipe upang mag-log in"); } void loop () {float sensorVoltage; float sensorValue; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); kung (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; }} kung (pindutin ang == 1 && estado == 6) {tft.setRotation (0); tft.fillScreen (kulay); tunog = 0; tft.fillRect (200, 180, 80, 140, WHITE); tft.drawRect (201, 181, 81, 141, BLACK); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, BLACK); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, BLACK); tft.fillRect (10, 180, 30, 120, PURPLE); tft.drawRect (11, 181, 31, 121, BLACK); tft.fillRect (45, 180, 30, 120, BLUE); tft.drawRect (46, 181, 31, 121, BLACK); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, BLACK); tft.fillRect (115, 180, 30, 120, GREEN); tft.drawRect (116, 181, 31, 121, BLACK); tft.fillRect (150, 180, 30, 120, DILAW); tft.drawRect (151, 181, 31, 121, BLACK); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); tft.fillRect (200, 35, 12, 12, WHITE); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, BLACK); tft.drawCircle (210, 40, 14, WHITE); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print ("Mga Setting"); tft.fillRoundRect (45, 75, 75, 75, 4, WHITE); tft.drawRoundRect (45, 75, 75, 75, 4, BLACK); tft.fillRect (75, 75, 15, 30, BLACK); tft.fillRect (75, 120, 15, 30, BLACK); tft.fillRect (90, 105, 30, 15, BLACK); tft.fillRect (45, 105, 30, 15, BLACK); estado = 7; hawakan = 0; ota = 0; } kung (pindutin ang == 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, BLACK); tft.drawRect (200, 35, 12, 12, BLACK); tft.drawCircle (210, 40, 14, BLACK); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, BLACK); tft.setCursor (20, 200); tft.print ("personalization"); tft.setCursor (20, 170); tft.print ("mag-log out"); tft.setCursor (20, 140); tft.print ("peripherals"); tft.setCursor (20, 110); tft.print ("About"); hawakan = 1; estado = 2; } kung (pindutin ang == 10 && estado == 2) {tft.fillScreen (WHITE); tft.setCursor (10, 160); tft.setTextColor (BLACK); tft.print ("Nilikha at binuo"); tft.setCursor (100, 190); tft.print ("ni:"); tft.setCursor (60, 220); tft.print ("Isang tinedyer mula sa India"); 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, BLACK); tft.drawRect (200, 35, 12, 12, BLACK); tft.drawCircle (210, 40, 14, BLACK); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, BLACK); estado = 6; } kung (pindutin ang == 11 && estado == 2) {tft.fillScreen (WHITE); tft.setCursor (60, 40); tft.print ("Pumili ng isang"); tft.setCursor (40, 60); tft.print ("kulay ng background"); tft.fillRect (60, 180, 45, 45, RED); tft.fillRect (120, 180, 45, 45, DILAW); tft.fillRect (180, 180, 45, 45, BLUE); tft.fillRect (240, 180, 45, 45, GREEN); 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, WHITE); tft.drawRect (60, 80, 45, 45, BLACK); tft.fillRect (120, 80, 45, 45, BLACK); tft.fillRect (180, 80, 45, 45, OLIVE); 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, BLACK); tft.drawRect (200, 35, 12, 12, BLACK); tft.drawCircle (210, 40, 14, BLACK); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, BLACK); estado = 6; kung (redir == 1) {color = WHITE; } kung (redir == 2) {color = BLACK; } kung (redir == 3) {color = OLIVE; } kung (redir == 4) {color = PURPLE; } kung (redir == 5) {color = MAGENTA; } kung (redir == 6) {color = NAVY; } kung (redir == 7) {color = LIGHTGREY; } kung (redir == 8) {color = CYAN; } kung (redir == 9) {color = RED; } kung (redir == 10) {color = YELLOW; } kung (redir == 11) {color = BLUE; } kung (redir == 12) {color = GREEN; }} kung (pindutin ang == 26) {ota = 1; tft.fillScreen (PUTI); 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, BLACK); tft.drawRect (200, 35, 12, 12, BLACK); tft.drawCircle (210, 40, 14, BLACK); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, BLACK); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("Input"); tft.setCursor (30, 150); tft.print ("Output"); tft.drawRect (25, 130, 90, 30, BLACK); tft.drawRect (25, 60, 90, 30, BLACK); kung (p.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("Antas ng tubig"); tft.setCursor (150, 170); tft.print ("Antas ng gas"); tft.setCursor (150, 120); tft.print ("Distansya"); tft.setCursor (150, 70); tft.print ("Tunog"); hawakan = 1; estado = 2; }}} habang (tunog == 1) {tft.fillScreen (PUTI); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Antas ng tunog ="); Serial.println (sensorVoltage); pagkaantala (1000); kung (tunog == 0) {masira; }}}}

Hakbang 3: Kinakailangan ang Mga Aklatan:

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

Ang mga link ng Github para sa pareho:

github.com/adafruit/Adafruit-GFX-Library

github.com/adafruit/TFTLCD-Library

github.com/adafruit/Adafruit_TouchScreen

Hakbang 4: Ang Mga Koneksyon

Sampal Tayong Lahat
Sampal Tayong Lahat

Kailangan mo ng 6 na jumper wires. 3 lalaki at 3 babae. diretso ang mga ito sa Arduino board tulad nito:

Hakbang 5: Sabayin Lahat Ito

Itago ang mga wire sa arduino (mag-refer sa imahe), Gumamit ng ilang pandikit gun kung kinakailangan…

Pagkatapos Ikabit ang kalasag ng TFT pagkatapos ay subukan ang iyong Mga Sensor.

Salamat sa pag-scroll pababa. Tiyaking bumoto para sa akin kung naramdaman mong natatangi at kapaki-pakinabang ang proyektong ito

Maligayang paggawa at pag-iingat sa mga scammer sa Electronics?

Hakbang 6: Karagdagang Mga Pagpapabuti:

  • Higit pang pagiging tugma ng sensor
  • Servo motor code ay dapat na natapos
  • Isa pang app na maaaring mag-interface sa mga module ng Bluetooth upang makontrol natin ang isang robot na pinalakas ng robot kasama nito.
  • Pag-aayos ng bug

Inirerekumendang: