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

Κάνοντας ένα ηλίθιο ρομπότ Lawnmover πιο έξυπνο: 4 βήματα
Κάνοντας ένα ηλίθιο ρομπότ Lawnmover πιο έξυπνο: 4 βήματα

Βίντεο: Κάνοντας ένα ηλίθιο ρομπότ Lawnmover πιο έξυπνο: 4 βήματα

Βίντεο: Κάνοντας ένα ηλίθιο ρομπότ Lawnmover πιο έξυπνο: 4 βήματα
Βίντεο: Ρομποτική για όλους: Το μέλλον του αυτοματισμού, συζήτηση σε πάνελ 2024, Νοέμβριος
Anonim
Κάνοντας ένα ηλίθιο ρομπότ Lawnmover πιο έξυπνο
Κάνοντας ένα ηλίθιο ρομπότ Lawnmover πιο έξυπνο

Έχω λοιπόν ένα υπέροχο, αλλά ηλίθιο ρομπότ χλοοκοπτικής μηχανής (Η εικόνα προέρχεται από το www.harald-nyborg.dk).

Αυτό το ρομπότ υποτίθεται ότι κόβει το γκαζόν μου, αλλά το γκαζόν μου είναι πολύ μεγάλο και πολύπλοκο για να μπορέσει πραγματικά να μπει στις γωνίες.

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

Έτσι αποφάσισα να προσθέσω κάποια εξωτερική νοημοσύνη.

23-04-2020 ΕΠΕΞΕΡΓΑΣΙΑ: ο αισθητήρας δεν λειτούργησε αρκετά, οπότε άλλαξα μερικά πράγματα

Προμήθειες

2 εξωτερικοί διακόπτες 2 κατευθύνσεων

Ή

1 παλιός δρομολογητής usb

1 κάρτα ρελέ USB

1 σπινθήρα

1 διανομέας usb

1 στεγανό ηλεκτρονικό κουτί

23-04-2020 ΕΠΕΞΕΡΓΑΣΙΑ:

OR1 παλιό δρομολογητή usb

1 κάρτα ρελέ USB

1 usb2serial tll thinghy

1 διανομέας usb

1 στεγανό ηλεκτρονικό κουτί

1 αισθητήρας υπερήχων Dfrobot URM 37 v3.2 (πιθανότατα θα μπορούσατε να χρησιμοποιήσετε οποιοδήποτε αισθητήρα =)

kmod-usb-serial-cp210x

Βήμα 1: Βήμα 1: Manuel Multi Area Cutting

Βήμα 1: Κοπή πολλαπλών περιοχών Manuel
Βήμα 1: Κοπή πολλαπλών περιοχών Manuel
Βήμα 1: Κοπή πολλαπλών περιοχών Manuel
Βήμα 1: Κοπή πολλαπλών περιοχών Manuel

Η εικόνα δείχνει πώς πήγα από μία περιοχή κοπής, σε 2 περιοχές.

Το ρομπότ μου θα ξεκινά αυτόματα κάθε 2. ημέρα, οπότε όσο θυμόμουν να το αλλάξω από τη μια περιοχή στην άλλη, αυτό λειτούργησε μια χαρά.

Χρησιμοποίησα 2 χειροκίνητους διακόπτες, όπως αυτούς που θα χρησιμοποιούσατε σε αίθουσα ή σκάλα.

Αυτό λειτούργησε, εκτός από αυτά που χρησιμοποίησα ήταν πολύ κακής ποιότητας, και έτσι πήρα σφάλματα που τα σέρνονταν, τα μπέρδευαν

Βήμα 2: Βήμα 2: η Αυτόματη Λύση

Βήμα 2: Η αυτόματη λύση
Βήμα 2: Η αυτόματη λύση
Βήμα 2: Η αυτόματη λύση
Βήμα 2: Η αυτόματη λύση
Βήμα 2: Η αυτόματη λύση
Βήμα 2: Η αυτόματη λύση
Βήμα 2: Η αυτόματη λύση
Βήμα 2: Η αυτόματη λύση

Έτσι αποφάσισα να κάνω κάτι αυτόματο.

Πήρα ένα μεταχειρισμένο δρομολογητή Netgear R6100, το πήρα επειδή έχει wifi, usb και αρκετή μνήμη για να πειραματιστείς με πειραματισμούς, αντί να προσπαθείς να στριμώξεις το OpenWrt και τους φίλους του.

Πήρα ένα ebays best usb 2.0 hub και μια κάρτα ρελέ 12v.

Τότε είχα ένα digispark από ένα προηγούμενο έργο. 23-04-2020 ΕΠΕΞΕΡΓΑΣΙΑ: χρησιμοποίησα αντ 'αυτού ένα usb2seriel thinghy

καλωδίωσα τα ρελέ αντί των διακοπτών. χρησιμοποίησα ρελέ 3 και 4

Στη συνέχεια, εγκατέστησα το OpenWrt και πρόσθεσα Crelay, picocom και coreutils-stty σε αυτό.

23-04-2020 EDIT: προστέθηκε xxk, kmod-usb-serial-cp210x επίσης

Συνδέθηκε 12V στο δρομολογητή και την πλακέτα ρελέ.

23-04-2020 ΕΠΕΞΕΡΓΑΣΙΑ: χρησιμοποίησε ένα Urm 37 v3.2 αντί για την υπόλοιπη σελίδα

Τότε έμαθα κάτι "διασκεδαστικό". το relay boad θα προσπαθήσει να ενεργοποιήσει το διανομέα usb, εμποδίζοντας έτσι το digispark να επανεκκινήσει σωστά. Έτσι έκοψα το καλώδιο τροφοδοσίας στο καλώδιο usb από την κάρτα ρελέ και το διανομέα USB.

Στη συνέχεια, συνδέσα το digispark και την κάρτα ρελέ USB στο διανομέα USB 2.0 και το διανομέα στο δρομολογητή.

Λοιπόν για να είμαι δίκαιος, προγραμμάτισα το digispark πριν το προσθέσω στο δρομολογητή

Στο digispark, πρόσθεσα ένα κουμπί, το οποίο έκανα ενσύρματο μεταξύ P1 και Gnd.

Αυτό το κουμπί το τοποθέτησα, ώστε το ρομπότ να το ενεργοποιήσει, μόλις φορτιστεί στο γκαράζ του.

έπρεπε να προσθέσω ένα ελατήριο στην ενεργοποίηση, για να αποκτήσω μια καλή σταθερή δέσμευση.

Βήμα 3: Βήμα 3: Λογισμικό

Το αρχείο περιέχει ένα πρόγραμμα arduino ide για το digispark.

Τοποθετείται στο root/LawnSelector.

Αυτό το αρχείο χρειάζεται λίγα digispark libs, όπως το digiCDC και οι σανίδες digispark που προστίθενται στο arduino ide.

Στη συνέχεια, τα αρχεία/root/GrassCtr/*.

Αυτά είναι τα αρχεία που κάνουν πραγματικά τη δουλειά.

Το Kreds1 αλλάζει τα ρελέ σε περιοχή 1

Το Kreds2 αλλάζει τα ρελέ σε περιοχή 2

Το KredsStatus ρωτά το ρελέ USB, ποια περιοχή είναι ενεργή

23-04-2020 EDIT: Χρησιμοποιήστε το UltraSoundSeriel αντί να διαβάσετε digispark.

ReadDigiSpark, διαβάζει τις ειδήσεις κάθε Τρίτη.. Περίμενε. Διαβάζει την κατάσταση εισόδου του digispark

Ο GrassCtl κάνει τη σκέψη.

Ιδού τι κάνει.

Εάν το ρομπότ είναι IN για περισσότερες από 10 ώρες, αποφασίζει ότι το ρομπότ είναι για τη νύχτα και αυτό ενεργοποιεί ένα flipflop, που το κάνει να ξεκινά σε κάθε περιοχή κάθε δεύτερη φορά. Ο λόγος για αυτό είναι ότι το ρομπότ μου ξεκινά κόβοντας ολόκληρη την άκρη και με αυτόν τον τρόπο, κόβει τις άκρες κάθε δεύτερη μέρα.

Στη συνέχεια, όταν το ρομπότ κουρεύει, ο αισθητήρας θα πει ότι το ρομπότ είναι έξω.

Κάθε φορά που το ρομπότ επιστρέφει για φόρτιση της μπαταρίας (ορίζεται ότι είναι για περισσότερο από 20 λεπτά) η περιοχή αλλάζει στην άλλη περιοχή.

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

Βήμα 4: Βήμα 4: Ενεργοποίηση του Λογισμικού

Για να τρέξουμε το λογισμικό, πρέπει να κάνουμε κάτι.

Το πρόσθεσα σε ένα cronJob

*/5 * * * */root/GrassCtrl/GrassCtl

στο αρχείο

/etc/crontabs/root

Στη συνέχεια, για να ενεργοποιήσω τα cronjobs έκανα

/etc/init.d/cron ενεργοποιήστε

Όπως μπορώ καλύτερα να πω, το ρομπότ θα αλλάξει τώρα μεταξύ της εκκίνησης της περιοχής κοπής 1 ή 2 και θα αλλάζει αυτό που κόβεται κάθε φορά που φορτίζει τις μπαταρίες.

Και ναι, τώρα γίνεται όλα

Συνιστάται: