Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Paano Ito Gumagawa….
- Hakbang 2: Pag-upload ng Code
- Hakbang 3: Kinakailangan ang Mga Aklatan:
- Hakbang 4: Ang Mga Koneksyon
- Hakbang 5: Sabayin Lahat Ito
- Hakbang 6: Karagdagang Mga Pagpapabuti:
Video: Isang Robot na Nagsasabi Kung ang Isang Elektronikal na Nagbebenta ay Niloloko Ka o Hindi: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
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….
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
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:
I-save ang Aking Anak: ang Matalinong Upuan na Nagpapadala ng Mga Mensahe sa Teksto Kung Nakalimutan Mo ang Bata sa Kotse: 8 Hakbang
I-save ang Aking Anak: ang Matalinong Upuan na Nagpapadala ng Mga Mensahe sa Teksto Kung Nakalimutan Mo ang Bata sa Kotse: Naka-install ito sa mga kotse, at salamat sa isang detektor na inilagay sa upuan ng bata, binabalaan tayo nito - sa pamamagitan ng SMS o tawag sa telepono - kung nakakuha kami palayo nang hindi dinadala ang bata
Ipagsalita ang Iyong Computer Kung Ano ang Na-type Mo Gamit ang Notepad: 3 Mga Hakbang
Ipagsalita sa Iyong Computer ang Iyong Na-type Gamit ang Notepad: Narito ang isang kagiliw-giliw na code na nilikha namin upang magsalita ang iyong computer sa iyong nai-type. Gagamitin namin ang notepad upang likhain ito. Magsimula Na Tayo
Hindi gumagana ang NODEMcu Usb Port? I-upload ang Code Gamit ang USB sa TTL (FTDI) Module sa 2 Hakbang lamang: 3 Hakbang
Hindi gumagana ang NODEMcu Usb Port? I-upload ang Code Gamit ang USB sa TTL (FTDI) Module sa Lamang 2 Mga Hakbang: Pagod na sa pagkonekta sa maraming mga wire mula sa USB hanggang TTL module sa NODEMcu, sundin ang itinuturo na ito, upang mai-upload ang code sa 2 hakbang lamang. Kung ang USB port ng Ang NODEMcu ay hindi gumagana, pagkatapos ay huwag panic. Ito lang ang USB driver chip o ang konektor ng USB,
Lumiko Ang Anumang Headphone Sa Isang Modular Headset (hindi Mapanghimasok) Nang Hindi Pinipinsala ang Headphone .: 9 Mga Hakbang
Lumiko Ang Anumang Headphone Sa isang Modular Headset (hindi Mapanghimasok) Nang Hindi Pinipinsala ang Headphone .: Ito ay isang ideya na wala ako sa asul pagkatapos bigyan ako ng isang kaibigan ng ilang sirang mga headset ng supercheap. Ito ay isang modular microphone na maaaring magnetically nakakabit sa halos anumang headphone (gusto ko ito dahil kaya kong mag-gaming kasama ang mga high res headphone at pati na rin
Paano Malalaman Kung Yahoo! Ang Mga Gumagamit ay Naka-sign sa Bilang Hindi Invisibles Mode: 6 Mga Hakbang
Paano Malalaman Kung Yahoo! Ang Mga Gumagamit ay Naka-sign in Bilang Invisibles Mode: ipapakita nito sa iyo kung paano malalaman kung ang mga gumagamit ng yahoo ay naka-sign in bilang hindi nakikita mode at talagang gumagana ito sa yahoo messenger 8 ngunit hindi ko ito sinubukan sa 9 (beta) …. kung paano ito gumagana: magsisimula ang doodle kung ang iyong kaibigan ay invisible mode tulad nito ::: "JOHN" ay lilitaw