Ρομπότ 4WD

Ρομπότ 4WD

Ρομπότ 4WD v1.5 · Καλωδίωση

ESP32-CAM · L298N · 4 μοτέρ TT · HW-468 (5V 5A) · DFPlayer Pro · ενισχυτής DFR0119 · ηχείο 4Ω · 3×18650 · 4 WAGO. Πάτα πάνω σε ένα καλώδιο ή σε μια γραμμή του πίνακα για να φωτιστεί από άκρη σε άκρη.

Διάγραμμα καλωδίωσης

⚠ Η ESP32-CAM σχεδιάζεται ΑΠΟ ΠΙΣΩ Κράτα την πλακέτα έτσι ώστε να βλέπεις τα γράμματα των pin (όχι την κάμερα), με την κεραία προς τα πάνω. Τότε η σειρά με τα 5V · GND · IO12…IO4 είναι δεξιά, όπως στο σχέδιο. Το 5V είναι το pin στην άκρη μακριά από την κεραία, δίπλα στο τσιπάκι AMS1117. Αν δεις την κάμερα, η σειρά αυτή είναι αριστερά. Ένα καλώδιο 5V στο 3V3 καταστρέφει την πλακέτα.
Τσίμπημα / ροδέλα: zoom · σύρσιμο: μετακίνηση · πάτημα: φώτισε καλώδιο · πληκτρολόγιο: βέλη, + / −, Home
L298NL298Nψύκτρα δεξιά⚠ έλεγξε τα γράμματαπάνω στην πλακέτα78M05J5V-ENjumpers ENA·ENB·5V-EN: ON12VGND5VασύνδετοENAJIN1IN2IN3IN4ENBJOUT1OUT2OUT3OUT4κανάλι A · αριστερά μοτέρκανάλι B · δεξιά μοτέρ−+Αριστερό μπροστά−+Αριστερό πίσω−+Δεξί μπροστά−+Δεξί πίσωκεραία⚠ ΟΨΗ ΑΠΟ ΠΙΣΩγύρνα την πλακέτα: να βλέπειςτα γράμματα των pin (όχι την κάμερα)ESP32-CAM← ΟΧΙ 5VAMS1117↓ άκρη μακριά από την κεραία ↓IO4IO2IO14IO15IO13IO12GND5VGNDU0TU0RVCCGNDIO0IO163V3Μπροστινή όψη(κάμερα προς εσένα)5VκάτωΑΡΙΣΤΕΡΑ(στο σχέδιοκάτω δεξιά)γύρισέ την⇆ = σχέδιοUSB-CDF1201SDFPlayer ProDFR0768DACLDACRTXRXGNDVINKEYPLAYR−R+L−L+αριστερή σειρά: ασύνδετη⚠ έλεγξε τα γράμματαπάνω στην πλακέταPAM8403SHDN: χωρίς καλώδιοΕνισχυτήςDFR0119LINGNDRINVCCGNDSHDNL+L−R−R+⚠ έλεγξε τα γράμματαπάνω στην πλακέτα+−Ηχείο 4Ω 5W18650 · 3.7V18650 · 3.7V18650 · 3.7VΘήκη 3×18650 · 11.1V (9.0–12.6V)+−5AΑσφάλεια 5Aπροαιρετικό, συνιστάταιIOINOUTΔιακόπτης123WAGO A+11.1V123WAGO BGND μπαταρίαςHW-468DC-DC 9–35V → 5V 5AIN+GNDOUT+GND = κοινό IN− / OUT−⚠ έλεγξε τα γράμματαπάνω στην πλακέτα12345WAGO 5V221-41512345WAGO GND221-415Ένθετο · ESP32-CAM-MB (μόνο στο γραφείο)CAMΜόνο για προγραμματισμό μέσω USB.Βγάλε την ESP32-CAM από τα καλώδιατου ρομπότ και κούμπωσέ τη εδώ.ΠΟΤΕ USB και μπαταρία ρομπότ μαζί.Επόμενες αναβαθμίσεις: μέσω Wi-Fi (OTA).−+C1 470–1000µFλωρίδα (−) → GNDR1 10kΩ: προαιρετικό1223242728329301718192061013252614313292215121648711215
+11.1V μπαταρίας (0.5mm²) GND +5V μοτέρ ήχος σήματα (Dupont) προαιρετικό, συνιστάται
Τα μήκη στο σχέδιο δεν είναι πραγματικά Κόψε κάθε καλώδιο όσο πιο κοντό γίνεται. Ειδικά τα #11 / #12 (5V/GND της ESP32-CAM): 0.5mm² με θηλυκό ακροδέκτη Dupont (crimp ή κόλληση), κάτω από 15 cm. Λεπτά και μακριά καλώδια εδώ = επανεκκινήσεις.
Πώς διαβάζεται Η ESP32-CAM φαίνεται από πίσω (εκεί είναι τυπωμένα τα ονόματα των pin)· η κάμερα κοιτάει μακριά σου. Ο L298N είναι στραμμένος με την ψύκτρα δεξιά. Στις βίδες OUT1–OUT4 μπαίνουν δύο καλώδια (δύο μοτέρ παράλληλα).
Πριν ανάψεις τον διακόπτη
  1. Με πολύμετρο: κανένα βραχυκύκλωμα μεταξύ WAGO A και WAGO B.
  2. Βγάλε την ESP32-CAM από τα Dupont, άναψε: στο Dupont του καλωδίου #11 μέτρα 5.0–5.2V ως προς το #12. Σβήσε.
  3. Βάλε την ESP32-CAM: το #11 πρέπει να είναι στο pin που γράφει 5V και το #12 στο GND ακριβώς δίπλα. ΠΟΤΕ στο 3V3 (απέναντι σειρά).
  4. Ο πυκνωτής C1 έχει τη λωρίδα (−) προς το GND.
  5. Πρώτη φορά: ρόδες στον αέρα.

