Κατασκευές

Home Automation and More

Home Automation and More, ή HAM είναι ένα σύστημα αυτοματισμού σπιτιού το οποίο σκαρφιστήκαμε εγώ και ένας συναδελφος εν έτει 2015, χρησιμοποιώντας ασύρματες τεχνολογίες και ηλεκτρονικά ισχύος. Έφτιαξα το μεγαλύτερο κομμάτι του πρώτου πρώτοτυπου και για να το καταφέρω αυτό χρησιμοποίησα έναν μικροελεγκτή AVR, το Module ESP-8266 και ένα κύκλωμα οδήγησης με TRIAC. Το πρωτότυπο είναι επίσης σε θέση να μετρήσει και κατανάλωση ισχύος εκμεταλλευόμενο έναν αισθητήρα ρεύματος και ένα κύκλωμα μέτρησης τάσης το οποίο σχεδίασα.

Το πρώτο protoHAM

Για το κομμάτι του λογισμικού, έγραψα μια ιστοσελίδα σε PHP, μια mobile εφαρμογή με χρήση του πλαισίου Apache Cordova, έναν εξυπηρετητή ελέγχου σε Javascript με nodejs και το λογισμικό του υλικού το υλοποίησα σε C.
Συνέχεια

TichuIQ

Το TichuIQ είναι μια ιστοσελίδα στην οποία κάποιος μπορεί να παίξει τίτσου με άλλους χρήστες online.

Έγω μαζί με έναν φίλο μου το φτιάξαμε το 2012 ως την τελική εργασία για ένα σεμινάριο πάνω στην ανάπτυξη για το web. Έχει επιπλέον χαρακτηριστικά όπως καθολικό και ‘τραπεζιακό’ chat, private τραπέζια, score tracking, ranking και achievements.

Η κύρια σελίδα του TichuIQ

Είναι γραμμένο σε PHP από το μηδέν και χρησιμοποιήσαμε ΜySQL σαν τον εξυπηρετητή της βάσης δεδομένων. Απαιτεί μόνο HTLM5, όποτε είναι θεωρητικά ικανό να τρέξει από παντού. Ουσιαστικά είναι ένα server side game και τρέχει μέχρι και σε φτηνό shared hosting. Όμως, επειδή βασίζεται σε polling για την ανταλλαγή δεδομένων, δεν κάνει καλό scaling. Το 2013 αναγκαστήκαμε να μεταφερθούμε σε dedicated server. Την στιγμή που γράφεται αυτή η ανάρτηση, έχει περίπου 35.000 χρήστες και 100 χρήστες online ανά πάσα στιγμή.

Spirates

Το Spirates είναι ένα PC game το οποίο αναπτύσσω μαζί με έναν συμφοιτητή του από το 2012. Τα γραφικά του παιχνιδιού είναι σε δύο διαστάσεις.

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

Συνέχεια

Αυτόματη Εξαγωγή Ειδήσεων από το twitter – Διπλωματική

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

Απόσπασμα από την διεπαφή χρήστη

Το σύστημα περιλαμβάνει ένα πρόγραμμα για την ανάκτηση και προ-επεξεργασία ιστορικών tweet μέσω του twitter REST API, ένα πρόγραμμα που προ-επεξεργάζεται tweets αποθηκευμένα σε αρχείο (χρήση του ενός από τα δύο προηγούμενα), ένα πρόγραμμα που αναλύει τα προ-επεξεργασμένα tweets και μια ιστοσελίδα που παρουσιάζει τα αποτελέσματα στον χρήστη. Η διεπαφή χρήστη χρησιμοποιείται για την αξιολόγηση των αποτελεσμάτων. Όλα τα προγράμματα είναι υλοποιημένα σε python και η ιστοσελίδα σε HTML + Javascript.

Συνέχεια

Infinite Runner με AVR

Ήθελα να φτιάξω ένα παιχνίδι τύπου Infinite Runner. Αλλά αφού τα infinite runners σε software είναι πολύ mainstream και είχα αρκετά LED, αποφάσισα να φτιάξω έναν σε “hardware”.


Έφτιαξα μια οθόνη χρησιμοποιώντας μωβ LED και για είσοδο έβαλα 3 κουμπιά. Τα δύο κουμπιά είναι για την κίνηση της “κουκίδας” του παίχτη πάνω-κάτω και το τρίτο είναι για reset. Όλα ελέγχονται από ένα μικτροελεγκτή AVR Atmega8.

Οι κανόνες είναι απλοί: Ο παίκτης αναπαρίσταται από μια κουκίδα σε ένα κινούμενο ταμπλό που δημιουργείται δυναμικά και τυχαία. Σύγκρουση της κουκίδας του παίκτη με άλλες κουκίδες κατά μέτωπο σημαίνει τέλος του παιχνιδιού, σύγκρουση όμως με το πλάι είναι έξτρα πόντοι. Όσο αυξάνονται οι πόντοι του παίχτη το παιχνίδι πάει όλο και πιο γρήγορα. Όταν ο παίχτης χάσει το παιχνίδι, παρουσιάζεται η βαθμολογία του με κινούμενο κείμενο.
Συνέχεια

Κουτί εμφάνισης PCB με LED

Χρησιμοποιώντας το “κέλυφος” ενός παλιού scanner, κατασκεύασα ένα κουτί εμφάνισης Printed Circuit Board (PCB) με ultraviolet LED. Έχει μια οθόνη LCD και 4 κουμπιά στο μπροστινό μέρος σαν διεπαφή χρήστη. Ένας μικροελεγκτής AVR “ελέγχει” την διαδικασία εμφάνισης.

Το κουτί με όλα τα LED αναμμένα

Μέσω ρυθμίσεων στο μενού, δίνεται η δυνατότητα να ρυθμιστεί ο χρόνος εμφάνισης, ποια LED να ανάψουν (τα πάνω μισά, τα κάτω μισά ή όλα), το backlight της LCD και εάν θέλουμε να σταματάει η διαδικασία σε περίπτωση που σηκώσουμε το καπάκι. Έχει επίσης 10 θέσεις για αποθήκευση ρυθμίσεων.

Συνέχεια

Τροποποίηση ανεμιστήρα με τηλεκοντρόλ

Τροποποίησα έναν ανεμιστήρα ώστε να μπορώ να τον χειρίζομαι με ένα τηλεχειριστήριο. Με την χρήση του τηλεχειριστηρίου δίνεται η δυνατότητα να ρυθμίζεται και η ταχύτητα του ανεμιστήρα.

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

Συνέχεια