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

Arduino 101: The Course From the Tech Guy: 4 Βήματα
Arduino 101: The Course From the Tech Guy: 4 Βήματα

Βίντεο: Arduino 101: The Course From the Tech Guy: 4 Βήματα

Βίντεο: Arduino 101: The Course From the Tech Guy: 4 Βήματα
Βίντεο: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Ιούλιος
Anonim
Arduino 101: The Course From the Tech Guy
Arduino 101: The Course From the Tech Guy

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

Αυτό δεν θα ήταν σαν ένα συνηθισμένο μάθημα αντιγραφής & επικόλλησης. Θα ήταν πολύ περισσότερο από.

Γεια! Είμαι Roman και είμαι μεσαίος προγραμματιστής PHP.

Αυτό θα πάρει κάποια προϊστορία, οπότε αν θέλετε να προχωρήσετε στο επόμενο βήμα - απλώς κάντε κύλιση προς τα κάτω στις Απαιτήσεις.

Ξεκίνησα τον προγραμματισμό όταν ήμουν 10 ετών. και με έχει επηρεάσει πολύ. Επειδή ήταν τόσο ενδιαφέρον - δεν μπορούσα να το πιστέψω. Εξάλλου, πολλά παιδιά της ηλικίας μου δεν μπόρεσαν να εμφανίσουν τέτοιες δεξιότητες στο σχολείο. Evenταν ακόμη πριν ξεκινήσουμε να μαθαίνουμε Πληροφορική, ως μάθημα, και Προγραμματισμό στο μάθημα.

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

Τότε, αποφάσισα να ακολουθήσω κάποιο είδος πορείας και να δημιουργήσω τέτοια πράγματα όπως αυτό. Αργότερα, θα κάνω βίντεο στο Youtube, όπου θα μπορείτε να δείτε, πώς να ρυθμίσετε και να κάνετε πράγματα για να έχετε έναν τέλειο αγώνα.

Αλλά εδώ, θα μάθετε περισσότερα για τα απαραίτητα κώδικα από μένα. Ζεστό για σωστή δομή κώδικα, ποιες είναι οι αρχές του προγραμματισμού και γιατί είναι σημαντικές. Όλα τα πράγματα που κάνουμε - είναι Μηχανική. Και δεν υπάρχει χώρος για να γίνει λάθος. Διαβάστε, λοιπόν, καθαρά και αν θα προκύψουν κάποιες ερωτήσεις - απλώς καταθέστε τα στα σχόλια.

Βήμα 1: Εγκαταστήστε το απαιτούμενο λογισμικό/Λάβετε το απαιτούμενο υλικό

Για να ξεκινήσετε τη διαδικασία ανάπτυξης, θα χρειαστείτε:

Λογισμικό

- Κωδικός Visual Studio

- Platform. IO

Σκεύη, εξαρτήματα

- Ένας από τους πίνακες Arduino (Mega 2560, Nano, Leonardo, κ.λπ.)

- Breadboard

Καλώδια Dupont (από άντρα σε άντρα)

- Αντιστάσεις διαφόρων ονομαστικών

- RGB Leds

- Οθόνες κλπ

Βήμα 2: Αρχές προγραμματισμού

Εάν θέλετε να γράψετε έναν αποτελεσματικό και κατανοητό κώδικα, πρέπει να μάθετε περισσότερα σχετικά με τις αρχές προγραμματισμού. Στα παραδείγματα του έργου μας, θα ακολουθήσουμε τις ακόλουθες αρχές:

- ΣΤΑΘΕΡΟ

- ΣΤΕΓΝΟ (Μην επαναλαμβάνετε τον εαυτό σας)

- KISS (Keep It So Simple)

- YAGNI (Δεν θα το χρειαστείς)

Τι είναι το SOLID;

Το SOLID μπορεί να μεταγραφεί ως:

- [S] Ενιαία ευθύνη (Κάθε τάξη είναι υπεύθυνη για έναν τύπο του είδους)

- [O] Αρχή ανοιχτού κλειστού τύπου (Τα μαθήματα ή τα αντικείμενα είναι ανοικτά για επέκταση, αλλά τροποποιούνται)

- [L] Liskov Υποκατάσταση (Οι κλάσεις ή τα αντικείμενα θα μπορούσαν να αντικατασταθούν από τους υποτύπους τους χωρίς ζημιά)

