Google+

Κυριακή 12 Αυγούστου 2012

Nanode feed to Cosm

To Nanode είναι ένα Arduino clone με ενσωματωμένες δυνατότητες διασύνδεσης με το web και το project το οποίο κέρδισε την πρώτη θέση, σε ψηφοφορία, για το καλύτερο έργο IoT του 2011 (best open-source IoT project).



Αν το προμηθευτείς σε kit, υπάρχουν οδηγίες βήμα-βήμα για το πως να το συναρμολογήσεις και να δοκιμάσεις την καλή λειτουργία του οι οποίες είναι τόσο αναλυτικές, ώστε ακόμη και ένας αρχάριος δε θα χρειαστεί πάνω από 1 ώρα για να το κατασκευάσει! Καλή ιδέα για soldering workshop btw ;)

Υπάρχουν πολλές εφαρμογές για έλεγχο συσκευών από web interface απομακρυσμένα, όπως και παροχή δεδομένων από διάφορους αισθητήρες στον φυσικό κόσμο προς το web αντίστοιχα. Με αυτό το sketch δημιουργώ ένα demo για την τροφοδότηση δεδομένων από έναν εικονικό αισθητήρα συνδεδεμένο στο Nanode προς μια υπηρεσία web αυτή της Cosm (πρώην Pachube). Ουσιαστικά είναι ένας client για την υπηρεσία του cosm στην οποία θα πρέπει πρώτα να γίνει εγγραφή και να δημιουργηθεί ένα feed στο οποίο θα τροφοδοτούνται τα δεδομένα από το Nanode.

Οδηγίες για δημιουργία λογαριασμού στο Cosm, δημιουργία API key και feed εδώ.

Live Datastream από το Nanode:


Τέλος, το σύνολο των δεδομένων του feed στην υπηρεσία Cosm εδώ.

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

Κυριακή 12 Φεβρουαρίου 2012

Arduino and Ethernet - Building the Internet of Things (IoT)

Τα περισσότερα ethernet shield που υπάρχουν για Arduino είναι βασισμένα στο W5100  της WIZnet και το ENC28J60 της Microchip. Το τελευταίο κυκλοφορεί και σε module το οποίο χρησιμοποιεί για επικοινωνία το SPI:

Για τη σύνδεση με το Arduino χρειάζονται τα εξής pin:
GND
VCC
SO (Serial data out)
SI (Serial data in)
SCLK (Serial data clock)
CS (Chip select)
INT (Interrupt)

Η συμβατή library για το module είναι η Ethershield. (full tcp/ip stack, www server, dhcp)

Η σύνδεση ενός Arduino στο internet προσφέρει έδαφος για νέα project που χαράσουν το δρόμο για το Internet of Things.

Εδώ, μπορείτε να κατεβάσετε ένα κομμάτι κώδικα για το Arduino, βασισμένο στο demo του @denhart, με το οποίο αναβοσβήνουμε ένα led μέσω μιας σελίδας στον ενσωματωμένο web server. 

Μπορείτε να το δοκιμάσετε στο δικό μου test board : live video για να παρακολουθείτε το LED και η σελίδα για τον έλεγχό του.

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

Παρασκευή 20 Ιανουαρίου 2012

Old Joystick Hack for Gameduino



Σε συνέχεια αυτού του post, κι εκεί που ήμουν έτοιμος να αγοράσω το joystick shield της sparkfun για να το συνδέσω με το gameduino, θυμήθηκα και "ξέθαψα" ένα gamepad που είχα για pc (PS like) και είναι σαφώς καλύτερο από αυτό της sparkfun για τρεις λόγους, 1ον ήμουν σίγουρος ότι θα ικανοποιούσε ένα pro-gamer σαν τον ανηψιό μου 2ον ένα καλοφτιαγμένο joystick πάντα βοηθάει το Human-Computer Interaction και 3ον θα προσέφερε σε μένα άλλη μια ευκαιρία για hack ;)



Για τη σχεδίαση, η λογική στηρίζεται στη χρήση των πλήκτρων του gamepad ως διακόπτες, για τη σύνδεση μεταξύ της γείωσης (gnd) και εσωτερικών pull-up resistor στα pin του Arduino.


Στην πράξη, τα βήματα που ακολούθησα για την κατασκευή είναι τα εξής

1. Αποσυναρμολόγηση, αποσύνδεση pcb, απογύμνωση καλωδίων



Χρησιμοποίησα το ίδιο καλώδιο που είχε εσωτερικά 7 καλωδιάκια και τα οποία έφταναν για τα βασικά (up, down, left, right, fire, start, gnd).

2. Κόλληση καλωδίων στο pcb




Ευτυχώς, υπήρχε κοινή γείωση (GND) για όλους τους διακόπτες όπου κόλλησα 1 καλώδιο (κάτω αριστερά), τα υπόλοιπα καλώδια κολλήθηκαν σε κάθε διακόπτη ξεχωριστά.


3. Απογύμνωση επαφών καλωδίων για σύνδεση pin headers


4. Σύνδεση με το Arduino

 
Για το παιχνίδι Asteroids ο κώδικας χρησιμοποιεί 4 digital pin (fire, thrust, left, right) κατ' επέκταση 4 + 1(gnd) καλώδια συνδέονται από το gamepad. Στον ίδιο κώδικα παρατηρείται ότι τα digitalpin ενεργοποιούνται όταν είναι low :
 
if (!digitalRead(5))
  r |= CONTROL_DOWN; 

Αν συνέβαινε το αντίθετο θα έπρεπε να υλοποιηθεί διάταξη με pull-down resistor ή να αλλάζε ο κώδικας ;)

5. Showtime !!!

  



Σχετικές κατασκευές στο instructables και artlum.

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

Σάββατο 24 Δεκεμβρίου 2011

Merry Christmas

Ευχές για Καλά Χριστούγεννα & Καλή Πρωτοχρονιά, με το καλό να έρθει το 2012 και να μας φέρει πολλές φρέσκιες ιδέες για Hacking με Arduino.

Σάββατο 3 Δεκεμβρίου 2011

Arduino GR Android App Updated

Κατεβάστε το νέο update της εφαρμογής για το Android κινητό σας, για να είστε ενήμεροι παντού με τις εξελίξεις σε ArduinoGR και TheHackerspace!

Παρασκευή 2 Δεκεμβρίου 2011

MODKIT - Bring the Cloud to your IDE for Arduino


Το MODKIT αποτελεί ένα πολλά υποσχόμενο περιβάλλον ανάπτυξης (IDE) για Arduino που προσφέρει πολλές δυνατότητες. Όσοι σκέφτηκαν ότι πρόκειται για κάτι ανάλογο του Eclipse ή άλλα γνωστά IDE μάλλον βιάστηκαν, γιατί το Μodkit είναι βασισμένο στο περιβάλλον ανάπτυξης της γλώσσας προγραμματισμού Scratch*.


Έτοιμα γραφικά code blocks, που αντιστοιχούν στις γνωστές προγραμματιστικές δομές (βρόχος, συνθήκη κτλ) συνδυάζονται σε ένα περιβάλλον που βρίσκεται online μέσω web.

Στο ίδιο γραφικό περιβάλλον επιλέγουμε την πλατφόρμα Arduino για την οποία αναπτύσσουμε, δηλώνοντας τις αντιστοιχήσεις pin (input/output).


Στον υπολογιστή μας υπάρχει το widget με το οποίο μεταφορτώνουμε τον κώδικα στο Arduino μέσω usb και της σύνδεσης web.

Ένα άλλο πολύ καλό χαρακτηριστικό είναι η δυνατότητα προσθήκης γραφικών shield (Alpha Club) πράγμα που σε απαλάσσει από την αγορά των ίδιων των shield, ειδικά όταν πρόκειται να χρησιμοποιηθεί για εκπαιδευτικούς σκοπούς πχ σε σχολεία όπου η αγορά του hardware ενδεχομένως να είναι δύσκολη.

Το Modkit είναι ακόμη σε beta και το περιβάλλον προσθήκης shield Alpha Club προϋποθέτει εγγραφή του χρήστη με κάποιο κόστος. Τέλος, υπάρχει και δυνατότητα αποθήκευσης του project σε cloud storage repository.

Ενδιαφέρουσα η όλη προσπάθεια που σίγουρα έχει να προσφέρει κάτι νέο!

*Η γλώσσα Scratch αναπτύχθηκε από το MIT και έχει ως στόχο την εκμάθηση προγραμματισμού με την εύκολη δημιουργία διαδραστικών, παιχνιδιών, ιστοριών, μουσικής, τέχνης ακόμη κι από παιδιά προσχολικής ηλικίας.


Κυριακή 27 Νοεμβρίου 2011

Gameduino - Game Adapter for Arduino

Το Gameduino δεν είναι απλά ένα... shield για Arduino. Πρόκειται για ΤΟ shield που πραγματικά ανεβάζει πολλά επίπεδα επάνω τις δυνατότητες του μικροελεγκτή AVR της ATMEL για ένα συγκεκριμένο σκοπό, τη δημιουργία παιχνιδιών!

Spec:
  • Video output is 400x300 pixels in 512 colors
  • All color processed internally at 15-bit precision
  • Compatible with any standard VGA monitor (800x600 @ 72Hz)
  • Background Graphics
    • 512x512 pixel character background
    • 256 characters, each with independent 4 color palette
    • pixel-smooth X-Y wraparound scroll
  • Foreground Graphics
    • each sprite is 16x16 pixels with per-pixel transparency
    • each sprite can use 256, 16 or 4 colors
    • four-way rotate and flip
    • 96 sprites per scan-line, 1536 texels per line
    • pixel-perfect sprite collision detection
  • Audio output is a stereo 12-bit frequency synthesizer
  • 64 Independent Voices 10-8000 Hz
  • Per-Voice Sine Wave or White Noise
  • Sample Playback Channel
Με λίγα λόγια, είναι μια overclocked έκδοση των παλιών 8-bit game-computers (amstrad, spectrum, c64...)  σε μέγεθος σπιρτόκουτου! man i love FPGA-VHDL system design :)

οκ με όλα αυτά τα geek-nerd αλλά πως το "παντρεύουμε" με arduino;

Καταρχήν, συνδέουμε το shield πάνω στο arduino και τροφοδοτούμε με +5V (usb ή external power). Κατεβάζουμε από εδώ τη GD βιβλιοθήκη που περιέχει sample, demo game code sketch για το Arduino IDE. Συνδέουμε μια οθόνη VGA και κάποια ηχεία/ακουστικά στην αντίστοιχη έξοδο του shield και φύγαμε!
 
Όπως προτείνει και ο δημιουργός του, καλό είναι να φορτώσουμε πρώτα το selftest για να δοκιμαστεί το shield:


Δεν αργούμε να δοκιμάσουμε demo για όλες τις δυνατότητες scroll, music και φυσικά game, όπου εκεί υπάρχει το Asteroids. Βέβαια, για να παίξουμε θα χρειαστούμε και ένα joystick είτε σε μορφή έτοιμου shield, είτε από κάποιο old joystick hack.


Η κοινότητα ετοιμάζει παιχνίδια για το Gameduino οπότε, ας τη βοηθήσουμε δημιουργώντας και ένα δικό μας!

Ιδού, και το Game Development Tutorial, Quick Reference Programming Guide, Sprite Library.

Εγώ, πάντως ξεκίνησα ήδη με το Hello world :)

// Gameduino - Hello World

#include 'spi.h'
#include 'gd.h'

void setup() {
  // give time for the gameduino splash screen to be displayed
  delay(2500);
  
  GD.begin();
  
  // load character set
  GD.ascii();
  
  // display the string
  GD.putstr(0, 0, "Hello World");
  
  // set the background colour to green
  unsigned int bg_colour = RGB(0, 255, 0);
  GD.wr16(BG_COLOR, bg_colour);
  
}

void loop() {

}