Harness ακροδεκτών

Κάθε εξάρτημα και κάθε WAGO σαν «συνδετήρας» με τη λίστα των ακροδεκτών του. Οι γκρι ακροδέκτες μένουν ασύνδετοι. Οι αριθμοί είναι ίδιοι με τον πίνακα και το διάγραμμα.

L298N διπλή γέφυρα H 12V GND 5V ENA IN1 IN2 IN3 IN4 ENB OUT1 OUT2 OUT3 OUT4 Μοτέρ αριστερό μπροστά + − 25 26 Μοτέρ αριστερό πίσω + − 27 28 Μοτέρ δεξί μπροστά + − 29 30 Μοτέρ δεξί πίσω + − 31 32 ESP32-CAM AI-Thinker · όψη από ΠΙΣΩ 5V GND IO12 IO13 IO15 IO14 IO2 IO4 3V3 IO16 IO0 GND VCC U0R U0T GND 17 18 19 20 DFPlayer Pro DFR0768 VIN GND RX TX DACR DACL L+ L− R+ R− PLAY KEY 21 C1 · 470–1000µF/16V + μακρύ πόδι − λωρίδα 33 34 R1 · 10kΩ προαιρετικό, συνιστάται πόδι 1 πόδι 2 35 36 Ενισχυτής DFR0119 LIN GND RIN VCC GND SHDN L+ L− R− R+ 22 Ηχείο 4Ω 5W + − 23 24 Θήκη 3×18650 3 σε σειρά · 11.1V + − Ασφάλεια 5A προαιρετικό, συνιστάται προς μπαταρία προς διακόπτη 1 WAGO B 221-413 · GND μπατ. 1 2 3 6 Διακόπτης ON/OFF IN OUT 2 WAGO A 221-413 · +11.1V 1 2 3 3 4 HW-468 9–35V → 5V 5A IN+ GND OUT+ 5 7 WAGO GND 221-415 · GND 1 2 3 4 5 8 WAGO 5V 221-415 · +5V 1 2 3 4 5 10 9 11 13 15 12 14 16

Πίνακας 36 συνδέσεων

Πάτα μια γραμμή για να τη δεις στο διάγραμμα. «0.5mm²» = χοντρό κόκκινο/μαύρο καλώδιο ισχύος. «Dupont» = καλώδιο με θηλυκό ακροδέκτη· όπου καταλήγει σε WAGO, κόψε τον ακροδέκτη και γδάρε 11 mm.

