Isi kandungan:

Robot Yang Memberitahu Jika Vendor Elektronik Menipu Anda atau Tidak: 6 Langkah
Robot Yang Memberitahu Jika Vendor Elektronik Menipu Anda atau Tidak: 6 Langkah

Video: Robot Yang Memberitahu Jika Vendor Elektronik Menipu Anda atau Tidak: 6 Langkah

Video: Robot Yang Memberitahu Jika Vendor Elektronik Menipu Anda atau Tidak: 6 Langkah
Video: Modus Pembajakan Kode OTP 2024, Julai
Anonim
Robot Yang Memberitahu Jika Vendor Elektronik Menipu Anda atau Tidak
Robot Yang Memberitahu Jika Vendor Elektronik Menipu Anda atau Tidak

Tahun lalu, saya dan ayah pergi ke kedai robotik / elektronik yang baru dibuka sangat dekat dengan tempat tinggal kami. Semasa saya masuk ke sana, itu penuh dengan elektronik, serov, sensor, Raspberry pis, dan Arduinos. Keesokan harinya, kami pergi ke kedai yang sama dan membeli banyak senor dan 3 Arduino bernilai sekitar 150 USD. Sebaik sahaja saya pulang, tidak ada produk lain yang berfungsi kecuali Arduino Mega. Kami ditipu sekitar 130 USD yang banyak.

Oleh itu, saya memutuskan untuk membuat robot yang dapat menguji kira-kira 12 sensor dan 2 motor (masih berfungsi pada servo) dan dapat menentukan sama ada produk itu rosak.

Mari masuk ke dalamnya!

Bekalan

1. Arduino UNO

2. Paparan skrin sentuh TFT 2.4"

3. sepasang wayar pelompat

4. sensor dan motor supaya anda dapat mengujinya (di sini saya gunakan - Sensor gerakan, sensor gas MQ6, Sensor suara, potensiometer dan sensor paras air)

Langkah 1: Bagaimana Ia Berfungsi…

Image
Image

Saya telah memprogram Arduino untuk membuat dan interaktif UI dengan paparan TFT. Seperti yang kita ketahui, paparan TFT hanya memiliki satu pin percuma iaitu pin A5. (jika anda menggunakan UNO). Oleh itu, sebarang sensor yang menggunakan pin Analog untuk membaca data serasi dengan persediaan ini…

Di UI, anda boleh menukar warna latar belakang desktop, dan anda boleh membuka aplikasi yang dikembangkan untuk Arduino oleh saya untuk menguji sensor.

Semasa membuka aplikasi, anda dapat melihat 2 pilihan, INPUT dan OUTPUT. jadi jika anda mengklik Input, Ia menunjukkan 4 sensor (Ia sesuai dengan 12, tetapi saya belum memprogramnya kerana saya menghadapi peperiksaan yang hampir… tidak ada masa:(. Sesiapa sahaja bebas untuk mengedit kod…)

Dan juga dapat memeriksa apakah motor servo berfungsi dari anda menghubungkannya di slot.

lihat:

Langkah 2: Memuat naik Kod

Kodnya adalah program baris 600 yang saya kodkan dengan teliti dalam kira-kira 50 jam. Ia mempunyai beberapa bug, jadi tolong ubah dan hantar kepada saya melalui surat saya ([email protected]).

Muat naik kod dan sambungkan perisai TFT ke Arduino. Saya mengesyorkan anda bermain-main dengan UI supaya anda dapat menggunakannya.

Kodnya:

#sertakan

#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 #define 0f000Fef0f #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #tentukan Pilihan #define YP A1 #define Xfine_fine Xfine 160 # tentukan TS_MAXX 160 # tentukan 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 #define MINPRESSURE 10 #define MAXPRESSURE 1000 int suara; keadaan char = 6; int sentuhan = 0; warna int = HITAM; int redir = 0; int ota; batal persediaan () {Serial.begin (9600); tft.reset (); tft.setFont (& FreeMonoBoldOblique12pt7b); tft.begin (0x9325); tft.setRotation (45); tft.setTextSize (0.5); tft.fillScreen (PUTIH); tft.setCursor (60, 160); tft.setTextColor (HITAM); tft.print ("Leret untuk log masuk"); } gelung void () {float sensorVoltage; sensor apunganValue; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); jika (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) {sentuhan = 26; }} jika (sentuh == 1 && state == 6) {tft.setRotation (0); tft.fillScreen (warna); bunyi = 0; tft.fillRect (200, 180, 80, 140, PUTIH); tft.drawRect (201, 181, 81, 141, HITAM); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, HITAM); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, HITAM); tft.fillRect (10, 180, 30, 120, PURPLE); tft.drawRect (11, 181, 31, 121, HITAM); tft.fillRect (45, 180, 30, 120, BIRU); tft.drawRect (46, 181, 31, 121, HITAM); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, HITAM); tft.fillRect (115, 180, 30, 120, HIJAU); tft.drawRect (116, 181, 31, 121, HITAM); tft.fillRect (150, 180, 30, 120, KUNING); tft.drawRect (151, 181, 31, 121, HITAM); tft.fillTriangle (210, 30, 210, 50, 220, 40, PUTIH); tft.fillRect (200, 35, 12, 12, PUTIH); tft.drawTriangle (210, 30, 210, 50, 220, 40, HITAM); tft.drawRect (200, 35, 12, 12, HITAM); tft.drawCircle (210, 40, 14, PUTIH); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print ("Tetapan"); tft.fillRoundRect (45, 75, 75, 75, 4, PUTIH); tft.drawRoundRect (45, 75, 75, 75, 4, HITAM); tft.fillRect (75, 75, 15, 30, HITAM); tft.fillRect (75, 120, 15, 30, HITAM); tft.fillRect (90, 105, 30, 15, HITAM); tft.fillRect (45, 105, 30, 15, HITAM); nyatakan = 7; sentuh = 0; ota = 0; } jika (sentuh == 2) {tft.fillScreen (PUTIH); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, PUTIH); tft.fillRect (200, 35, 12, 12, PUTIH); tft.drawTriangle (210, 30, 210, 50, 220, 40, HITAM); tft.drawRect (200, 35, 12, 12, HITAM); tft.drawCircle (210, 40, 14, HITAM); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, HITAM); tft.drawLine (300, 30, 270, 30, HITAM); tft.setCursor (20, 200); tft.print ("pemperibadian"); tft.setCursor (20, 170); tft.print ("log keluar"); tft.setCursor (20, 140); tft.print ("periferal"); tft.setCursor (20, 110); tft.print ("Tentang"); sentuhan = 1; nyatakan = 2; } jika (sentuh == 10 && state == 2) {tft.fillScreen (PUTIH); tft.setCursor (10, 160); tft.setTextColor (HITAM); tft.print ("Dibuat dan dikembangkan"); tft.setCursor (100, 190); tft.print ("oleh:"); tft.setCursor (60, 220); tft.print ("Seorang remaja dari India"); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, PUTIH); tft.fillRect (200, 35, 12, 12, PUTIH); tft.drawTriangle (210, 30, 210, 50, 220, 40, HITAM); tft.drawRect (200, 35, 12, 12, HITAM); tft.drawCircle (210, 40, 14, HITAM); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, HITAM); tft.drawLine (300, 30, 270, 30, HITAM); nyatakan = 6; } jika (sentuh == 11 && state == 2) {tft.fillScreen (PUTIH); tft.setCursor (60, 40); tft.print ("Pilih a"); tft.setCursor (40, 60); tft.print ("warna latar belakang"); tft.fillRect (60, 180, 45, 45, MERAH); tft.fillRect (120, 180, 45, 45, KUNING); tft.fillRect (180, 180, 45, 45, BIRU); tft.fillRect (240, 180, 45, 45, HIJAU); 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, PUTIH); tft.drawRect (60, 80, 45, 45, HITAM); tft.fillRect (120, 80, 45, 45, HITAM); 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, PUTIH); tft.fillRect (200, 35, 12, 12, PUTIH); tft.drawTriangle (210, 30, 210, 50, 220, 40, HITAM); tft.drawRect (200, 35, 12, 12, HITAM); tft.drawCircle (210, 40, 14, HITAM); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, HITAM); tft.drawLine (300, 30, 270, 30, HITAM); nyatakan = 6; jika (redir == 1) {color = PUTIH; } jika (redir == 2) {color = HITAM; } jika (redir == 3) {color = OLIVE; } jika (redir == 4) {color = PURPLE; } jika (redir == 5) {color = MAGENTA; } jika (redir == 6) {color = NAVY; } jika (redir == 7) {color = LIGHTGREY; } jika (redir == 8) {color = CYAN; } jika (redir == 9) {color = MERAH; } jika (redir == 10) {color = KUNING; } jika (redir == 11) {color = BLUE; } jika (redir == 12) {color = HIJAU; }} jika (sentuh == 26) {ota = 1; tft.fillScreen (PUTIH); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, PUTIH); tft.fillRect (200, 35, 12, 12, PUTIH); tft.drawTriangle (210, 30, 210, 50, 220, 40, HITAM); tft.drawRect (200, 35, 12, 12, HITAM); tft.drawCircle (210, 40, 14, HITAM); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, HITAM); tft.drawLine (300, 30, 270, 30, HITAM); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("Input"); tft.setCursor (30, 150); tft.print ("Output"); tft.drawRect (25, 130, 90, 30, HITAM); tft.drawRect (25, 60, 90, 30, HITAM); jika (p.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("Paras air"); tft.setCursor (150, 170); tft.print ("Tahap gas"); tft.setCursor (150, 120); tft.print ("Jarak"); tft.setCursor (150, 70); tft.print ("Bunyi"); sentuhan = 1; nyatakan = 2; }}} semasa (bunyi == 1) {tft.fillScreen (PUTIH); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("Tahap bunyi ="); Serial.println (sensorVoltage); kelewatan (1000); jika (bunyi == 0) {rehat; }}}}

Langkah 3: Perpustakaan Diperlukan:

  • Adafruit_GFX.h
  • Adafruit_TFTLCD.h
  • Skrin Sentuh.h

Pautan Github untuk perkara yang sama:

github.com/adafruit/Adafruit-GFX-Library

github.com/adafruit/TFTLCD-Library

github.com/adafruit/Adafruit_TouchScreen

Langkah 4: Sambungan

Tepuk Semuanya Bersama
Tepuk Semuanya Bersama

Anda memerlukan 6 wayar pelompat. 3 lelaki dan 3 perempuan. menyoldernya terus ke papan Arduino seperti ini:

Langkah 5: Tepuk Semuanya Bersama

Pasang wayar ke arduino (rujuk gambar), Gunakan beberapa gam jika perlu…

Kemudian Pasang pelindung TFT kemudian uji Sensor anda.

Terima kasih kerana menatal ke bawah. Pastikan anda memilih saya sekiranya anda merasakan projek ini unik dan bermanfaat

Selamat membuat dan berhati-hati dengan penipu elektronik?

Langkah 6: Penambahbaikan Lanjut:

  • Lebih banyak keserasian sensor
  • Kod motor servo mesti selesai
  • Aplikasi lain yang dapat berinteraksi dengan modul Bluetooth sehingga kita dapat mengawal robot berkuasa Bluetooth dengannya.
  • Pembetulan pepijat

Disyorkan: