Θυμηθείτε τι ήταν
το ρομπότηλεκτρική σκούπα "Cybernetics" στο βιβλίο του N.N. Nosova "Dunno στην ηλιακή πόλη"; Μήπως πρέπει να υπενθυμίσουμε ότι ήρθε η ώρα να φτάσουμε στη δουλειά; Τώρα που τέτοιες συσκευές έχουν γίνει πραγματικότητα, αποδείχθηκε ότι είναι απαραίτητο. Πάρτε το τηλεχειριστήριο και πατήστε το κουμπί πάνω του. Ο ήρωας του έργου του Pachren, ο Pestrenky, έχοντας δει αυτό, θα είχε σίγουρα παρατηρήσει: "Τι είδους αυτόματο είναι αυτό, αν πρέπει να πατήσετε ένα κουμπί, αν μόνο θα ήταν χωρίς κουμπιά". Ο συγγραφέας των Instructables με το ψευδώνυμο ShaperG το σκέφτηκε επίσης. Και το έκανε
το κάνετε μόνοι σας συσκευή για την εκκίνηση μιας ηλεκτρικής σκούπας ρομπότ σε ένα πρόγραμμα.
Σπιτική αποτελείται από ένα μηχανικό χρονοδιακόπτη για την ενεργοποίηση διαφόρων ηλεκτρικών συσκευών με χρονοδιάγραμμα (Ikea ή οποιουδήποτε άλλου), τροφοδοτικό,
Arduino, δύο λαμπτήρες LED - ορατή λάμψη και υπέρυθρη ακτινοβολία, δύο αντιστάσεις 330 Ohm, θήκη Sparkfun ή οποιαδήποτε άλλη.
Έχοντας πάρει όλα τα απαραίτητα στοιχεία, ο οδηγός συντάσσει ένα διάγραμμα. Και πάλι στο πρόγραμμα τύπου Fritzing, στην περίπτωση αυτή, στην ηλεκτρονική εφαρμογή Mekanizmalar. Δεν τους αρέσει ο καθένας αυτός ο τρόπος σύνταξης διαγραμμάτων, αλλά ο τρόπος σύνδεσης όλων είναι κατανοητός.
Αφού αποφάσισε το πρόγραμμα, ο οδηγός ξεκινά τον προγραμματισμό:
Λαμβάνει μια βιβλιοθήκη
εδώκαι το σκίτσο είναι
εδώ. Απλοποιεί το σκίτσο έτσι ώστε όταν η τροφοδοσία είναι ενεργοποιημένη, στέλνει συνεχώς μια εντολή "καθαρή" κάθε πέντε δευτερόλεπτα. Το σκίτσο θα πρέπει να οριστικοποιηθεί εάν
το μοντέλο η ηλεκτρική σκούπα διαφέρει από το iRobot Roomba 530. Λοιπόν, ο πλοίαρχος αποδεικνύει αυτό:
#include
/ *
Απλός Απλός Αρμπινό Powerd Scheduler Roomba
2013-08-03 Κυκλοφορούν οδηγίες
Κωδικός προσαρμοσμένος από: https://gist.github.com/probonopd/5181021
Αποστολή υπέρυθρων εντολών από το Arduino στο iRobot Roomba
από το probono
2013-03-17 Αρχική απελευθέρωση
Πνευματικά δικαιώματα (c) 2013 από probono
Όλα τα δικαιώματα διατηρούνται.
Αναδιανομή και χρήση σε πηγές και δυαδικές μορφές, με ή χωρίς
επιτρέπονται, εφόσον πληρούνται οι ακόλουθες προϋποθέσεις:
1. Οι αναδιανομές του πηγαίου κώδικα πρέπει να διατηρούν την παραπάνω ειδοποίηση πνευματικών δικαιωμάτων, αυτό
τον κατάλογο των όρων και την ακόλουθη αποποίηση ευθυνών.
2. Οι αναδιανομές σε δυαδική μορφή πρέπει να αναπαράγουν την παραπάνω ειδοποίηση πνευματικών δικαιωμάτων,
αυτόν τον κατάλογο των όρων και την ακόλουθη αποποίηση ευθυνών στην τεκμηρίωση
και / ή άλλα υλικά που παρέχονται με τη διανομή.
ΤΟ ΑΥΤΟ ΤΟ ΛΟΓΙΣΜΙΚΟ ΠΑΡΕΧΕΤΑΙ ΑΠΟ ΤΟΥΣ ΚΑΤΟΧΟΥΣ ΚΑΙ ΤΟΥΣ ΣΥΜΒΙΒΑΣΤΕΣ ΤΟΥ ΚΑΝΟΝΙΣΜΟΥ "ΩΣ ΕΧΕΙ" ΚΑΙ
ΟΠΟΙΕΣΔΗΠΟΤΕ ΡΗΤΕΣ Ή ΣΙΩΠΗΡΕΣ ΕΓΓΥΗΣΕΙΣ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΩΝ, ΕΝΔΕΙΚΤΙΚΑ, ΤΩΝ ΣΙΩΠΗΡΩΝ
ΕΓΓΥΗΣΕΙΣ ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑΣ ΚΑΙ ΚΑΤΑΛΛΗΛΟΤΗΤΑΣ ΓΙΑ ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ ΕΙΝΑΙ
ΑΠΟΠΟΙΗΜΕΝΑ. ΣΕ ΚΑΜΙΑ ΠΕΡΙΠΤΩΣΗ Ο ΚΑΤΟΧΟΣ ΤΗΣ ΠΝΕΥΜΑΤΙΚΗΣ ΙΔΙΟΚΤΗΣΙΑΣ Ή ΣΥΜΒΙΒΑΣΤΕΣ ΔΕΝ ΕΙΝΑΙ ΥΠΕΥΘΥΝΟΙ ΓΙΑ
ΟΠΟΙΕΣΔΗΠΟΤΕ ΑΜΕΣΕΣ, ΕΜΜΕΣΕΣ, ΣΥΜΠΤΩΜΑΤΙΚΕΣ, ΕΙΔΙΚΕΣ, ΠΑΡΑΔΕΙΓΜΑΤΙΚΕΣ Ή ΕΠΑΚΟΛΟΥΘΕΣ ΖΗΜΙΕΣ
(ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΩΝ, ΑΛΛΑ ΟΧΙ ΠΕΡΙΟΡΙΣΜΕΝΗ, ΤΗΝ ΠΡΟΜΗΘΕΙΑ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ ΑΓΑΘΩΝ Ή ΥΠΗΡΕΣΙΩΝ.
ΑΠΩΛΕΙΑ ΧΡΗΣΗΣ, ΔΕΔΟΜΕΝΑ Ή ΚΕΡΔΗ; Ή ΔΙΑΚΟΠΗ ΤΗΣ ΕΠΙΧΕΙΡΗΜΑΤΙΚΗΣ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ)
ΓΙΑ ΟΠΟΙΑΔΗΠΟΤΕ ΘΕΩΡΙΑ ΕΥΘΥΝΗΣ, ΕΙΤΕ ΣΕ ΣΥΜΒΑΣΗ, ΣΤΕΡΕΑ ΕΥΘΥΝΗ Ή ΣΦΑΓΗ
(ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΗΣ ΤΗΣ ΑΜΕΛΕΙΑΣ Ή ΑΛΛΗΣ), ΠΟΥ ΠΡΟΚΥΠΤΟΥΝ ΚΑΘΕ ΠΕΡΙΠΤΩΣΗ ΑΠΟ ΤΗ ΧΡΗΣΗ ΤΟΥ ΠΑΡΟΝΤΟΣ
ΤΟ ΛΟΓΙΣΜΙΚΟ, ΑΚΟΜΗ ΚΑΙ ΕΑΝ ΕΧΕΙ ΕΝΗΜΕΡΩΘΕΙ ΓΙΑ ΤΗΝ ΠΙΘΑΝΟΤΗΤΑ ΤΕΤΟΙΩΝ ΖΗΜΙΩΝ.
* /
IRsend irsend; // είναι συνδεδεμένο στον ακροδέκτη 3. χρησιμοποιήστε ένα τρανζίστορ για να οδηγήσετε το LED IR για μέγιστο εύρος τιμών
int LED = 10;
void setup ()
{
Serial.begin (9600);
pinMode (LED, OUTPUT);
digitalWrite (LED, ΥΨΗΛΗ); // ενεργοποιήστε τη λυχνία LED (HIGH είναι η στάθμη τάσης)
}}
κενός βρόχος ()
{
roomba_send (136); // Αποστολή "Καθαρισμός"
καθυστέρηση (5000); // Περιμένετε 5 δευτερόλεπτα
}}
void roomba_send (κωδικός int)
{
Serial.print ("Αποστολή κωδικού Roomba");
Serial.print (code);
int μήκος = 8;
μη υπογεγραμμένο int ακατέργαστο [μήκος * 2];
unsigned int one_pulse = 3000;
unsigned int one_break = 1000;
μη καταχωρημένο int zero_pulse = one_break;
unsigned int zero_break = one_pulse;
int arrayposition = 0;
// Serial.println ("");
για (int μετρητής = μήκος-1 · μετρητής = = 0 · - μετρητής) {
αν (κωδικός & (1 << μετρητής)) {
// Serial.print ("1");
ακατέργαστη [arrayposition] = one_pulse;
ακατέργαστη [arrayposition + 1] = one_break;
}}
αλλού {
// Serial.print ("0");
ακατέργαστο [arrayposition] = zero_pulse;
ακατέργαστο [arrayposition + 1] = zero_break;
}}
τοποθέτηση διάταξης = τοποθέτηση διάταξης + 2.
}}
για το (int i = 0; i <3; i ++) {
irsend.sendRaw (ακατέργαστο, 15, 38);
καθυστέρηση (50).
}}
Serial.println ("");
Serial.print ("Χρόνοι ακαμψίας:");
για (int z = 0 · z <μήκος * 2 · z ++) {
Serial.print ("");
Serial.print (ακατέργαστο [z]);
}}
Serial.print ("\ n \ n");
}}
Αρχικά, ο οδηγός ελέγχει τη λειτουργία του σκίτσου για την έξοδο της σειριακής θύρας στην οθόνη. Στη συνέχεια τοποθετεί τα πάντα στη θήκη και τροφοδοτεί το Arduino όχι από τον υπολογιστή, αλλά από την τροφοδοσία που ενεργοποιείται μέσω μηχανικού χρονοδιακόπτη.
Τώρα, έχοντας τοποθετήσει τη συσκευή κοντά στο σταθμό φόρτισης, στην οποία επιστρέφει πάντα η ηλεκτρική σκούπα ρομπότ, μπορείτε να ρυθμίσετε το χρονοδιάγραμμα αναδίπλωσης του μηχανικού χρονοδιακόπτη για να το εκκινήσετε. Το καλύτερο από όλα - μία φορά την ημέρα. Μόνο όχι τη νύχτα, όπως στο Ν.Ν. Nosova.