#ΧρώμαΑπόΠροςΚαλώδιοΣημείωση
1κόκκινοΘήκη 3×18650 +Ασφάλεια 5A (προς μπαταρία)0.5mm² (22AWG)χωρίς ασφάλεια: κατευθείαν στο IN του διακόπτη
2κόκκινοΑσφάλεια 5A (προς διακόπτη)Διακόπτης ON/OFF IN0.5mm² (22AWG)
3κόκκινοΔιακόπτης ON/OFF OUTWAGO A · θέση 10.5mm² (22AWG)
4κόκκινοWAGO A · θέση 2L298N 12V0.5mm² (22AWG)
5κόκκινοWAGO A · θέση 3HW-468 IN+0.5mm² (22AWG)
6μαύροΘήκη 3×18650 −WAGO B · θέση 10.5mm² (22AWG)
7μαύροWAGO B · θέση 3L298N GND0.5mm² (22AWG)
8μαύροWAGO B · θέση 2WAGO GND · θέση 40.5mm² (22AWG)γέφυρα GND μπαταρίας → GND λογικής
9μαύροHW-468 GNDWAGO GND · θέση 10.5mm² (22AWG)
10πορτοκαλίHW-468 OUT+WAGO 5V · θέση 10.5mm² (22AWG)
11πορτοκαλίWAGO 5V · θέση 5ESP32-CAM 5V0.5mm² με θηλυκό Dupont (crimp), όσο πιο κοντό⚠ 5V = το ΤΕΛΕΥΤΑΙΟ pin της σειράς με τα IO, στην άκρη ΜΑΚΡΙΑ από την κεραία (δίπλα στο AMS1117). ΠΟΤΕ στο 3V3 της απέναντι σειράς. Ο C1 κολλάει εδώ.
12μαύροWAGO GND · θέση 5ESP32-CAM GND0.5mm² με θηλυκό Dupont (crimp), όσο πιο κοντό⚠ GND = το pin ΑΚΡΙΒΩΣ δίπλα στο 5V (2ο από την άκρη, ίδια σειρά). Ο C1 (και η R1) κολλάνε εδώ.
13πορτοκαλίWAGO 5V · θέση 4DFPlayer Pro VINDupont
14μαύροWAGO GND · θέση 3DFPlayer Pro GNDDupont
15πορτοκαλίWAGO 5V · θέση 2Ενισχυτής VCCDupont
16μαύροWAGO GND · θέση 2Ενισχυτής GNDDupont
17μπλεESP32-CAM IO14L298N IN1Dupont
18γαλάζιοESP32-CAM IO15L298N IN2Dupont
19κίτρινοESP32-CAM IO13L298N IN3Dupont
20λευκόESP32-CAM IO12L298N IN4Dupont
21πράσινοESP32-CAM IO2DFPlayer Pro RXDupontαν αποτυγχάνει το upload, βγάλ' το προσωρινά
22μωβDFPlayer Pro DACLΕνισχυτής LINDupontμόνο αριστερό κανάλι
23μωβΕνισχυτής L+Ηχείο +Dupont
24μωβΕνισχυτής L−Ηχείο −Dupontποτέ στο GND
25καφέL298N OUT1Μοτέρ αριστερό μπροστά +0.5mm² / καλώδιο μοτέρ
26καφέL298N OUT2Μοτέρ αριστερό μπροστά −0.5mm² / καλώδιο μοτέρ
27καφέL298N OUT1Μοτέρ αριστερό πίσω +0.5mm² / καλώδιο μοτέρίδια βίδα με το #25 (παράλληλα)
28καφέL298N OUT2Μοτέρ αριστερό πίσω −0.5mm² / καλώδιο μοτέρίδια βίδα με το #26 (παράλληλα)
29καφέL298N OUT3Μοτέρ δεξί μπροστά +0.5mm² / καλώδιο μοτέρ
30καφέL298N OUT4Μοτέρ δεξί μπροστά −0.5mm² / καλώδιο μοτέρ
31καφέL298N OUT3Μοτέρ δεξί πίσω +0.5mm² / καλώδιο μοτέρίδια βίδα με το #29 (παράλληλα)
32καφέL298N OUT4Μοτέρ δεξί πίσω −0.5mm² / καλώδιο μοτέρίδια βίδα με το #30 (παράλληλα)
33πόδιΠυκνωτής C1 470–1000µF/16V · πόδι + (μακρύ)ESP32-CAM 5V (κόλληση στο καλώδιο #11)κόλλησημακρύ πόδι (+) στο 5V
34πόδιΠυκνωτής C1 470–1000µF/16V · πόδι − (λωρίδα)ESP32-CAM GND (κόλληση στο καλώδιο #12)κόλλησηπλευρά με τη λωρίδα (−) στο GND
35πόδιΑντίσταση R1 10kΩ · πόδι 1ESP32-CAM IO12 (κόλληση στο καλώδιο #20)κόλλησηπροαιρετικό, συνιστάται προαιρετικό, συνιστάται
36πόδιΑντίσταση R1 10kΩ · πόδι 2ESP32-CAM GND (κόλληση στο καλώδιο #12)κόλλησηπροαιρετικό, συνιστάται προαιρετικό, συνιστάται

Σημειώσεις και προειδοποιήσεις

Ασφάλεια μπαταρίας

Ασφάλεια 5A και προστασία μπαταρίας (συνιστάται) Η θήκη 3×18650 δεν έχει καμία προστασία. Ένα βραχυκύκλωμα στο λεπτό καλώδιο μπορεί να το ζεστάνει μέχρι φωτιάς. Βάλε ασφάλεια 5A (ασφαλειοθήκη στο καλώδιο) αμέσως μετά το + της μπαταρίας, πριν τον διακόπτη. Χρησιμοποίησε μπαταρίες «protected» ή πλακέτα BMS 3S.
Τάση μπαταρίας 3×18650 σε σειρά = 9.0V (άδεια) έως 12.6V (γεμάτη), 11.1V ονομαστικά. Ο μετατροπέας HW-468 θέλει τουλάχιστον 9V, άρα 2×18650 δεν αρκούν. Φόρτιζε πριν πέσουν κάτω από ~3.2V ανά μπαταρία (~9.6V συνολικά).
Καλώδια και WAGO Κόκκινο/μαύρο 0.5mm² για μπαταρία, διακόπτη, L298N και μετατροπέα. Τα Dupont με θηλυκό ακροδέκτη δεν μπαίνουν σε WAGO: κόψε τον ακροδέκτη, γδάρε 11 mm και, επειδή το σύρμα του Dupont είναι πολύ λεπτό (κάτω από 0.14mm²), κασσιτέρωσέ το ή χρησιμοποίησε 0.5mm² για το κομμάτι προς τη WAGO.

Τροφοδοσία και γειώσεις

HW-468: μόνο 3 βίδες IN+ · GND · OUT+. Το GND είναι κοινό για είσοδο και έξοδο, γι' αυτό η μπαταρία φτάνει στο GND του μετατροπέα μέσω WAGO B → WAGO GND (καλώδια #8 και #9). Η σειρά των βιδών μπορεί να διαφέρει: έλεγξε τα γράμματα πάνω στην πλακέτα.
Κοινή γείωση Όλα τα GND είναι ενωμένα: μπαταρία, L298N, μετατροπέας, ESP32-CAM, DFPlayer, ενισχυτής. Το ρεύμα των μοτέρ επιστρέφει κατευθείαν στη μπαταρία μέσω WAGO B και δεν περνά από τη WAGO GND της λογικής.
Πυκνωτής 470–1000µF / 16V Κόλλησέ τον δίπλα στα pin 5V και GND της ESP32-CAM (πάνω στα καλώδια #11 και #12). Μακρύ πόδι (+) στο 5V, πλευρά με τη λωρίδα (−) στο GND. Ανάποδα μπορεί να σκάσει. Μην τον βάλεις ποτέ στα 11.1V (16V είναι οριακό). Προστατεύει από επανεκκινήσεις (brown-out) όταν εκπέμπει το Wi-Fi ή ανάβει το φλας.

ESP32-CAM

Προγραμματισμός με τη βάση ESP32-CAM-MB Η βάση MB χρησιμοποιείται μόνο στο γραφείο. Βγάλε την ESP32-CAM από τα καλώδια του ρομπότ, κούμπωσέ τη στη MB και σύνδεσε USB. Ποτέ USB και μπαταρία ρομπότ ταυτόχρονα: τα 5V θα «σπρώχνει» το ένα στο άλλο. Μετά το πρώτο upload, οι επόμενες αναβαθμίσεις γίνονται μέσω Wi-Fi (OTA) χωρίς να ξεβιδώσεις τίποτα.
Αν αποτυγχάνει το upload Μόνο αν προγραμματίζεις με την πλακέτα ακόμα στα καλώδια του ρομπότ (δεν συνιστάται): βγάλε προσωρινά το καλώδιο του IO2 (#21). Το IO2 πρέπει να είναι LOW ή ασύνδετο για να μπει σε λειτουργία φόρτωσης. Αν κολλά στο «Connecting…», κράτα πατημένο το IO0 της MB, πάτα RST στην ESP32-CAM, άφησε το IO0.
IO12 και αντίσταση 10kΩ (προαιρετικό, συνιστάται) Το IO12 ορίζει την τάση της μνήμης flash κατά την εκκίνηση: αν είναι HIGH τη στιγμή του reset, η πλακέτα δεν ξεκινά. Συνήθως μένει LOW, αλλά μια αντίσταση 10kΩ από IO12 σε GND (#35, #36) το εξασφαλίζει. Ποτέ pull-up στο IN4.
GND της ESP32-CAM Χρησιμοποίησε το GND δίπλα στο 5V. Σε κάποιους κλώνους το τελευταίο pin της άλλης σειράς γράφει «GND/R» και δεν είναι σίγουρη γείωση.
Φως = το φλας της πλακέτας Το λευκό LED είναι στο GPIO4, δεν χρειάζεται καλώδιο. Το GPIO4 είναι και γραμμή της κάρτας SD, γι' αυτό η κάρτα SD δεν χρησιμοποιείται.

Συμπτώματα

Reset / αποσύνδεση όταν ξεκινά να κινείται ή ανάβει το φως Πτώση τάσης (brown-out). Με τη σειρά: (1) φόρτισε τις μπαταρίες (κάτω από ~3.2V/κελί, ένα κόλλημα μοτέρ ρίχνει την τάση κάτω από τα 9V του μετατροπέα)· (2) έλεγξε ότι υπάρχει ο C1 με σωστή πολικότητα· (3) κόντυνε/χόντρυνε τα #11/#12.
Η εικόνα της κάμερας «παγώνει» Η σελίδα το καταλαβαίνει και ξανασυνδέεται μόνη της μέσα σε ~3 s. Η ροή εξυπηρετεί μία συσκευή τη φορά: κλείσε τη σελίδα σε άλλα κινητά/καρτέλες.

L298N και μοτέρ

Jumpers και 5V του L298N Τα jumpers ENA, ENB και 5V-EN μένουν στη θέση τους. Ο ακροδέκτης 5V του L298N μένει ασύνδετος (είναι έξοδος· μην τον ενώσεις με τα 5V του μετατροπέα). Η ταχύτητα ελέγχεται με PWM στα IN1–IN4 από το firmware. Η σειρά των ακροδεκτών μπορεί να διαφέρει: έλεγξε τα γράμματα πάνω στην πλακέτα.
Τα μοτέρ TT είναι για 3–6V Με γεμάτη μπαταρία ο L298N δίνει ~10V. Γι' αυτό το firmware περιορίζει το PWM στο ~65% (≈6–7V μέσος όρος) και ξεκινά από ~30%. Μην αλλάξεις το MAX_DUTY πάνω από 170 χωρίς λόγο: τα μοτέρ ζεσταίνονται και τα γρανάζια φθείρονται.
Δύο μοτέρ σε κάθε κανάλι Τα δύο αριστερά μπαίνουν παράλληλα στα OUT1/OUT2, τα δύο δεξιά στα OUT3/OUT4 (+ με +, − με −). Κάθε βίδα παίρνει δύο καλώδια: στρίψε τα μαζί πριν τα σφίξεις. Αν ένα μοτέρ γυρίζει ανάποδα από το άλλο της ίδιας πλευράς, άλλαξε τα δύο καλώδια μόνο αυτού του μοτέρ. Αν μια ολόκληρη πλευρά πηγαίνει ανάποδα, άλλαξε INVERT_LEFT/INVERT_RIGHT στο robot_config.h.
Ρεύμα και θερμοκρασία Δύο TT μοτέρ μαζί μπορούν να τραβήξουν πάνω από 2A αν κολλήσουν. Το firmware ανεβάζει την ταχύτητα σταδιακά. Άφησε χώρο γύρω από την ψύκτρα του L298N· αν ζεσταθεί πολύ, κλείνει μόνος του για λίγο.
Τίναγμα στην εκκίνηση Κάποια pin της ESP32-CAM αναβοσβήνουν για λίγο όταν ανοίγει. Το firmware τα κάνει LOW αμέσως, αλλά τα μοτέρ ίσως κουνηθούν για κλάσμα δευτερολέπτου. Είναι φυσιολογικό.

Ήχος

DFPlayer Pro (DFR0768) Συνδέονται μόνο VIN, GND, RX και DACL. Τα L+/L−/R+/R−, PLAY, KEY, DACR και το TX μένουν ασύνδετα. Το GND είναι υποχρεωτικό. Η σειρά των pin προέρχεται από την αρίθμηση της DFRobot: έλεγξε τα γράμματα πάνω στην πλακέτα.
Μόνο το αριστερό κανάλι ακούγεται Συνδέεται μόνο το DACL → LIN (το DACR → RIN καταργήθηκε, αφού υπάρχει ένα ηχείο). Φτιάξε τα MP3 mono ή με τα δύο κανάλια αναμεμιγμένα, αλλιώς ό,τι υπάρχει μόνο στο δεξί κανάλι δεν θα ακουστεί.
Ενισχυτής DFR0119 Τα δύο GND είναι ενωμένα μέσα στην πλακέτα, αρκεί το ένα. Το SHDN δεν χρειάζεται καλώδιο: έχει εσωτερικό pull-up και ο ενισχυτής είναι αναμμένος (LOW = σβηστός). Τα RIN, R+, R− μένουν ασύνδετα. Τροφοδοσία μέχρι 5.5V. Η σειρά των pin: έλεγξε τα γράμματα πάνω στην πλακέτα.
Ηχείο Στο ηχείο πάνε μόνο τα L+ και L− του ενισχυτή. Ποτέ το L− στο GND και ποτέ ένωση L− με R−. Κράτα την ένταση γύρω στο 15–25 (από 30) για να μην παραμορφώνει.

Firmware: ανέβασμα και πρώτη χρήση

1. Arduino IDE

  1. Arduino IDE 2.x → File → Preferences → Additional boards manager URLs:
    https://espressif.github.io/arduino-esp32/package_esp32_index.json
  2. Tools → Board → Boards Manager → «esp32» της Espressif, έκδοση 3.x (δοκιμάστηκε η 3.3.6).
  3. Άνοιξε τον φάκελο robot_firmware (το robot_firmware.ino μαζί με τα .h).
  4. Στο robot_config.h άλλαξε τουλάχιστον τον κωδικό AP_PASSWORD (8+ χαρακτήρες) και το OTA_PASSWORD.
  5. Ρυθμίσεις Tools:
    • Board: AI Thinker ESP32-CAM (το PSRAM ενεργοποιείται αυτόματα με αυτή την πλακέτα· αν διαλέξεις «ESP32 Dev Module», βάλε PSRAM: Enabled)
    • Partition Scheme: Minimal SPIFFS (1.9MB APP with OTA/128KB SPIFFS). Για να δουλέψει το OTA πρέπει να το διαλέξεις ΑΠΟ ΤΟ ΠΡΩΤΟ upload· η προεπιλογή «Huge APP» δεν έχει χώρο OTA (το firmware τότε γράφει προειδοποίηση στο Serial και απλώς δεν ενεργοποιεί το OTA).
    • Upload Speed: αν το upload σταματά στη μέση, βάλε 115200.
    • Port: η θύρα της βάσης MB (CH340).

2. Ανέβασμα με τη βάση ESP32-CAM-MB

  1. Σβήσε το ρομπότ. Βγάλε την ESP32-CAM από τα Dupont του ρομπότ και κούμπωσέ τη στη MB με την κάμερα προς τα πάνω, ταιριάζοντας τα γράμματα: το 5V/GND της ESP32-CAM πάνω στο 5V/GND της MB (στις περισσότερες MB, η άκρη με το microSD/5V είναι προς το USB). Οι δύο σειρές έχουν από 8 pin, άρα μπαίνει και ανάποδα: έλεγξε δύο φορές.
  2. Σύνδεσε USB στον υπολογιστή. Αν δεν εμφανίζεται θύρα, εγκατάστησε τον οδηγό CH340.
  3. Πάτα Upload. Αν κολλήσει στο «Connecting…», κράτα πατημένο το IO0 της MB, πάτα RST στην ESP32-CAM, άφησε το IO0.
  4. Άνοιξε τον Serial Monitor στα 115200 και πάτα RST (αν δεν δείχνει τίποτα, ξαναπάτα RST στην ESP32-CAM): θα δεις «Access Point "Robot-4WD"» και τη διεύθυνση http://192.168.4.1.
  5. Βγάλε το USB, βγάλε την ESP32-CAM από τη MB και ξαναβάλ' τη στα καλώδια του ρομπότ (5V/GND/IO στις σωστές θέσεις, δες τον πίνακα).
Ποτέ USB και μπαταρία μαζί Η MB δίνει 5V κατευθείαν στην πλακέτα. Αν το ρομπότ είναι αναμμένο, τα δύο τροφοδοτικά συγκρούονται.

3. Επόμενες αναβαθμίσεις χωρίς MB (OTA)

Με το κινητό ή το laptop συνδεδεμένο στο Wi-Fi «Robot-4WD», στο Arduino IDE εμφανίζεται θύρα δικτύου robot4wd. Διάλεξέ τη και πάτα Upload (ζητά τον OTA_PASSWORD). Τα μοτέρ σταματούν αυτόματα κατά την αναβάθμιση.

4. Πρώτη εκκίνηση και σύνδεση κινητού

  1. Σήκωσε το ρομπότ ώστε οι ρόδες να μην ακουμπούν. Άναψε τον διακόπτη.
  2. Στο κινητό: Ρυθμίσεις → Wi-Fi → Robot-4WD, κωδικός από το AP_PASSWORD. Αν το κινητό πει «χωρίς Internet», επίλεξε «παραμονή συνδεδεμένο».
  3. Άνοιξε τον browser στο http://192.168.4.1. Πάνω βλέπεις την κάμερα, από κάτω joystick, φως και ήχο. Η τελεία δίπλα στον τίτλο γίνεται πράσινη όταν υπάρχει σύνδεση.
  4. Σπρώξε λίγο το joystick μπροστά: πρέπει να γυρίσουν και οι 4 ρόδες προς τα εμπρός. Αν μια πλευρά γυρίζει ανάποδα, άλλαξε INVERT_LEFT/INVERT_RIGHT. Αν το δεξί/αριστερό είναι μπερδεμένα, αντάλλαξε τα ζεύγη OUT1/2 ↔ OUT3/4.
  5. Αν χαθεί η σύνδεση για μισό δευτερόλεπτο, τα μοτέρ σταματούν μόνα τους.

Προαιρετικά, για σύνδεση στο Wi-Fi του σπιτιού, συμπλήρωσε STA_SSID/STA_PASSWORD: η IP φαίνεται στον Serial Monitor. Αν αποτύχει μέσα σε 10 s, γυρίζει σε Access Point.

5. Τραγούδια στο DFPlayer Pro

  1. Σύνδεσε το DFPlayer Pro με καλώδιο USB-C στον υπολογιστή (μπορεί να μείνει στη θέση του· καλό είναι το ρομπότ να είναι σβηστό). Εμφανίζεται σαν δίσκος USB 128MB.
  2. Αντέγραψε τα αρχεία στη ρίζα του δίσκου με ονόματα 01.mp3, 02.mp3, … (με αυτή τη σειρά, ένα-ένα). Κατά προτίμηση mono, 128 kbps.
  3. Το κουμπί «♪ 1» παίζει το 1ο αρχείο κ.ο.κ. Με TRACK_BY_FILENAME 0 (προεπιλογή) η αρίθμηση ακολουθεί τη σειρά αντιγραφής. Αν θες να παίζει ακριβώς με βάση το όνομα, βάλε TRACK_BY_FILENAME 1. Το TRACK_COUNT ορίζει πόσα κουμπιά εμφανίζονται.
  4. «Αφαίρεση με ασφάλεια» πριν βγάλεις το USB-C.
Αν παίζει μόνο του κάθε φορά που ανάβει (προαιρετικό) Κάποια DFPlayer ξεκινούν να παίζουν στο άναμμα. Τότε: (1) φτιάξε ένα αρχείο ~1 s σιωπής με όνομα silence.mp3· (2) αντέγραψέ το στη ρίζα του δίσκου ΤΕΛΕΥΤΑΙΟ, μετά από όλα τα τραγούδια (αλλιώς μετακινούνται τα νούμερα των κουμπιών)· (3) στο robot_config.h βάλε DFP_STOP_ON_BOOT 1 και ξανανέβασε. Το ρομπότ παίζει τη σιωπή στην εκκίνηση και η μονάδα σταματά.
Ένταση Το DFPlayer δεν απαντά πίσω (το TX του δεν είναι συνδεδεμένο), οπότε η ένταση που βλέπεις είναι αυτή που έστειλε τελευταία το ρομπότ. Ξεκινά στο DFP_DEFAULT_VOLUME (20). Σε κάθε άναμμα το ρομπότ ξαναστέλνει τις ρυθμίσεις (χωρίς φωνητικό μήνυμα εκκίνησης, ένα κομμάτι τη φορά).

Τι κάνει το firmware

  • Κάμερα MJPEG στη θύρα 81 (/stream), σελίδα ελέγχου στη θύρα 80, έλεγχος μέσω WebSocket /ws (~20 μηνύματα/δευτ.) με εφεδρικό HTTP /control.
  • PWM 1 kHz, 8-bit στα IN1–IN4 (κανάλια LEDC 2–5), όριο 65%, ελάχιστο 30%, ομαλή επιτάχυνση, failsafe 500 ms.
  • Φλας στο GPIO4 (κανάλι LEDC 6) με ρύθμιση φωτεινότητας.
  • DFPlayer Pro μέσω εντολών AT στο GPIO2, 115200 baud.

Το διάγραμμα, το harness και ο πίνακας παράγονται από το ίδιο μοντέλο δεδομένων (tools/model.py) και ελέγχονται αυτόματα από το tools/check.py.

Η παραπάνω δήλωση προέρχεται από την αρχική πηγή. Τα tools/model.py και tools/check.py δεν παραδόθηκαν και ο έλεγχός τους δεν έχει εκτελεστεί.

Λήψεις και εικόνες αναφοράς

Λήψη του παρεχόμενου firmware (.zip) — περιλαμβάνει το robot_firmware.ino και τα 6 αρχεία .h. Άλλαξε τα AP_PASSWORD και OTA_PASSWORD πριν από τη χρήση, όπως περιγράφεται στον οδηγό.

Τα MP3 που περιγράφονται στον οδηγό δημιουργούνται ή αντιγράφονται από εσένα και δεν περιλαμβάνονται στις λήψεις.

Διαφορές ανάμεσα στον οδηγό και στο παρεχόμενο firmware

Ο οδηγός και τα δύο διαγράμματα περιγράφουν εξωτερικό ενισχυτή DFR0119. Στο ZIP, τα σχόλια του robot_config.h και η εντολή AT+AMP=ON του robot_audio.h αναφέρονται στον ενσωματωμένο ενισχυτή του DFPlayer Pro και σε ηχείο απευθείας στα L+/L− του. Οι δύο πηγές διατηρούνται όπως παραδόθηκαν· επιβεβαίωσε με τον συντάκτη ποια διάταξη χρησιμοποιείς.

Ο οδηγός αναφέρει επιστροφή σε Access Point σε 10 s, ενώ το παρεχόμενο robot_config.h ορίζει STA_TIMEOUT_MS 20000 (20 s). Η ένδειξη καλωδίων 0.5mm² (22AWG) διατηρείται αυτούσια και χρειάζεται επιβεβαίωση από τον συντάκτη.

Παρεχόμενη εικόνα αναφοράς του διαγράμματος καλωδίωσης σε υπολογιστή
Εικόνα αναφοράς που παραδόθηκε μαζί με τον οδηγό. Πάτησε για πλήρες μέγεθος.
Παρεχόμενη εικόνα της οθόνης ελέγχου firmware σε κινητό, με κάμερα και χειριστήρια
Οθόνη ελέγχου του firmware σε κινητό.