- [I] Διαχωρισμός διεπαφών (Καλύτερα να έχετε πιο εξειδικευμένες διεπαφές, αντί να έχετε μία καθολική)

- [D] Αντίστροφη εξάρτηση (τα μαθήματα πρέπει να βασίζονται σε αφαιρέσεις)

Τι είναι το DRY;

DRY σημαίνει Μην επαναλαμβάνετε τον εαυτό σας. Έτσι, όταν κάνετε κάποια λύση και βλέπετε, ότι υπάρχουν ορισμένες μέθοδοι που είναι ίδιες - απλώς δημιουργήστε μια τάξη βοηθού με αυτές τις μεθόδους (ακόμη και εφικτή η κλήση στατικά) για να το κρατήσετε όσο το δυνατόν πιο απλό. Αυτό όμως είναι μια άλλη ιστορία.

Τι είναι το KISS;

Το KISS αντιπροσωπεύει το Keep It So Simple. Αυτό σημαίνει ότι όλες οι λύσεις σας θα πρέπει να έχουν όσο το δυνατόν λιγότερες γραμμές κώδικα, αλλά και να μην περιπλέκουν υπερβολικά ολόκληρη την τάξη.

Τι είναι το YAGNI;

Το YAGNI υποστηρίζει το You Arena't Gonna Need It. Σημαίνει, ότι θα πρέπει να δημιουργήσετε τάξεις και λειτουργικότητα με αυτόν τον τρόπο, τι θα χρησιμοποιήσουν όλα ή κυρίως. Γιατί αν δεν ήταν - τότε αφαιρέστε με ασφάλεια καθώς δεν το χρειάζεστε. Απλός.

Προσπαθήστε να διατηρείτε τον κωδικό σας όσο το δυνατόν πιο καθαρό.

Βήμα 3: Έργα

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

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

Λάβετε υπόψη ότι τα έργα χωρίς συνδέσμους δεν έχουν ακόμη πραγματοποιηθεί και θα γίνουν στο εγγύς μέλλον. Προσπαθώ να κάνω ό, τι πιο ενημερωτικό και διδακτικό μπορώ. Και αργότερα - θα γυρίσω ένα βίντεο και θα το προσθέσω ως οδηγίες για να συνεχίσετε.

  • Απλός έλεγχος λαμπτήρων LED
  • LED + Ποτενσιόμετρο (Δυναμική αντιστοίχιση των τιμών του ποτενσιόμετρου στο πλήθος των LED)
  • Απλός μετεωρολογικός σταθμός (v1; Υγρασία + Θερμοκρασία)
  • Advanced Weather Station w/ LCD 1602 (v2)
  • Προηγμένος μετεωρολογικός σταθμός v2 + ρυθμίσεις (v3)
  • Advanced Weather Station v3 + IR (Υπέρυθρο τηλεχειριστήριο) για οθόνη (v4)
  • Advanced Weather Station v4 + Εμφάνιση της κατάστασης με LED (v5)
  • Απλός αναγνώστης RFID (v1)
  • Advanced RFID Reader v1 w/ Εμφάνιση δεδομένων σε LCD 1602 και οθόνη OLED 0,91 '(I2C) (v2)
  • Advanced RFID Reader v2 w/ Relay Control (v3)
  • Απλός σταθμός μιας κάρτας SIM (v1)
  • Προηγμένος σταθμός μονής SIM με οθόνη OLED 0,91 '(v2)
  • Προηγμένος σταθμός διπλής SIM με οθόνη OLED 0,91 ιντσών (v1)
  • Advanced Dual-SIM Station v1 w/ SMS Sending
  • Μηχάνημα αυτόματης πώλησης
  • Απλός έλεγχος RGB Strip WS8212b (v1)
  • Advanced RGB Strip WS8212b Control v1 w/ Colors + Control Brightness (Potentiometer + Buttons) (v2)
  • Advanced RGB Strip WS8212b Control v1 με IRVending Machine

Όλα τα έργα και οι βιβλιοθήκες θα είναι διαθέσιμα στο GitHub.

Βήμα 4: Επερχόμενα Έργα προς δημοσίευση

7-8 Μαρτίου’20- Απλός έλεγχος λαμπτήρων LED- LED + Ποτενσιόμετρο (Δυναμική αντιστοίχιση των τιμών του ποτενσιόμετρου με τον αριθμό των LED)

Συνιστάται: