Google+

Σάββατο 15 Οκτωβρίου 2011

Arduino Starter's KIT

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

- Arduino 
- usb cable (σύνδεση pc με arduino)
- ράστερ (breadboard)
- Ηλεκτρονικά εξαρτήματα (αντιστάσεις, δίοδοι εκπομποί φωτός LED, καλώδια, συνδετήρες, μπαταρία)
- Αισθητήρες (sensor φωτός(ldr), κίνησης(pir, 3-axis), temp(LM35), servo motor, κτλ)
- Προεκτυπωμένα για τοποθέτηση ηλ. εξαρτημάτων πάνω στο ράστερ (breadboard overlay)
- Κώδικας (source code)
- Οδηγίες τοποθέτησης και λειτουργίας γραπτές αλλά και σε βίντεο!

Ένα τέτοιο KIT είναι και το ARDX της oomlout στο οποίο μάλιστα, όλα τα παραπάνω, παρουσίαζονται κατηγοριοποιημένα υπό τη μορφή μαθημάτων:



Και για κάθε μάθημα υπάρχουν οι αντίστοιχες οδηγίες μαζί με βίντεο στο youtube :


Βέβαια, αν ακόμη δε νοιώθετε σίγουροι ότι θα τα καταφέρετε μόνοι σας. Θα πρότεινα την επίσκεψή σας σε ένα τοπικό Hackerspace πχ σαν αυτό που βρίσκεται στη Θεσσαλονίκη το TheHackerspace (Thessaloniki's Hackerspace) και τα αντίστοιχα σε άλλες πόλεις, όπου εκεί θα βρείτε το χώρο, το υλικό, μα πάνω απ' όλα τους ανθρώπους για να σας βοηθήσουν στην υλοποίησή σας ;)

Δευτέρα 10 Οκτωβρίου 2011

DIY 12" Digital Photo Frame for Ubiquitous Smart Home

Πρόσφατα, έπεσε στα χέρια μου ένα αρκετά παλιό, αλλά σε πολύ καλή κατάσταση laptop (Compaq Armada 100s) και το πρώτο πράγμα που σκέφτηκα ήταν, ποια διανομή Linux να εγκαταστήσω για να πάρει τα "πάνω" του...

Αναζητώντας, πάντα παρέα με το φίλο μου google, στο διαδίκτυο διαπίστωσα ότι το DSL ή το PuppyLinux ή ακόμη και το Ubuntu 6.06 δε θα προσέδιδε τίποτα νέο και σπουδαίο στο κατά τ' άλλα κομψό-μικρό laptop με Windows. Συνέχισα να ψάχνω για old laptop hw hacking και δεν άργησα να πέσω πάνω σε κάτι διαφορετικό και πολύ ενδιαφέρον: 

Μια ιδιο-κατασκευή ηλεκτρονικής κορνίζας με χρήση παλιού laptop! *


Φυσικά, δεν άργησε να τεθεί ως στόχος για project του ΣΚ δλδ το να βλέπω όλες τις φωτογραφίες που έχω σε jpg με μια κορνίζα 12" κρεμασμένη στον τοίχο! Για την όλη διαδικασία παρακάτω, παραθέτω πολύ συνοπτικά τα υλικά της κατασκευής και τα βήματα που ακολούθησα μαζί με κάποιες φώτογραφίες:

1. Αποσυναρμολόγηση της οθόνης του laptop με τη βοήθεια του εγχειριδίου σέρβις (service manual):






2. Αγορά-τοποθέτηση-ταίριασμα της LCD σε κορζίνα. (μέτρηση διαστάσεων, χρήση αυτοκόλλητης ταινίας και hot glue):


3. Τοποθέτηση mainboard στην πλάτη της LCD και σύνδεση μεταξύ τους. (πολύυυ hot glue):


4. Δοκιμή λειτουργίας - ρυθμίσεις bios (no power standby timeout) - φόρτωση προγράμματος για slideshow - φόρτωση images+mp3:





5. Σε λειτουργία:

6. Μελλοντικές προσθήκες:
  
   Touchscreen
   Lan/Wifi pcmcia
   IR Remote Control
   Arduino Proximity sensor

Ελπίζω να σας άρεσε η κατασκευή και να σας έδωσε έναυσμα για hacking!


*Σημ.: Αν ακόμη αναρωτιέστε αν στη συγκεκριμένη κατασκευή χρησιμοποιηθήκε Arduino σας πληροφορώ πως όχι αν και αποτελεί μια υπέροχη ιδέα για επέκταση ;)

Πέμπτη 6 Οκτωβρίου 2011

ArduinoGR Android App

Κατεβάστε τώρα την εφαρμογή, σε συσκευή Android, για να ενημερώνεστε με τα τελευταία νέα από το ArduinoGR αλλά και το TheHackerspace.


H εφαρμογή περιλαμβάνει τα rss feed από τις δύο ιστοσελίδες και δίνει τη δυνατότητα στο χρήστη για την προσθήκη custom rss, μέσα από τις ρυθμίσεις :


Διαχείριση Πηγών
 
Προσθήκη Πηγών



Feed Url


http://yourdomain/feed/url

Την εφαρμογή θα τη βρείτε σύντομα και στο Android Market!

Δευτέρα 3 Οκτωβρίου 2011

Arduino Intro Workshop @TheHackerspace

Στο εργαστήριο του TheHackerSpace (TheHacker's Lab) θα γίνει άλλο ένα Workshop με θέμα εισαγωγή στο Arduino. Πρόκειται, για το πρώτο από μια σειρά παρουσιάσεων, που έχουν προγραμματιστεί κι έχουν ως στόχο την προώθηση του Ανοικτού Υλικού αφενός κι αφετέρου τη δημιουργία κλίματος συνεργασίας με ανθρώπους που έχουν ήδη, ή θα 'θελαν, ν' ασχοληθούν με projects βασισμένα στο Arduino.



Οπότε, όσοι πιστοί προσέλθετε!

Κυριακή 25 Σεπτεμβρίου 2011

Open Source Hardware (OSHW) Definition 1.0 Greek Translation

Πριν λίγες μέρες ξεκίνησα μια προσπάθεια για τη μετάφραση, στα Ελληνικά, του Ορισμού για το Ανοικτό Υλικό (Open Source Hardware Definition 1.0), όπως αυτός έχει δημιουργηθεί και συνεχώς εμπλουτίζεται από εθελοντές του Open Source από όλο τον κόσμο. Η μετάφραση αυτή έχει ανέβει στον αντίστοιχο σύνδεσμο του FreedomDefined.org και είναι είναι σίγουρο ότι απαιτούνται αλλαγές και διορθώσεις. Παρολαυτά είναι μια αρχή.

Η κοινότητα του Ανοικτού Υλικού που μεγαλώνει πολύ γρήγορα, έδωσε βροντερό παρόν και στο Open Hardware Summit 2011 που διεξήχθει στην Νέα Υόρκη, αλλά και στην έκθεση Makerfaire.

Μερικά βίντεο από τις παραπάνω εκδηλώσεις :



Πέμπτη 21 Ιουλίου 2011

Multi-factor Authentication System

Στα πλαίσια του workshop θα ήθελα να καταγράψω, σε βήματα, κάποια βασικά σχετικά με τη σχεδίαση και την κατασκευή του hw αλλά και του sw.

Καταρχήν, να αναφέρουμε ότι για true MFA χρειάζεται να υλοποιούμε περισσότερες από 2 μεθόδους αυθεντικοποίησης (πχ κωδικός+rfid+αποτύπωμα, κωδικός+μαγ. κάρτα+φωνή κοκ). Στην κατασκευή μας επιλέξαμε τις εξής 3 μεθόδους :

Βήμα 1: επιλογή μεθόδων αυθεντικοποίησης:

1. Κωδικός
2. Κάρτα RFID
3. Φωνή

Αφού διαλέξαμε τις μεθόδους, τώρα θα πρέπει να σκεφτούμε με ποιον τρόπο θα τις εφαρμόσουμε πάνω σε Arduino.

Βήμα 2: επιλογή κατάλληλων arduino shields/modules

1. Keypad module (πληκτρολόγιο σε 4x3 διάταξη)
2. RFID sensor + breakout w/ usb reader (ο αισθ. RFID συνδέεται μέσω ενός breakout το οποίο εκτός του ότι παρέχει τη σύνδεση του αισθ. με το arduino rx/gnd/vcc, παρέχει επίσης και δυνατότητα σύνδεσης μέσω usb απευθείας σε η/υ γιατί περιλαμβάνει κι ένα ftdi chip)
3. Voice Module (αυτό είναι αρκετά δοκιμασμένο module με δυνατότητες voice recognition on-chip με δικό του πρωτόκολλο σειριακής επικοινωνίας με τον atmel)

Ειδικότερα για τις συνδεσμολογίες Arduino <-> shields

Βήμα 3: συνδεσμολογία

i. Keypad


7 arduino digital pins input only


ii. RFID

1 arduino digital pin input only (+2 power vcc/gnd)

iii. Voice

2 arduino digital pins rx/tx (+2 vcc/gnd , +2 mic)


Αρχικά, δε χρειάζεται να συνδεθούν όλα μαζί με το arduino. Μπορούμε να τα συνδέουμε και να τα δοκιμάζουμε ένα-ένα τη φορά και στο τέλος όλα μαζί. Σε αυτό μας βοηθάει και η ίδια μοντελοποίηση της βασικής λειτουργίας του συστήματος που γίνεται με χρήση FSM (Finite States Machine).

Βήμα 4: μοντελοποίηση

Κάθε μέθοδος αυθεντικοποίησης, αποτελεί State μέσα στον κώδικα. Συνολικά υπάρχουν 3 States τα οποία το καθένα σε βρόχο υλοποιεί την αυθεντικοποίηση, υπάρχει μέθοδος μετάβασης, όταν προκύπτει επιτυχής αυθεντικοποίηση, από ένα State στο επόμενο. Όταν ολοκληρωθούν 3 επιτυχή State τότε υπάρχει έξοδος από το FSM σε μια "εξουσιοδοτημένη λειτουργία" εν προκειμένω κάνουμε HIGH το Led_pin ;) Η παρακάτω απεικόνιση βοηθάσει καλύτερα στην κατανόηση του FSM :


Στα προαπαιτούμενα για την υλοποίηση περιλαμβάνονται και οι απαραίτητες βιβλιοθήκες για την χρήση/επικοινωνία των shields.

Βήμα 5: βιβλιοθήκες

i. keypad.h -> Περιέχει αντιστοιχήσεις μεταξύ input voltage levels <-> πλήκτρα
ii. vrobot_protocol.h -> περιέχει την υλοποίηση των εντολών που ανταλλάσει το arduino με το voice module μέσω μιας custom κωδικοποίησης
iii. pitches.h -> Περιέχει αντιστοιχήσεις μεταξύ pwm levels <-> νότες
iv. NewSoftSerial.h -> Serial επικοινωνία σε χρήση για το RFID sensor
v. FiniteStateMachine.h -> Υλοποίηση των function state(), transitionTo(), update() που αναφέρονται στον ορισμό και τη μετάβαση των State αντίστοιχα

Βήμα 6: Δημιουργία, για το κάθε State, ενός ή περισσοτέρων string που θα ελέγχονται ανάλογα πχ. για το keypad ένα string με τον κωδικό, για το RFID ένα string με το επιτρεπτό tag και για το Voice module το command επιβεβαίωσης του σωστού.

Βήμα 7: έλεγχος του σωστού/λάθους και αντίστοιχη ηχητική ειδοποίηση προς τον χρήστη

Βήμα 8: υλοποίηση επί μέρους συναρτήσεων (βλ. git repository)

Μερικά σημεία που πρέπει να προσέξουμε:

Βήμα 9: προγραμματισμός voice module

Ειδικότερα για το voice module υπάρχει η διαδικασία προγραμματισμού του, κατά την οποία μέσω μιας εφαρμογής, μας δίνεται η δυνατότητα εγγραφής των ηχητικών μυνημάτων-εντολών (στην embedded flash) που θα αποτελούν τις εξουσιοδοτημένες τιμές πρόσβασης όταν γίνεται ο έλεγχος στο FSM στο arduino. Το voice module, σύμφωνα με το spec. datasheet, έχει 2 mode (normal, programming) όταν βραχυκυκλώνουμε 2 ποδαράκια στο arduino το voice module αλλάζει mode (σύμφωνα με τη library).

Βήμα 10: enter code and then press # on keypad

Κατά την είσοδου του κωδικού λαμβάνουμε υπόψιν την πληκτρολόγηση του # για να σηματοδητήσουμε την εκκίνηση του ελέγχου του κωδικού.

Βήμα 11: RFID buffer clear

Παρατηρήθηκε, επίσης, ότι θα πρέπει να γίνεται καθαρισμός του buffer της σειριακής στο RFID γιατί όταν βρισκόμαστε σε κάποιο State πέρα του RFID, δλδ Keypad ή Voice και καταλάθος "περάσουμε" ένα rfid tag στο sensor, ο κωδικός του tag που αναγνώριζεται, παραμένει στον buffer και όταν το FSM μπει στο RFID State τότε, ελέγχει τον κωδικό που υπάρχει ήδη στο buffer πριν εισάγει το δικό του rfid tag ο χρήστης.

Βήμα 12: δοκιμή συστήματος


Βήμα 13: Future enhancements/ideas ?

Καλη επιτυχία !