Isi kandungan:
- Bekalan
- Langkah 1: Bagaimana Ia Berfungsi…
- Langkah 2: Memuat naik Kod
- Langkah 3: Perpustakaan Diperlukan:
- Langkah 4: Sambungan
- Langkah 5: Tepuk Semuanya Bersama
- Langkah 6: Penambahbaikan Lanjut:
Video: Robot Yang Memberitahu Jika Vendor Elektronik Menipu Anda atau Tidak: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
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…
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
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:
Automasi Rumah yang Dikendalikan Suara (seperti Alexa atau Google Home, tidak memerlukan Wifi atau Ethernet): 4 Langkah
Automasi Rumah yang Dikendalikan Suara (seperti Alexa atau Google Home, tidak memerlukan Wifi atau Ethernet): Pada dasarnya ini adalah relai terkawal arduino berasaskan SMS dengan persediaan pembantu google untuk menghantar mesej atas arahan suara. Ia sangat mudah dan murah dan berfungsi seperti iklan Alexa dengan anda perkakas elektrik yang ada (jika anda mempunyai Moto -X smartp
Robot Bola Sepak (atau Bola Sepak, Jika Anda Hidup di Sebelah Kolam): 9 Langkah (dengan Gambar)
Robot Bola Sepak (atau Bola Sepak, Sekiranya Anda Hidup di Sebelah Kolam): Saya mengajar robotik di tinker-robot-labs.tk Murid saya telah mencipta robot ini yang bermain bola sepak (atau bola sepak, jika anda tinggal di seberang kolam). Tujuan saya dengan projek ini adalah untuk mengajar anak-anak bagaimana berinteraksi dengan robot melalui Bluetooth. Kami
Bola Kristal Mystic (Secara harfiah memberitahu anda kekayaan anda!): 3 Langkah (dengan Gambar)
Mystic Crystal Ball (Secara harfiah memberitahu anda kekayaan anda!): Pelajari cara membuat bola kristal yang dapat mendedahkan masa depan anda apabila disentuh! Projek ini terdiri daripada tiga bahagian asas dan dapat dibina dalam masa sekitar empat jam. Bahan: 1. Sensor Sentuh Kapasitif: 1 - Arduino Uno Microcontroller 1
Cara Mendapatkan Muzik Dari Laman Web HANYA (Haha) (Selagi Anda Boleh Mendengarnya, Anda Boleh Mendapatkannya Ok Baiklah Jika Ia Dimasukkan dalam Kilat Anda Mungkin Tidak Mampu) DIEDIT !!!!! Maklumat Tambahan: 4 Langkah
Cara Mendapatkan Muzik Dari Laman Web HANYA (Haha) (Selagi Anda Boleh Mendengarnya, Anda Boleh Mendapatkannya … Ok Baiklah Jika Ia Dimasukkan dalam Kilat Anda Mungkin Tidak Mampu) DIEDIT !!!!! Maklumat Tambahan: jika anda pernah pergi ke laman web dan memainkan lagu yang anda suka dan mahukannya, inilah petunjuk untuk tidak salah saya sekiranya anda mengacaukan sesuatu (satu-satunya cara ia akan berlaku adalah jika anda mula menghapus barang tanpa sebab ) Saya dapat mendapatkan muzik untuk
Cara Mendapatkan Sentuhan Ipod Anda (atau Iphone Jika Anda Benar-benar Mengacaukannya) untuk Berhenti Menghancurkan Dari Kekurangan Ingatan: 3 Langkah
Cara Mendapatkan Sentuhan Ipod Anda (atau Iphone Jika Anda Benar-benar Mengacaukannya) untuk Berhenti Menghancurkan Dari Kekurangan Memori: Hai, Ada, sentuhan ipod dan pengguna iphone. Baiklah, jadi saya pasti anda semua mempunyai pemahaman asas mengenai bagaimana ipod epal berfungsi, bukan? Anda membuka aplikasi. Aplikasi itu akan digunakan di mana sahaja antara mungkin pada sentuhan ipod 1G, 5-30MB yang tersedia