Τίτλοι τέλους για το Codebender (online Arduino IDE)

Δευτέρα, 24 Οκτωβρίου 2016


Το Codebender μας ανακοίνωσε πριν λίγες ημέρες τον τερματισμό της λειτουργίας του online Arduino IDE. Άσχημα τα νέα λοιπόν για τους Arduino developers που είχαν "βολευτεί" με αυτό το καταπληκτικό εργαλείο. Τέλος το cloud hosting, τέλος και η άμεση χρήση των βιβλιοθηκών που χρησιμοποιούσαμε με τόση ευκολία.

Φυσικά οι developers του Codebender δεν τρελάθηκαν μια μέρα και είπαν "τέλος, βαρέθηκα, κλείνω". Το Codebender δημιουργήθηκε πριν 4 περίπου χρόνια, εδώ στην Ελλάδα, και πιο συγκεκριμένα στην Πάτρα. Στηρίζοντας το ανοικτό λογισμικό η υπηρεσία ήταν δωρεάν, εκτός απ' Arduino projects που ήθελες να κρατήσεις "κρυφά". Όπως μας εξηγεί ο ιδρυτής του, το κόστος συντήρησης έγινε πλέον μη βιώσιμο καθώς αγγίζει τα 25.000$ το μήνα.

Διαβάστε την σχετική ανακοίνωση εδώ.


Για τους Arduino devs που έχουν projects στο Codebender, καλό θα ήταν να αρχίσετε το backup σας. Πιο συγκεκριμένα απ' τις 7/11 δεν θα είναι πλέον διαθέσιμη η υπηρεσία του compilation, με απλά λόγια δε θα μπορείτε πλέον να προγραμματίσετε τα Arduino σας online μέσω του Codebender. Απ' τις 31/11 και μετά θα μπορείτε μόνο να δείτε τα project σας. Απ' το νέο έτος και μετά ίσως να μην είναι πλέον διαθέσιμα.

Τι ακολουθεί? Το Codebender σκοπεύει να επεκταθεί περισσότερο στο B2B κομμάτι, ήδη έχει προωθήσει μια καταπληκτική ιδέα για την online χρήση του ESP8266 wifi module στο kickstarter, διαβάστε περισσότερα εδώ.

Ως Arduino developer, θέλω να ευχαριστήσω όλη την ομάδα του Codebender γι΄αυτή την καταπληκτική και μοναδική εμπειρία που είχαμε πάνω στον προγραμματισμό της αγαπημένης μας Arduino πλακέτας! Σας ευχόμαστε καλή συνέχεια!

Συντάκτης: Βασιλάκης Μιχάλης
www.ardumotive.com Το μεγαλύτερο ελληνικό site για το Arduino
Διάβασε όλο το άρθρο -->>

#74 Φτιάχνοντας ένα ρομποτικό όχημα με το Arduino - Φωνητικές εντολές

Τρίτη, 4 Οκτωβρίου 2016



Στο σημερινό και τελευταίο μέρος της σειράς "Φτιάχνοντας ένα ρομποτικό όχημα με Arduino" θα χρησιμοποιήσουμε μια Android εφαρμογή για να κινήσουμε το όχημα μας μέσω φωνητικών εντολών.

Η Android εφαρμογή που θα χρησιμοποιήσουμε λέγετε "BT Voice Control for Arduino" και μπορείτε να την κατεβάσετε δωρεάν απ΄ εδώ (developer SimpleLabsIN).


Στην ουσία αυτό που κάνει η εφαρμογή είναι να στέλνει τις λέξεις σειριακά στο Arduino. Οι λέξεις ξεκινάνε με '*' και τελειώνουν με '#'. Δεδομένου οτι το Arduino "καταλαβαίνει" μόνο λατινικούς χαρακτήρες, οι λέξεις αυτές πρέπει να είναι στα Αγγλικά. Έτσι αν θέλουμε να κινήσουμε το όχημα μας ευθεία θα πατήσουμε το κουμπί της εφαρμογής και θα πούμε "Forward". Η εφαρμογή θα στείλει στο Arduino το string "*Forward#" ή "*forward#". Οι εντολές που καταλαβαίνει είναι οι παρακάτω:

  • Forward - *Forward#
  • Backward - *Backward#
  • Left - *Left#
  • Right - *Right#
  • Stop - *Stop#

Καμιά φορά η εφαρμογή στέλνει τις λέξεις με το πρώτο γράμμα μικρό. Αυτό μπορούμε να το ελέγξουμε μέσα στην if του κώδικα παρακάτω. Αν λόγω προφοράς δεν στέλνετε σωστά μια εντολή μπορείτε να δοκιμάσετε κάποια άλλη λέξη και να την προσθέσετε στον κώδικα μέσα. Για παράδειγμα για να πάει πίσω μπορούμε να του πούμε Backward ή Reverse, οπότε αυτό που περιμένει το Arduino μπορεί να είναι *Backward# ή *backward# ή *Reverse# ή *reverse#.

Κώδικας


Τώρα μπορείτε να ενώσετε τα κομμάτια κώδικα και να φτιάξετε το δικό σας σούπερ Arduino ρομπότ!

Συντάκτης: Βασιλάκης Μιχάλης
www.ardumotive.com Το μεγαλύτερο ελληνικό site για το Arduino
Διάβασε όλο το άρθρο -->>

#73 Φτιάχνοντας ένα ρομποτικό όχημα με το Arduino - Δύο σε ένα!

Σάββατο, 24 Σεπτεμβρίου 2016




Στα προηγούμενα δύο άρθρα μας προγραμματίσαμε το ρομποτικό όχημα να κινείτε ελεύθερα στο χώρο και να κινείτε μέσω Bluetooth απ' την Android συσκευή μας. Ήρθε η στιγμή να το προγραμματίσουμε ώστε να μπορεί να εκτελέσει και τις δύο λειτουργίες - προγράμματα μαζί.

Το ρομποτικό όχημα θα ξεκινάει στην "χειροκίνητη" λειτουργία μέσω της οποίας μπορεί ο χρήστης να το κινήσει μπροστά - πίσω - αριστερά - δεξιά μέσα απ' την Android εφαρμογή. Με το πάτημα ενός κουμπιού (μέσα στην εφαρμογή) θα μπορέσει το ρομποτικό όχημα να μπει στην "αυτόματη" λειτουργία και να αρχίσει να κινείτε μόνο του στον χώρο.

Πλέον μπορείτε να ρυθμίσετε και την ταχύτητα του.

Κώδικας
Συντάκτης: Βασιλάκης Μιχάλης
www.ardumotive.com Το μεγαλύτερο ελληνικό site για το Arduino
Διάβασε όλο το άρθρο -->>

#72 Φτιάχνοντας ένα ρομποτικό όχημα με το Arduino - Έλεγχος μέσω Bluetooth

Σάββατο, 17 Σεπτεμβρίου 2016



Στο σημερινό άρθρο θα πάρουμε την κατάσταση στα χέρια μας! Θα μπορέσουμε να ελέγξουμε εμείς την πορεία του ρομποτικού οχήματος μέσα από μια Android συσκευή (κινητό ή τάμπλετ) χρησιμοποιώντας την τεχνολογία Bluetooth.

Το Bluetooth είναι γνωστό σε όλους μας εδώ και χρόνια, μερικές πληροφορίες γι αυτό απ' την Βικιπαίδεια:

Το Bluetooth είναι ένα βιομηχανικό πρότυπο για ασύρματα προσωπικά δίκτυα υπολογιστών (Wireless Personal Αrea Νetworks, WPAN). Πρόκειται για μια ασύρματη τηλεπικοινωνιακή τεχνολογία μικρών αποστάσεων, η οποία μπορεί να μεταδώσει σήματα μέσω μικροκυμάτων σε ψηφιακές συσκευές. Επομένως το Bluetooth είναι ένα πρωτόκολλο το οποίο παρέχει προτυποποιημένη, ασύρματη επικοινωνία ανάμεσα σε PDA, κινητά τηλέφωνα, φορητοί υπολογιστές, προσωπικοί υπολογιστές, εκτυπωτές, καθώς και ψηφιακές φωτογραφικές μηχανές ή ψηφιακές κάμερες, μέσω μιας ασφαλούς, φθηνής και παγκοσμίως διαθέσιμης χωρίς ειδική άδεια ραδιοσυχνότητας μικρής εμβέλειας. Από τεχνικής άποψης το Bluetooth είναι ένα πρωτόκολλο ασύρματης δικτύωσης σε φυσικό επίπεδο, υποεπίπεδο MAC και, προαιρετικά, υποεπίπεδο LLC. (διαβάστε περισσότερα)

Στην δικιά μας περίπτωση θα χρησιμοποιήσουμε ένα σειριακό bluetooth module, το HC-06. 


To Blueooth module HC-06:

Κάθε Bluetooth Module έχει ένα όνομα, έναν κωδικό πρόσβασης και έναν ρυθμό μετάδοσης (baud rate), τα οποία μπορούμε εάν θέλουμε να τα αλλάξουμε, θα εξηγήσουμε παρακάτω πως γίνεται αυτό. Τα σήματα του ακροδέκτη που υπάρχουν στο ΒΤ έχουν την ακόλουθη σημασία:


Συνδεσμολογία

Για να γίνει σωστά η επικοινωνία θα πρέπει να ενώσουμε το RXD του Bluetooth με το TXD του Arduino και το TXD του Bluetooth με το RXD του Arduino αντίστοιχα. Προσοχή! Όταν περνάμε πρόγραμμα στο Arduino, θα πρέπει το RXD και TXD του Bluetooth να τα αποσυνδέουμε από το Arduino board.
Βήματα για τον προγραμματισμό του HC-06

Για να προγραμματίσουμε το Bluetooth module θα χρησιμοποιήσουμε το Arduino Uno board χωρίς τον μικρο επεξεργαστή ATMega328, οπότε με προσοχή τον αφαιρούμε πριν ξεκινήσουμε. Εάν δεν θέλετε να τον αποσυνδέσετε, μπορείτε να περάσετε απ' τα παραδείγματα το "Blink Led", με αυτόν τον τρόπο βεβαιωνόμαστε ότι ο μικρο επεξεργαστής δεν χρησιμοποιεί και αυτός την σειριακή θύρα.

  • 1. Συνδέουμε το RXD του Bluetooth με το RXD του Arduino και το TXD του Bluetooth με το TXD του Arduino 
  • 2. Συνδέουμε το Vcc του Blueooth με τα 3,3V ή 5V του Arduino και το GNG του Bluetooth με το GND του Arduino 
  • 3. Συνδέουμε το KEY με μια αντίσταση ~10Κ στο Vcc του Bluetooth (3.3V) - Λειτουργία προγραμματισμού 
  • 4. Συνδέουμε το Arduino Uno με τον υπολογιστή μέσω του USB καλωδίου 
  • 5. Ανοίξτε την επικοινωνία στην παρακάτω σειριακή οθόνη του codebender
  • 6. Επιλέγουμε τον σωστό ρυθμό μετάδοσης (baud rate) που έχει ήδη το bluetooth module. Αυτή την πληροφορία μπορεί να σας την δώσει ο προμηθευτής του Bluetooth Module. Συνηθίζετε η προεπιλεγμένη τιμή να είναι 9600. 
  • 7. Μετά την σύνδεση επιλέξτε "No line ending".
  • 8. Πληκτρολογούμε AT , εάν πάρουμε απάντηση OK τότε είμαστε σε θέση να προγραμματίσουμε το Bluetooth. Εάν όχι τότε ξανά ελέγξτε τον ρυθμό μετάδοσης, βεβαιωθείτε για την συνδεσμολογία στα 3 πρώτα βήματα και πως έχετε βγάλει τον μικρο επεξεργαστή Atmel από το Arduino Uno ή έχετε περάσει σε αυτόν το "Blink Led". 
  • 9. Για αλλαγή ονόματος πληκτρολογούμε AT+NAMEνέο_όνομα. Το Bluetooth απαντάει OKsetname Για αλλαγή του κωδικού πληκτρολογούμε AT+PINνέος_κωδικός. Το Bluetooth απαντάει ΟΚsetpin Για αλλαγή του ρυθμού μετάδοσης AT+BAUDn (n=1,2,3,4,5,6,7,8) . To Blueooth απαντάει OKbaudrate (όπου n=1,2,3,4,5,6,7,8 αντίστοιχα 1200,2400,4800,9600,19200,38400,57600,115200) 
  • 10. Αποσυνδέουμε το KEY από την αντίσταση και από το Vcc και το Bluetooth είναι έτοιμο με νέα χαρακτηριστικά.

Σειριακή οθόνη


Πίσω στο ρομποτικό μας όχημα... 

Συνδεσμολογία:

Προσθέστε στο κύκλωμα σας τις παρακάτω συνδέσεις:
  • Bluetooth Vcc - Arduino 5V
  • Bluetooth GND - Arduino GND
  • Bluetooth RX - Arduino TX
  • Bluetooth TX -Arduino RX


Κώδικας
Κάθε φορά που θα περνάτε πρόγραμμα στο Arduino θα πρέπει να αποσυνδέετε τα καλώδια απ' τα pins RX και TX. Υπάρχει τρόπος για να το αποφύγουμε αυτό μέσω της βιβλιοθήκης SoftwareSerial.h αλλά είναι κάτι που θα το δούμε μελλοντικά.
Το πρόγραμμα παρακάτω θα σας δώσει την δυνατότητα να ελέγξετε το ρομποτικό όχημα μέσα απ' την εφαρμογή που θα δούμε στο επόμενο βήμα. Δεν κάνει χρήση του servo, διακοπτών και ultrasonic sensor. Στο επόμενο άρθρο θα σας δώσω το πρόγραμμα με το οποίο θα μπορεί το ρομπότ σας να εκτελέσει και τις δυο λειτουργίες.


Android εφαρμογή

Η Android εφαρμογή που έχουμε φτιάξει έχει πολλές επιλογές τις οποίες μπορείτε να δείτε στην εικόνα παρακάτω.


Στην παρούσα φάση οι επιλογές που δουλεύουν είναι τα κουμπιά μπροστά, πίσω, αριστερά και δεξιά.

Για να λειτουργήσει η εφαρμογή θα πρέπει να ενεργοποιήσετε τις "Άγνωστες πηγές" (Android 4.0: Ρυθμίσεις - Ασφάλεια - Άγνωστες πηγές) Μέγεθος οθόνης > 3.5 inch

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

Συντάκτης: Βασιλάκης Μιχάλης
www.ardumotive.com Το μεγαλύτερο ελληνικό site για το Arduino
Διάβασε όλο το άρθρο -->>

#71 Φτιάχνοντας ένα ρομποτικό όχημα με το Arduino - Αποφυγή εμποδίων

Τρίτη, 6 Σεπτεμβρίου 2016





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

Για να το πετύχουμε αυτό θα χρησιμοποιήσουμε έναν αισθητήρα υπερήχων και για αποφύγουμε συγκρούσεις με αντικείμενα που βρίσκονται εκτός του πεδίου ανίχνευσης θα χρησιμοποιήσουμε και δυο διακόπτες "επαφής". Επιπλέον για την καλύτερη επιλογή του δρόμου διαφυγής, έχουμε τοποθετήσει στο μπροστινό μέρος του ρομποτικού οχήματος έναν servo κινητήρα ο οποίος θα γυρνάει τον αισθητήρα υπερήχων δεξιά και αριστερά.

Λίγα λόγια για τους υπέρηχους


Όπως φαίνεται και στην παραπάνω εικόνα, οι υπέρηχοι βρίσκονται πάνω απ' τις ακουστικές συχνότητες, έτσι δεν μπορεί να τους ακούσει το ανθρώπινο αυτί. Παρόλο πάντως που εμείς δεν τους ακούμε κάποια ζώα μπορούν και να τους ακούν αλλά και να τους χρησιμοποιούν. Χαρακτηριστικά παραδείγματα που μας το δείχνουν αυτό είναι η κίνηση των νυχτερίδων και η σφυρίχτρα που χρησιμοποιείται για τους σκύλους. Αισθητήρες υπερήχων συναντάμε σε πολλές εφαρμογές στην ιατρική, στην πλοήγηση σκαφών/πλοίων ακόμα και στα αυτοκίνητα μας στα γνωστά park sensors. 

Οι αισθητήρες υπερήχων λειτουργούν με την ίδια αρχή που λειτουργούν τα ραντάρ και τα σόναρ. Εκτιμούν την απόσταση ενός στόχου λαμβάνοντας υπόψη τους την αντανάκλαση ενός ραδιοκύματος ή ενός ηχητικού σήματος πάνω στο στόχο.


Δημιουργούν υψηλής συχνότητας κύματα και χρησιμοποιώντας το επιστρεφόμενο σήμα καθορίζουν την απόσταση ή ακόμα και την ταχύτητα του στόχου. Για να το επιτύχουν αυτό χρησιμοποιούν τον χρόνο που έκανε το σήμα για να καλύψει την απόσταση από τον αισθητήρα στο αντικείμενο και πίσω. 

Στο Arduino η διαδικασία αυτή (αντιστοίχηση χρόνου σε απόσταση) είναι αρκετά απλή διότι υπάρχει συγκεκριμένη βιβλιοθήκη για τον αισθητήρα HC-SR04 που κάνει την "δύσκολη" δουλεία. Εμείς στον κώδικα μας αρκεί να κάνουμε χρήση μόνο μιας εντολής! Η εντολή αυτή θα μας επιστρέψει την απόσταση σε εκατοστά (cm).

Οπτικό πεδίο ~30°

Συνδεσμολογία

Απ΄ εδώ και στο εξής θα χρησιμοποιείτε το breadboard για τα καλώδια τροφοδοσίας 5V και GND αλλά και για μικρά καλώδια που δεν φτάνουν στο Arduino, ως προέκταση.

Αισθητήρας HC-SR04 (Ultrasonic Sensor)

  • Vcc - Arduino pin 5V (θέση breadboard)
  • Trig - Arduino pin A0
  • Echo - Arduino pin A1
  • Gnd - Arduino pin GND (θέση breadboard)

Διακόπτες "επαφής"

Θα πρέπει να έχετε τοποθετήσει έναν διακόπτη σε κάθε πλευρά του ρομποτικού οχήματος, εναν αριστερά και έναν δεξιά. Κάθε διακόπτης έχει δυο επαφές, το ένα καλώδιο θα πρέπει να πάει στην γείωση - gnd και το άλλο σε κάποιο pin του Arduino. Αν έχετε διακόπτη με τρις επαφές τότε θα πρέπει να συνδέσετε τα pins 'com' και 'no'. Δεδομένου οτι έχουμε να κάνουμε με διακόπτη δύο θέσεων, δεν παίζει ρόλο πιο pin θα επιλέξετε για την παρακάτω συνδεσμολογία.

  • Διακόπτης αριστερά - COM - Arduino pin GND (θέση breadboard)
  • Διακόπτης αριστερά - NO - Arduino pin 7

  • Διακόπτης δεξιά - COM - Arduino pin GND (θέση breadboard)
  • Διακόπτης δεξιά - ΝΟ - Arduino pin 8
NC: normaly close, NO: nornaly open, com: common 
Servo motor

Έχει τρία καλώδια, Vcc κόκκινο, GND μαύρο/καφέ και συνήθως πορτοκαλί το σήμα το οποίο το πάει στο Arduino pin 3.

Κώδικας

Το παρακάτω πρόγραμμα χρησιμοποιεί την βιβλιοθήκη ultrasonic.h για την εύρεση την απόστασης σε cm απ' το εμπόδιο που βλέπει ο αισθητήρας υπερήχων. Αν θέλετε να κάνετε χρήση του Arduino IDE αντί του Codebender και σας αρέσει να παιδεύεστε θε πρέπει να την βρείτε και να την εγκαταστήσετε μόνοι σας, μην με ρωτάτε για το Arduino IDE όταν όλα γίνονται αυτόματα με το Codebender.
Διαβάστε τον κώδικα για να τον κατανοήσετε. Πατήστε το πράσινο κουμπί "Run on Arduino" για να προγραμματίσετε το Arduino uno. Μην τοποθετήσετε ακόμα τις μπαταρίες.



Αποσυνδέστε το απ' τον υπολογιστή σας και βάλτε όλες τις μπαταρίες.

Αρχή λειτουργίας

Όταν το ρομποτικό όχημα ανιχνεύσει αντικείμενο σε απόσταση 10cm τότε σταματάει, κοιτάει αριστερά και δεξιά ψάχνοντας για τον καλύτερο τρόπο διαφυγής. Έπειτα στρίβει κατά 90 μοίρες δεξιά ή αριστερά και συνεχίζει ευθεία. Κατά την πορεία του είναι πιθανόν να πέσει πάνω σε αντικείμενα ή τοίχους τους οποίους δεν μπορεί να ανιχνεύσει. Οι διακόπτες επαφής το βοηθούν ώστε να κάνει λίγο πίσω και μια μικρή στροφή αριστερά ή δεξιά για να τα/τους αποφύγει.


Συντάκτης: Βασιλάκης Μιχάλης
www.ardumotive.com Το μεγαλύτερο ελληνικό site για το Arduino
Διάβασε όλο το άρθρο -->>

 
 
 

Κέρνα ένα Like...

Αυτή την στιγμή μας διαβάζουν: άτομα

Προτείνουμε...