Πίνακας περιεχομένων:

Αυτοκίνητο Bluetooth RC με STM32F103C και L293D - Φθηνό: 5 βήματα
Αυτοκίνητο Bluetooth RC με STM32F103C και L293D - Φθηνό: 5 βήματα

Βίντεο: Αυτοκίνητο Bluetooth RC με STM32F103C και L293D - Φθηνό: 5 βήματα

Βίντεο: Αυτοκίνητο Bluetooth RC με STM32F103C και L293D - Φθηνό: 5 βήματα
Βίντεο: STM32F103C8T6 BLUETOOTH CONTROLLED CAR 2024, Ιούνιος
Anonim
Image
Image
Καταστρέψτε τον μπαταριοφάγο!
Καταστρέψτε τον μπαταριοφάγο!

Έφτιαξα ένα Bluetooth Arduino Car όπως αυτό που απεικονίζεται εδώ, από το Ardumotive_com. Το πρόβλημα που είχα ήταν οι μπαταρίες και το βάρος τους καθώς και τα έξοδά τους. Από τότε, οι φτηνές τράπεζες ισχύος για κινητά τηλέφωνα έχουν γίνει πολύ προσιτές. Το μόνο που έπρεπε να κάνω ήταν να μειώσω το βάρος. Επειδή είμαι φθηνός, άλλαξα στον μικροελεγκτή STM32F103C. Ο μικροελεγκτής STM32F103C μπορεί να αγοραστεί για λιγότερο από $ 2 και είναι πολύ μικρότερος από ένα Arduino. Άλλαξα λίγο την κωδικοποίηση για να δουλέψω και με το STM32F103C.

Προμήθειες

  • Ένα φτηνό αυτοκίνητο τηλεχειριστηρίου που τρώει μπαταρίες. Ναι, ακριβώς όπως αυτό που χρησιμοποιεί το Ardumotive_com. Θα απενεργοποιήσετε το σύστημα και θα χρησιμοποιήσετε εναλλακτικά μια τράπεζα τροφοδοσίας τηλεφώνου. Εάν έχετε τους πόρους για να φτιάξετε το δικό σας σασί, να το έχετε. Πήγα στο κατάστημα παιχνιδιών στο δρόμο και αγόρασα ένα φθηνό αυτοκίνητο για κάτω από $ 10. Το αυτοκίνητο τρώει μπαταρίες και το τηλεχειριστήριο τρώει μπαταρίες-ιδανικό για βελτίωση.
  • Μια τράπεζα τηλεφωνικής δύναμης- Είναι εξαιρετικά φθηνά, τώρα. Απομακρυνθείτε από τις τράπεζες ισχύος που έχουν κουμπί λειτουργίας στο πλάι. Δεν θα μπορείτε να ακολουθήσετε το αυτοκίνητό σας και να κρατήσετε πατημένο το κουμπί. Αυτό είναι χαζό.
  • Ένα τσιπ L293D-Αυτό είναι το διπλό H-Bridge που θα ελέγχει τους ηλεκτροκινητήρες.
  • Μια μονάδα Bluetooth HC-06
  • Ένας διακόπτης- χρησιμοποίησα έναν απλό διακόπτη ενεργοποίησης/απενεργοποίησης.
  • Κάποιο σύρμα -καλώδιο τηλεφώνου θα ήταν εντάξει, αλλά λίγο μεγαλύτερο εύκαμπτο 20 μανόμετρο θα ήταν καλύτερο.
  • Ένα Proto Board ή ένα κομμάτι πλαστικό ή χαρτόνι για να τοποθετήσετε το Blue Pill και το L293D. Είμαι φθηνός, έτσι βρήκα ένα λίγο διαφορετικό σύστημα με λεπτό κυματοειδές χαρτόνι- όπως από ένα κουτί λαμπτήρων.
  • Δύο φθηνά καλώδια φόρτισης USB-Αυτά μπορούν να αγοραστούν από ένα δέντρο του δολαρίου. Μην χρησιμοποιείτε το ωραίο καλώδιο προγραμματισμού. Το ένα θα κοπεί για τον διακόπτη on/off και το άλλο θα φορτίσει την μπαταρία.

Προαιρετικός

  • 4 LED -εάν θέλετε προβολείς και πίσω φώτα.
  • 4 αντιστάσεις 220 Ohm- για τις λυχνίες LED σε σύστημα 3.3v.
  • Ένα πιεζό ή μικρό ηχείο για κέρατο.

Εργαλεία

  • Συγκολλητικό σίδερο και συγκολλητικό
  • Hot Glue Gun- Η κόρη μου είναι ένα Ninja Hot Glue Gun!
  • Απογυμνωτές καλωδίων και τσιμπήματα
  • ΣΗΜΕΙΩΣΗ: εάν χρησιμοποιείτε την τεχνική από χαρτόνι που χρησιμοποιώ και όχι έναν πίνακα πρωτοτύπων, θα χρειαστείτε ένα Dremel ή ένα μικρό τρυπάνι

Βήμα 1: Καταστρέψτε τον μπαταριοφάγο

Καταστρέψτε τον μπαταριοφάγο!
Καταστρέψτε τον μπαταριοφάγο!

It'sρθε η ώρα να διασκεδάσετε καταστρέφοντας τον μπαταριοφάγο! Ναι, ΤΟ ΘΕΜΑ ΑΥΤΟ! Νιώστε περήφανοι που κάνετε το ρόλο σας για να κάνετε τον κόσμο πιο πράσινο- εντάξει, αυτό είναι ένα τέντωμα, αλλά ούτως ή άλλως … Προχωρήστε στο πλαίσιο.

Πάνω, είναι η ίδια μονάδα που έφτιαξα την έκδοση Arduino. Η έκδοση Arduino χρησιμοποίησε σοβαρή ισχύ μπαταρίας που έκανε το αυτοκίνητο βαρύτερο. Έτσι, το πήρα πίσω στο καρέ. Είχα προσθέσει μερικά φτερά από ένα πλαστικό μπουκάλι και ζεστή κόλλα, και προσαρμόστηκα το σώμα. Περισσότερα για το σώμα αργότερα.

Μόλις έχετε το πλαίσιο με τους κινητήρες και το τιμόνι γυμνό, βρείτε ποια πλευρά των ακροδεκτών του κινητήρα είναι ποια. Χρησιμοποιήστε μια μπαταρία ή φορτιστή 5V για να δοκιμάσετε τον κινητήρα.

Στον κινητήρα του τιμονιού, όταν οι τροχοί στρίβουν δεξιά, σημειώστε το θετικό καλώδιο της μπαταρίας "3" και το αρνητικό καλώδιο, "6".

Στο μοτέρ οδήγησης, όταν οι τροχοί περιστρέφονται προς τα εμπρός, επισημάνετε το θετικό καλώδιο μπαταρίας "14" και το αρνητικό καλώδιο "11".

Βήμα 2: Ο κώδικας στο Arduino IDE

Ο Κώδικας στο Arduino IDE
Ο Κώδικας στο Arduino IDE
Ο Κώδικας στο Arduino IDE
Ο Κώδικας στο Arduino IDE

Mayσως είναι καλύτερο να πρωτοτοποθετήσετε τα ηλεκτρονικά του αυτοκινήτου σας πρώτα σε ένα breadboard.

Εντάξει, αυτό είναι ένα από τα δύσκολα μέρη. Το "Μπλε χάπι" δεν μπορεί να προγραμματιστεί μέσω της θύρας USB. Δεν έχω βρει ευκολότερη εξήγηση προγραμματισμού για το "Μπλε χάπι" από το βίντεο του Joop Brokking στο Youtube. Εξηγεί όλα όσα πρέπει να γνωρίζετε, συμπεριλαμβανομένης της βιβλιοθήκης STMduino του Roger Clarke. Υπάρχει ένας τρόπος εγκατάστασης ενός bootloader, ώστε να μπορείτε να χρησιμοποιήσετε το USB για να προγραμματίσετε το "Blue Pill", αλλά ούτως ή άλλως πρέπει να προγραμματίσετε τον bootloader μέσω του Serial Bus.

Δυστυχώς, το Serial Bus χρησιμοποιείται και από τον προσαρμογέα Bluetooth. Το πρόγραμμα πρέπει να εγκατασταθεί μέσω των ακίδων Serial Bus, PA9 και PA10, μέσω FTDI πρώτα και, στη συνέχεια, μπορείτε να ελέγξετε όλες τις ρυθμίσεις σας με τον προσαρμογέα Bluetooth.

Χρησιμοποιήστε ένα breadboard και σχεδιάστε τα πάντα στο breadboard, όπως ακριβώς το σκίτσο πάνω. Αποσυνδέστε τις σειριακές γραμμές TX και RX του προσαρμογέα Bluetooth στις ακίδες PA9 και PA10 του STM32F103C. Συνδέστε το FTDI και το πρόγραμμά σας. Βεβαιωθείτε ότι οι γραμμές Serial Bus διασταυρώνονται, RX σε Tx και Tx σε RX. Ο ένας λαμβάνει και ο άλλος δίνει.

Μόλις φορτωθεί το πρόγραμμα, μπορείτε να ανοίξετε τη σειριακή κονσόλα και να στείλετε

για να δούμε αν λειτουργούν τα φώτα. Εάν τα φώτα λειτουργούν, μπορείτε να στείλετε

πάλι για να τα απενεργοποιήσετε.

Βάλτε το αυτοκίνητό σας σε ένα μπλοκ για να σηκώσετε τα ελαστικά και να στείλετε

Οι τροχοί πρέπει να πηγαίνουν μπροστά. Εάν δεν το κάνουν, αντιστρέψτε τα καλώδια. Θυμηθείτε πώς χαρακτηρίσαμε τα καλώδια νωρίτερα. Οι αντίστοιχοι πείροι του L293D πρέπει να ταιριάζουν.

Για να σταματήσετε, στείλτε

Ας δούμε τις σημαντικές αλλαγές στον κώδικα.

Στην ενότητα σχολιασμού, αρχικά, θα πρέπει να δείτε τα αρχεία δημιουργού, από το Ardumotive. Τα επόμενα σχόλια εξηγούν πού άλλαξα λίγο ώστε να αντικατοπτρίζει το STM32F103C.

/ * * Δημιουργήθηκε από Βασιλάκη Μιχάλη // 12-12-2014 ver.2

* Έργο: Έλεγχος αυτοκινήτου RC μέσω Bluetooth με Android Smartphone * Περισσότερες πληροφορίες στη διεύθυνση https://www.ardumotive.com * * Άλλαξε αυτόν τον κωδικό ώστε να ταιριάζει στο STM32F103 του Jim Garbe, [email protected] * Περισσότερες πληροφορίες στη διεύθυνση https:// github.com/jgarbe/RCCAR_STM32F103C*Σημειώστε ότι οι τιμές 8-bit 0-255 έχουν αλλάξει*αντανακλούν τιμές 16-bit 0-65535*//******************* **********Στο STM32, η αναλογική εγγραφή εξακολουθεί να λειτουργεί σε 8-bit 255,*Αλλά μπορείτε να λάβετε την πλήρη λειτουργία της περιοχής PWM, 0-65535, δηλώνοντας την καρφίτσα ως PWM*ΚΑΙ χρησιμοποιώντας pwmWrite () αντί για analogWrite () **************************/

Το πιο αξιοσημείωτο είναι ότι οι ακίδες δεν ονομάζονται με τον ίδιο τρόπο μεταξύ του Arduino και του STM32F103C. Δηλώνουμε τις καρφίτσες χρησιμοποιώντας το επόμενο σύνολο γραμμών. Απομένει ένας πείρος που δηλώνεται προς τα κάτω στον βρόχο. Στη γραμμή 197, το PA5 χρησιμοποιείται για την ανάγνωση της στάθμης της μπαταρίας.

//// L293 Σύνδεση

const int motorA1 = PB6; // στο Pin 15 του L293 const int motorA2 = PB7; // στο Pin 10 του L293 const int motorB1 = PB8; // στο Pin 7 του L293 const int motorB2 = PB9; // στο Pin 2 του L293 // Leds συνδεδεμένα με STM32F103C Pin A12 const int lights = PA12; // Buzzer /Speaker to Arduino UNO Pin A8 const int buzzer = PA8; // Bluetooth (HC-06 JY-MCU) Καρφίτσα κατάστασης στον πείρο A11 του STM32F103C const int BTState = PA11;

Επίσης, χρησιμοποιώντας analogWrite (); θα συνεχίσει να εργάζεται στο "BluePill". Αλλά είναι καλύτερο να δηλώσετε τις ακίδες PWM χρησιμοποιώντας, pinMode (, PWM);

Στη συνέχεια χρησιμοποιήστε

pwmWrite (,);

ΣΗΜΕΙΩΣΗ: 8-bit = 0-255, 16-bit = 0-65535

Οι γραμμές 32-44 είναι αλλαγές που έγιναν στην μπαταρία. Εάν πρόκειται να χρησιμοποιήσετε τον έλεγχο της στάθμης της μπαταρίας, πρέπει να χρησιμοποιήσετε ένα διαχωριστικό ψηφοφορίας για την μπαταρία που έχετε. Αυτό το μέρος δεν αντικατοπτρίζεται στο σκίτσο του Fritzing. Υπάρχουν πολλές εξηγήσεις για το πώς να δημιουργήσετε ένα διαχωριστή τάσης στο Youtube. Επειδή το STM32F103C είναι ένα τσιπ 3.3v, διόρθωσα τον κωδικό εδώ για να χρησιμοποιήσω φυσικά ένα διαχωριστή τάσης. Το Arduino μπορεί να ανεχθεί κάποιες υψηλότερες τάσεις μέσω των παρεχόμενων ADC, αλλά το "Μπλε χάπι" δεν μπορεί.

/* Η στάθμη της μπαταρίας θα ελεγχθεί στο Pin PA5

* Άλλαξε την επόμενη γραμμή για το STM32F103C επειδή το ADC δεν μπορεί να χειριστεί * τίποτα πάνω από 3.3v * Μόλις το σχολίασα * Πρέπει να υπολογιστεί και να χρησιμοποιηθεί ένας διαχωριστής τάσης, χρησιμοποιώντας δύο αντιστάσεις * για τη μέτρηση της εισόδου ADC πιο κάτω στον κώδικα * παράδειγμα: * GND --- 2K αντίσταση ----------------- 1K αντίσταση ------ 5v * | * | * 3.3v */ // const float maxBattery = 3.3; // Αλλάξτε την τιμή στο μέγιστο επίπεδο τάσης μπαταρίας!

Βήμα 3: Βάλτε τα όλα μαζί

Βάλτε τα όλα μαζί
Βάλτε τα όλα μαζί
Βάλτε τα όλα μαζί
Βάλτε τα όλα μαζί
Βάλτε τα όλα μαζί
Βάλτε τα όλα μαζί
Βάλτε τα όλα μαζί
Βάλτε τα όλα μαζί

Συνήθως χρησιμοποιώ έναν πρωτο-πίνακα για να τοποθετήσω τα κομμάτια και να κολλήσω μεταξύ των οπών για να συνδέσω τα πάντα. Μερικές φορές "συγκολλώνω" τα πάντα μαζί για περισσότερο ένα Frankenstein/3D wad of solder look.

Επέλεξα αυτήν την υβριδική μέθοδο για να κάνω τη συσκευή καθαρή και ελαφριά- και φυσικά, ΦΤΗΝΗ!

Αυτή η μέθοδος επιτρέπει την επισήμανση επίσης. Ένα από τα χειρότερα μέρη της συγκόλλησης deadbug είναι όταν κοιτάζετε ένα τσιπ IC από κάτω και ξεχνάτε ποια καρφίτσα είναι τι.

Οι παραπάνω εικόνες είναι κάπως αυτονόητες. Υποθέτω ότι το δύσκολο είναι να βρεις το αρκετά λεπτό χαρτόνι για να βουλώνεις και να είσαι άκαμπτο ταυτόχρονα. Μπορείτε επίσης να χρησιμοποιήσετε πλαστικό, αλλά η σήμανση είναι λίγο πιο δύσκολη. Μόλις πιέσω τους πείρους στον πίνακα και σημειώσω τα λακκάκια, χρησιμοποιώ ένα Dremel για να ανοίξω κάθε τρύπα.

Αν δεν το έχετε ήδη παρατηρήσει, έχω μόνο τα φώτα ως βύσμα αξεσουάρ στον πίνακα. Δεν χρησιμοποιώ την ένδειξη μπαταρίας, ούτε το μπιπ. Είναι επειδή το έργο μου έχει διαφορετικό σκοπό. Θα είναι αυτονόητο μόλις δείτε το τελικό αποτέλεσμα με το αμάξωμα του αυτοκινήτου. … Αλλά αυτό φέρνει μια άλλη ιδέα, Υπάρχουν πολλές αχρησιμοποίητες καρφίτσες σε αυτό το έργο. Maybeσως ένα ανοιχτήρι πορτμπαγκάζ, ανοιχτήρι πόρτας αυτοκινήτου, πυροκροτητής πυρκαγιάς,…… ή ακόμα και μια μίνι-Galvani-Edison Luminiferous Aether Disturbance Generator!

Μόλις ολοκληρωθεί όλη η συγκόλληση, δοκιμάστε πριν κολλήσετε θερμά τις αρθρώσεις για ανακούφιση από το στρες στα καλώδια.

Χρησιμοποίησα την ίδια εφαρμογή Android με το Ardumotive, μπορείτε να το βρείτε στη διεύθυνση

Μόλις δοκιμάσετε τις λειτουργίες του αυτοκινήτου, ήρθε η ώρα να τοποθετήσετε την μπαταρία και να αλλάξετε. Πηγαίνετε στο επόμενο βήμα.

Βήμα 4: Μπαταρία και διακόπτης

Εντάξει, εδώ δεν μπορείτε να ακολουθήσετε ακριβώς το σχέδιό μου.

Με κάποιο τρόπο, θα πρέπει να βρείτε ένα καλό μέρος για να τοποθετήσετε την μπαταρία σας στο αυτοκίνητο είτε με έναν τρόπο φόρτισης της μπαταρίας από ένα dongle είτε έναν τρόπο για να φορτίσετε απευθείας το βύσμα της μπαταρίας. Στο εισαγωγικό βίντεο, απλά κόλλησα την μπαταρία και τον μικροελεγκτή στο πλαίσιο και το έτρεξα. Όταν ήθελα να σταματήσω, απλά αποσύνδεσα την μπαταρία. Το πρόβλημα με αυτήν τη ρύθμιση είναι η φθαρτότητα των βυσμάτων στο καλώδιο USB και/ή το τράπεζά σας. Είναι καλύτερα να έχετε έναν διακόπτη.

Θα πρέπει επίσης να βρείτε ένα καλό μέρος για τον διακόπτη όπου το αμάξωμα του αυτοκινήτου θα εξακολουθεί να επιτρέπει την πρόσβαση. Χρησιμοποίησα έναν απλό διακόπτη με κουμπί (όχι στιγμιαίο διακόπτη) και τον τοποθέτησα στο κάτω μέρος του πλαισίου όπου βρίσκεται η αρχική θήκη μπαταριών.

Θα πρέπει να κόψετε ένα καλώδιο USB στη μέση και να βάλετε το διακόπτη μεταξύ της μπαταρίας και της θύρας USB STM32F103C. Ναι, μπορείτε να τροφοδοτήσετε το STM32F103C με τη θύρα USB. Απλώς δεν μπορείτε να το προγραμματίσετε μέσω της θύρας USB. Χρησιμοποίησα ξανά ένα Dremel για να ανοίξω μερικές τρύπες για τους πείρους συγκόλλησης του διακόπτη. Μόλις συγκολλήθηκε, χρησιμοποίησα Hot Glue, ξανά για ενίσχυση των συνδέσεων.

Βήμα 5: Βάλτε το σώμα του αυτοκινήτου σας στο πλαίσιο

Εντάξει, είπα ότι σκόπευα ξανά την αρχική έκδοση Arduino αυτού του αυτοκινήτου. Το πραγματικό τελικό προϊόν, λοιπόν, ήταν ένα σκηνικό στήριγμα για το μπαλέτο "Ο Καρυοθραύστης" που εκτελέστηκε από την τοπική μας εταιρεία μπαλέτου. Στην εναρκτήρια σκηνή, ένα ποντίκι έτρεξε στη σκηνή με την τυχαία μαγεία του Drosselmeyer. Χρησιμοποίησα έναν αρουραίο IKEA και το τοποθέτησα στην κορυφή του πλαισίου, Arduino και πολύ μεγαλύτερη μπαταρία. Το στήριγμα ήταν βαρύ και δεν επαναφορτίζεται. Αυτό είναι πολύ καλύτερο!

Διασκεδάστε με το αυτοκίνητό σας. Θυμηθείτε ότι υπάρχουν πολλές περισσότερες καρφίτσες στο STM32F103C που μπορούν να χρησιμοποιηθούν. Σως ένα skunk παρόμοιο με αυτό στο "Toy Story 4".

Συνιστάται: