Daftar Isi:

Robot Yang Memberitahu Apakah Penjual Elektronik Menipu Anda atau Tidak: 6 Langkah
Robot Yang Memberitahu Apakah Penjual Elektronik Menipu Anda atau Tidak: 6 Langkah

Video: Robot Yang Memberitahu Apakah Penjual Elektronik Menipu Anda atau Tidak: 6 Langkah

Video: Robot Yang Memberitahu Apakah Penjual Elektronik Menipu Anda atau Tidak: 6 Langkah
Video: Modus Pembajakan Kode OTP 2024, November
Anonim
Robot Yang Memberitahu Apakah Penjual Elektronik Menipu Anda atau Tidak
Robot Yang Memberitahu Apakah Penjual Elektronik Menipu Anda atau Tidak

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

Jadi, saya memutuskan untuk membuat robot yang dapat menguji sekitar 12 sensor dan 2 motor (masih bekerja pada servo) dan dapat menentukan apakah produk tersebut rusak.

Mari kita langsung ke dalamnya!

Perlengkapan

1. Arduino UNO

2. Layar sentuh TFT 2,4"

3. beberapa kabel jumper

4. sensor dan motor sehingga Anda dapat mengujinya (di sini saya menggunakan - Sensor gerak, sensor gas MQ6, Sensor suara, potensiometer, dan sensor ketinggian air)

Langkah 1: Cara Kerjanya…

Image
Image

Saya telah memprogram Arduino untuk membuat dan UI interaktif dengan tampilan TFT. Seperti yang kita ketahui, layar TFT hanya memiliki satu pin kosong yaitu pin A5. (jika Anda menggunakan UNO). Jadi setiap sensor yang menggunakan pin Analog untuk membaca data kompatibel dengan pengaturan ini…

Di UI, Anda dapat mengubah warna latar belakang desktop, dan Anda dapat membuka aplikasi yang dikembangkan untuk Arduino oleh saya untuk menguji sensor.

Saat membuka aplikasi, Anda dapat melihat 2 opsi, INPUT dan OUTPUT. jadi jika Anda mengklik Input, Ini menunjukkan 4 sensor (Ini kompatibel dengan 12, tetapi saya belum memprogramnya karena saya akan menghadapi ujian …. tidak ada waktu:(. Siapa pun bebas mengedit kode …)

Dan itu juga dapat memeriksa apakah motor servo berfungsi jika Anda menghubungkannya di slot.

lihat:

Langkah 2: Mengunggah Kode

Kodenya adalah program 600 baris yang saya kodekan dengan cermat dalam waktu sekitar 50 jam. Itu memang memiliki beberapa bug jadi tolong ubah dan kirimkan ke saya di email saya ([email protected]).

Unggah kode dan sambungkan pelindung TFT ke Arduino. Saya sarankan Anda untuk bermain-main dengan UI sehingga Anda lebih memahaminya.

Kode:

#termasuk

#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 # 0define 0xFAN #define MAGENTA 0xF81F #define KUNING 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define UNGU 0x780F #define OLIVE 0x7BE0 #define Selection #define YP A1 #define XM A2 #define MINX 160 #define TS_MAXX 160 #define TS_MAXY 970 Layar Sentuh ts = Layar Sentuh(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; status karakter = 6; int sentuh = 0; int warna = HITAM; int redir = 0; int ota; void setup() { Serial.begin(9600); tft.reset(); tft.setFont(&GratisMonoBoldOblique12pt7b); tft.begin(0x9325); tft.setRotation(45); tft.setTextSize(0.5); tft.fillScreen(PUTIH); tft.setCursor(60, 160); tft.setTextColor(HITAM); tft.print("Geser untuk masuk"); } void loop() { float sensorVoltage; nilai sensor mengambang; 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) { sentuh = 26; } } if (sentuh == 1 && status == 6) { tft.setRotation(0); tft.fillScreen(warna); suara = 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, UNGU); 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, MERAH); tft.setRotation(45); tft.setCursor(200, 20); tft.print("Setelan"); 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); negara = 7; sentuh = 0; ota = 0; } if (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("personalisasi"); tft.setCursor(20, 170); tft.print("keluar"); tft.setCursor(20, 140); tft.print("periferal"); tft.setCursor(20, 110); tft.print("Tentang"); sentuh = 1; negara = 2; } if (sentuh == 10 && status == 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); keadaan = 6; } if (sentuh == 11 && status == 2){ tft.fillScreen(PUTIH); tft.setCursor(60, 40); tft.print("Pilih salah satu"); 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, UNGU); 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); keadaan = 6; if (redir == 1){ warna = PUTIH; } if (redir == 2){ warna = HITAM; } if (redir == 3){ warna = OLIVE; } if (redir == 4){ warna = UNGU; } if (redir == 5){ warna = MAGENTA; } if (redir == 6){ warna = NAVY; } if (redir == 7){ warna = LIGHTGREY; } if (redir == 8){ warna = CYAN; } if (redir == 9){ warna = MERAH; } if (redir == 10){ warna = KUNING; } if (redir == 11){ warna = BIRU; } if (redir == 12){ warna = HIJAU; } } if (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("Masukan"); tft.setCursor(30, 150); tft.print("Keluaran"); tft.drawRect(25, 130, 90, 30, HITAM); tft.drawRect(25, 60, 90, 30, HITAM); if (p.x > 190 && p.x 30 && p.y < 90){ tft.setCursor(150, 220); tft.print("Ketinggian air"); tft.setCursor(150, 170); tft.print("Tingkat Gas"); tft.setCursor(150, 120); tft.print("Jarak"); tft.setCursor(150, 70); tft.print("Suara"); sentuh = 1; negara = 2; } } } while (suara == 1){ tft.fillScreen(PUTIH); sensorValue = analogRead(A5); sensorVoltage = sensorValue; tft.setCursor(60, 160); tft.print(sensorVoltage); Serial.println("Tingkat suara = "); Serial.println(sensorVoltage); penundaan (1000); if (suara == 0){ istirahat; } } } }

Langkah 3: Perpustakaan Diperlukan:

  • Adafruit_GFX.h
  • Adafruit_TFTLCD.h
  • Layar Sentuh.h

Tautan Github untuk hal yang sama:

github.com/adafruit/Adafruit-GFX-Library

github.com/adafruit/TFTLCD-Library

github.com/adafruit/Adafruit_TouchScreen

Langkah 4: Koneksi

Tampar Semuanya Bersama-sama
Tampar Semuanya Bersama-sama

Anda membutuhkan 6 kabel jumper. 3 laki-laki dan 3 perempuan. solder mereka langsung ke papan Arduino seperti ini:

Langkah 5: Tampar Semuanya Bersama

Selipkan kabel ke arduino (lihat gambar), Gunakan lem jika diperlukan…

Kemudian Pasang pelindung TFT lalu uji Sensor Anda.

Terima kasih telah menggulir ke bawah. Pastikan untuk memilih saya jika Anda merasa proyek ini unik dan bermanfaat

Senang membuat dan waspadalah terhadap scammers Elektronik?

Langkah 6: Perbaikan Lebih Lanjut:

  • Lebih banyak kompatibilitas sensor
  • Kode motor servo harus diselesaikan
  • Aplikasi lain yang dapat berinteraksi dengan modul Bluetooth sehingga kami dapat mengontrol robot bertenaga Bluetooth dengannya.
  • Perbaikan kerusakan

Direkomendasikan: