Jump to content
arximidis

The GameBoy Robot

Recommended Posts

Βήμα 5ο  Σύνδεση των πλακετών

Υγεία σε όλους!

Συνεχίζουμε την περιγραφή με τις απαραίτητες καλωδιώσεις. Σε αυτό το μήνυμα θα περιγράψω τον τρόπο που πρέπει να συνδεθεί η πλακέτα εισόδων/εξόδων με την πλακέτα των κινητήρων (motor shield), σε περίπτωση που δεν την φτιάξετε μόνοι σας και την αγοράσετε έτοιμη από το εμπόριο.

Για όλα τα παρακάτω καλό είναι να έχετε μπροστά σας και το σχεδιάγραμμα της συνολικής πλακέτας, όπως αυτό παρουσιάστηκε στο βήμα 3

Λοιπόν... όπως έχω ήδη πει, το "κάτω" μέρος του σχεδιαγράμματος (δηλαδή αυτό που εσωκλείεται στο κόκκινο πλαίσιο) είναι στην ουσία το motor shiled (που στην περίπτωσή μας το έχουμε έτοιμο από το εμπόριο). Το "πάνω" κομμάτι είναι στην ουσία το τμήμα με τις ψηφιακές εξόδους και τις αναλογικές εισόδους. Στην επόμενη εικόνα φαίνεται το "πάνω" μέρος του σχεδιαγράμματος, όπως το υλοποίησα εγώ σε μια διάτρητη πλακλέτα

IMG_20180627_122911.jpg.be8ec7060d5b2b95cb30415a09d85f84.jpg

Παρατηρήστε το ταμπελάκι κάτω δεξιά. Το SC, το SI (που κρύβεται από το πράσινο καλώδιο), το 3V3, το SD και το SO θα πρέπει να συνδεδούν με τα αντίστοιχα SCK,SI,3V3,SD και SO του καλωδίου διασύνδεσης δύο παικτών του GameBoy (GameBoy Link cable), το οποίο και περιγράψαμε στο προηγούμενη βήμα. Το QH που βλέπετε, δεν συνδέεται με το GameBoy, αλλα με την πλακέτα των κινητήρων. Στην ουσία πρόκειται για το Q7S (pin 9) του "πάνω" 74HC595 του σχηματικού διαγράμματος.

Αυτό το QH λοιπόν, θα πρέπει να το συνδέσετε στο pin 8 του motor shield με ένα καλώδιο

Επιπλέον... Είπαμε ότι το SC και το SO συνδέονται στο καλώδιο του GameBoy. Ωστόσο ταυτόχρονα πρέπει να συνδεθούν και στο motor shield (βλέπε σχηματικό). Πιο συγκεκριμένα... Το SC με το pin 4 του motor shield και το SO με το pin 12 αντιστοίχως.

Επίσης θα πρέπει να συνδέσετε το pin 1 (Q1) του "πάνω" 74HC595 (όπως φαινεται στο σχηματικό) με τα pin 3, 5, 6 και 11 του motor shield ταυτόχρονα. Πληροφοριακά, στην προηγούμενη εικόνα, φαίνεται αυτή η σύνδεση με το καλώδιο που είναι λιγο πιο κάτω από το Α7 και λίγο πιο πάνω από το D3 από τα αντίστοιχα ταμπελάκια.

Ακόμη θα πρέπει να συνδέσετε το pin 7 του motor shield με το GND. Μπορείτε να χρησιμοποιήσετε μια από τις υποδοχές GND που έχει ήδη το motor shield

Όλες οι προηγούμενες συνδέσεις φαίνονται στην επόμενη εικόνα

IMG_20180627_122832.jpg.73ae4bc29dab1844068c612b6dd7c015.jpg

Τέλος θα πρεπει να τροφοδοτήσετε και την πλακέτα με τα απαραίτητα 5V, όπως προκύπτουν από την έξοδο του σταθεροποιητή. Αν θυμάστε, στον κατάλογο υλικών είχαμε προσθέσει και έναν σταθεροποιητή τάσης (DC-DC Buck Step Down Converter ). Αυτός συνδέεται απ' ευθείας με τις μπαταρίες στην είσοδο (μέσω φυσικά του διακόπτη on-off) και στην έξοδο παράγει μια 5V σταθερή τάση. Βασικά με ενα μικρό κατσαβίδι εσείς θα ρυθμίσετε τον σταθεροποητή ώστε να βγάζει 5V στην έξοδο, αφού αυτός μπορεί να ρυθμίζεται και να βγάζει μια τάση από κοντά στο μηδέν μέχρι κοντά στην συνολική τάση των μπαταριών. Εμείς θέλουμε μια τάση των 5V,  οπότε και θα πρέπει να τη ρυθμίσετε κατάλληλα (θα χρειαστείτε ένα πολύμετυρο για να μετράτε την τάση εξόδου).

Στην επόμενη εικόνα φαίνεται η εν λόγω σύνδεση. Είναι τα καλώδια κόκκινο και μαύρο που πηγαίνουν στην κλέμα

IMG_20180627_122841.jpg.f673e6ad3f8fb8bb2ef0f81264e97955.jpg

Επίσης, πολύ σημαντικό για την πλακέτα του motor shield (έτσι όπως την έχουμε διασυνδέσει)... Παρατηρήστε το καλώδιο με το κίτρινο θερμοσυστελλόμενο (που μετά στη μια άκρη είναι πραινο και στην άλλη μπλε :) Δεν είχα το ίδιο χρώμα :D ). Με ένα καλώδιο λοιπον, θα πρέπει να συνδέσετε το έναν ακροδέκτη (αυτόν που "κοιτάει" προς την κλέμα) του PWR jumper, με το 5V pin του motor shield (είναι το τρίτο κατα σειρά κοιτώντας από την πλευρά που βρίσκεται η κλέμα)

Τέλος το μωβ καλώδιο που φαίνεται στην εικόνα συνδέεται στο GND της πλακέτας και θα πρέπει επίσης να συνδεθεί με το GND του καλωδίου του GameBoy ώστε να υπάρχει κοινή γείωση. Η πλακέτα εισόδων/εξόδων πρέπει να έχει και αυτή κοινή γείωση, αλλά δεν χρειάζεται έξτρα καλώδιο, αφού ούτως ή άλλως θα πρέπει και αυτήν να την τροφοδοτήσετε απ' ευθέιας με 5V από την έξοδο του σταθεροποιητή, όπως κάνατε και με το motor shield

Και μια συνολική εικόνα των συνδέσεων

IMG_20180627_122812.thumb.jpg.fa3bea286893f841eef1808986e4fc97.jpg

 

 

Edited by arximidis
  • Like 3

Share this post


Link to post
Share on other sites
13 hours ago, Kambia said:

Όμορφα και νοικοκυρεμένα :D

Εννοείται 😄

Βέβαια αν σου δείξω φωτογραφία από το εργαστήριο, θα απογοητευτείς 😛

  • Like 1

Share this post


Link to post
Share on other sites

Βήμα 6ο  Τοποθετώντας το GameBoy στο ρομπότ

Ένα θετικό σημείο της κατασκευής είναι ότι ΔΕΝ χρειάζεται να επέμβετε ή να "πειράξετε" το GameBoy, που θα μπορούσε να οδηγήσει σε πιθανή καταστροφή του. Ευτυχώς το GameBoy σας ΔΕΝ κινδυνεύει 🤗

Ο λόγος πολύ απλός... Τα μόνα που χρειάζονται για την τοποθέτηση είναι αυτοκόλλητα βέλκρο

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

Αν όμως πάλι για κάποιο λόγο μετανιώσετε και δε θέλετε να χρησιμοποιήσετε το GameBoy στην κατασκευή, απλά ξεκολλάτε τα βέλκρο και ούτε γάτα ούτε ζημιά 😉

 

IMG_20180627_123717.jpg.099179ad4459fb9d9bb3f42567cdb269.jpg

 

IMG_20180627_123543.jpg.18b0a984c25b556ded1dcb7e501c5870.jpg

  • Like 2

Share this post


Link to post
Share on other sites

Βήμα 7ο  Το Mini SD Flash  SuperCard Cartridge Adapter για το GBA

Φτάσαμε στο τελευταίο βήμα της κατασκευής πριν ξεκινήσουμε τον προγραμμαρισμό (έχει μερικά πραγματάκια να κάνουμε ακόμη μέχρι να προγραμματίσουμε το ρομπότ)

Πρόκειται για ένα cartridge  για το GameBoy Advance που σας επιτρέπει να φορτώνετε roms παιχνιδιών από μια SD κάρτα. Έτσι αν έχετε αρκετά roms, τότε μπορείτε να τα αποθηκεύσετε στην sd κάρτα και με αυτόν τον τρόπο να γλυτώνετε να κουβαλέτε όλες αυτές τις ξεχωριστές "κασέτες"  των τίτλων που έχετε για το GameBoy Adcance ή ακόμη και για το GameBoy. Εμείς βέβαια το cartridge αυτό θα το χρειαστούμε για να αποθηκεύουμε και να φορτώνουμε το δικό μας κώδικα που θα γράφουμε για το ρομπότ.

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

Λίγη προσοχή χρειάζεται στην SD κάρτα που θα επιλέξετε για το cartridge (αφού αυτό έρχεται χωρίς αυτήν). Γενικά υποστηρίζει κάρτες μέχρι 2GB (προφανώς δυσεύρετες, αλλά υπάρχουν στο eBay), την οποία και πρέπει να διαμορφώσετε σε FAT (δηλαδή FAT16, όχι FAT32 και φυσικά με την καμία σε NTFS), αλλιώς δε θα μπορέσει να τη διαβάσει. Επίσης η κάρτα δεν θα πρέπει να είναι και πολύ γρήγορη γιατί πάλι θα έχετε πρόβλημα. Εγώ για παράδειγμα έχω μια sd 1GB και παρόλο που την διαμόρφωσα σε FAT, δεν την αναγνωρίζει γιατί είναι πιο καινούργια

 

IMG_20180627_123634.jpg.4859c43784997d4044640507f9ccb155.jpg

 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Βήμα 8ο   Ο προγραμματισμός. Το DevKit Advance

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

Για να μπορέσουμε όμως να γράψουμε τον κώδικα (μια διαδικασία για την οποία φυσικά χρησιμοποιούμε τον υπολογιστή μας 😛 ), θα χρειαστεί να εγκαταστήσουμε πρώτα όλα τα απαραίτητα προγράμματα. Αυτό ακριβώς θα ξεκινήσω να περιγράφω στη συνέχεια

Quote

Επειδή τα αρχεία είναι συμπιεσμένα σε μορφή zip, θα χρειατεί ένα πρόγραμμα που να μπορεί να τα αποσυμπιέζει. Ένα τέτοιο δωρεάν πρόγραμμα είναι το 7-zip, το οποίο και μπορείτε να το κατεβάσετε από εδώ: http://www.7-zip.org/download.html

 

Το βασικό εργαλείο που χρειάζεται για να προγραμματίζουμε το GameBoy (και άρα το ρομπότ ) είναι το DevKit Advance.


DevKit Advance

Επισκεφθείτε τη σελίδα  http://devkitadv.sourceforge.net/ και κάντε κλίκ στο download. Θα σας μεταφέρει στη σελίδα sourceforge, από όπου μπορείτε να καταβέσετε το πρόγραμμα. Εκεί κάντε κλικ στο Windows και μετά στο Release 5 (Beta 3). Κατεβάστε όλα τα αρχεία ζιπ που θα βρείτε εκεί (Σημ: απ' ευθείας link:  https://sourceforge.net/projects/devkitadv/files/...)


Εγκατάσταση του DevKit Advance

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

  1. Δημιουργείστε έναν κατάλογο, κάτω από τον προγονικό κατάλογο C:\ του σκληρού σας δίσκου, και ονομάστε τον π.χ. files, όπως φαίνεται και στην εικόνα (Μπορείτε να του δώσετε και διαφορετικό όνομα, ωστόσο δε θα πρέπει να περιέχει κενά)FW0PJL3JCGK7O7H.LARGE.thumb.jpg.ce46b3b7219c5b1dd0cda72551cc8897.jpg
  2. Αντιγράψτε όλα τα αρχεία zip που κατεβάσατε μέσα στο φάκελο που δημιουργήσατε στο προηγούμενο βήμαFDM78INJCGK7O7J.LARGE.thumb.jpg.292e4807e8b0a1859b7e11b0594d4d5d.jpg
  3. Κάντε δεξί κλικ στο πρώτο αρχείο zip και επιλέξτε 7-zip -> Extract here, όπως φαίνεται στην εικόναFCQJ7V2JCGK7O7K.LARGE.thumb.jpg.89fbd4a566a07e643e55534b6211d9b5.jpg
  4. Κάντε ακριβώς το ίδιο και για όλα τα zip αρχεία στον κατάλογο. Όταν εμφανιστεί ένα παράθυρο που να γράφει Confirm File Replace, επιλέξτε Yes to All  για να αντικαταστήσετε όλα τα αρχεία με τις καινούργιες εκδόσειςFU5SJR2JCGK7O7L.LARGE.thumb.jpg.4284817f988c893989f0e9b42f2577b5.jpg
  5. Με την ολοκλήρωση της αποσυμπίεσης όλων των αρχείων θα δημιουργηθεί ένας καινούργιος φάκελος με το όνομα devkitadv-r5-beta-3. Τώρα μπορείτε να διαγράψετε όλα τα zip αρχεία και να μετονομάσετε τον φάκελο που δημιουργήθηκε σε devkitadv, όπως φαίνεται και στην εικόναFRYB0Y9JCGK7O7N.LARGE.thumb.jpg.e06c18fa1cfd4548add691f04299f39c.jpgFCY2ZUOJCGK7O7O.LARGE.thumb.jpg.00150c1ba0dcfecfc3adff4181e1548b.jpg

 

Αυτό ήταν όλο! Πλέον το devkit Advance είναι εγκατεστημένο στον υπολογιστή σας

FOD8IH5JCGK7O7P.LARGE.thumb.jpg.41b242ca736b7c25827106f1eace293c.jpg

Edited by arximidis
  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

Βήμα 9ο ( προαιρετικό )  VisualBoyAdvance Emulator

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

 

Εγκατάσταση

Κατευθυνθείτε στη διεύθυνση  https://sourceforge.net/projects/vba/ και απλά πατήστε το Download. Αφού το κατεβάσετε μπορείτε να το αποσυμπιέσετε οπουδήποτε θέλετε στον υπολογιστή σας, αφού το πρόγραμμα δεν απαιτεί κάποια εγκατάσταση

Στην δική μου περίπτωση απλά αντέγραψα το zip αρχείο στον κατάλογο C:\files (που δημιουργτήσαμε στο προηγούμενο βήμα) και μετά το αποσυμπίσεσα με το 7zip, επιλέγοντας extract to VisualBoyAdvance-1.7.2, όπως φαίνεται στις φωτογραφίες. Δεν επέλεξα το "extract here" γιατί σε αυτήν την περίπτωση θα αποσυμπίεζε όλα τα περιεχόμενα αρχεία απ' ευθείας στον κατάλογο C:\files και δε θα δημιουργούσε έναν ξεχωριστό κατάλογο.

FXBV80XJCKUI3HK.LARGE.thumb.jpg.184f305d1c08eb8cfa77b20045eb2178.jpg

FOLXD57JCKUI3HM.LARGE.thumb.jpg.d9e1f588b64b388f83afff4b1cf6023f.jpg

FW2RXPFJCKUI3HP.LARGE.thumb.jpg.b670d8bc3d7352972938b64ddefc71ae.jpg

 

Edited by arximidis
  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

Βήμα 10ο To Gbafix.c

Ένα πράγμα που θα διαπιστώσετε αν αποφασίσετε να γράψετε το δικό σας κώδικα για το GameBoy Αdvance είναι ότι, ενώ το πρόγραμμά σας θα εκτελείται ωραία και καλά στον εξομοιωτή, όταν θα προσπαθήσετε να το τρέξετε στο πραγματικό υλικό (στο GameBoy δηλαδή), αυτό δε θα φορτώνει. Για να μπορέσετε λοιπόν να τρέξετε το πρόγραμμά σας στο GameBoy, θα πρέπει να διορθώσετε το rom που προκύπτει από τη μεταγλώττιση του κώδικα με το devkit Advance. Αυτό μπορεί να γίνει με ένα εργαλείο που λέγεται Gbafix (DevkitPro GBA ROM fix utility). Το πρόβλημα είναι ότι θα το βρείτε σε μορφή πηγαίου κώδικα, που σημαίνει, με τη σειρά του, ότι θα πρέπει πρώτα να το μεταγλωττίσετε (compile). Ευτυχώς δεν είναι δύσκολο. Τη διαδικασία θα σας την περιγράψω με λεπτομέρειες στο επόμενο βήμα, αφού στην περίπτωση που χρησιμοποιείτε τα Windows θα πρέπει πρώτα να εγκαταστήσετε τον gcc

Για την ώρα θα πρέπει να κατεβάσετε τον πηγαίο κώδικα του Gbafix

Κατευθυνθείτε στη σελίδα του github https://github.com/devkitPro/gba-tools... και κάντι κλικ στο κουμπί raw. Αντιγράψτε τον κώδικα και επικολλήστε τον στο σημειωματάριο (notepad) των Windows. Στη συνέχεια αποθηκεύστε το αρχείο με το όνομα gbafix.c  (Σημ: Μην ξεχάσετε να αλλάξετε το πεδίο "Αποθήκευση ως" από "έγγραφα κειμένου (*.txt)" σε "όλα τα αρχεία (*.*)", διαφορετικά το αρχείο θα σωθεί ως gbafix.c.txt, που προφανώς δε θέλουμε )

Edited by arximidis
  • Thanks 2

Share this post


Link to post
Share on other sites

Βήμα 11ο Μεταγλωττίζοντας το gbafix.c

Προκειμένου να μεταγλωττίσουμε τον πηγαίο κώδικα του gbafix.c σε εκτελέσιμη μορφή, θα χρειαστούμε φυσικά τον κατάλληλο compiler. Στη δική μας περίπτωση είναι ο gcc. Στο Linux είναι προεγκατεστημένος και δεν χρειάζεται να κάνουμε τίποτα επιπλέον. Στα Windows όμως θα πρέπει να τον εγκαταστήσουμε. Η διαδικασία ευτυχώς δεν είναι δύσκολη και την περιγράφω στη συνέχεια

Εγκαθιστώντας το TDM-GCC

Επισκεφθείτε τη σελίδα http://tdm-gcc.tdragon.net/download και από τη λίστα installers κάντε κλικ στην τελευταία 32bit έκδοση του tdm-gcc. Στη δική μου περίπτωση ήταν η tdm-gcc-5.1.0-3.exe. Αυτό θα σας κατευθύνει στην αντίστοιχη σελίδα sourceforge, ώστε να το κατεβάσετε. Μόλις ολοκληρωθεί το κατέβασμα, κάντε διπλό κλικ στο εκτελέσιμο αρχείο που κατεβάσατε, ώστε να ξεκινήσει η διαδικασία της εγκατάστασης. Ακολουθείστε τα επόμενα βήματα

Βήμα 1ο:  Στο αρχικό παράθυρο που θα εμφανιστεί κάντε κλικ στο Create, ώστε να δημιουργήσετε μια καινούργια εγκατάσταση του tdm-gcc. Αφήστε την επιλογή check for updated files on the TDM-GCC server, τσεκαρισμένη (βεβιαωθείτε ότι είστε συνδεδεμένοι στο διαδίκτυο).

test1.png.7746f2a76cd39d9e809dad0893e78844.png

Βήμα 2ο:  Επιλέξτε την έκδοση MinGW/TDM (32bit) και πατήστε το Next. Διαβάστε την άδεια και μετά ξανά κλικ στο Next

test2.png.fa6efd81690af1b78312a1ef174fccab.png

Βήμα 3ο:  Επιλέξτε τον φάκελο προορισμού. Μπορείτε να αφήσετε τον προεπιλεγμένο ή να φτιάξετε έναν καινούργιο. Στη δική μου περίπτωση επέλεξα φάκελο προορισμού το c:\files\TDM-GCC-32. Γενικά αποφύγετε έναν φάκελο προορισμού που να περιέχει κενά στο όνομα. πατήστε το Next

test3.png.d6d28856007259f40d1013345d792d98.png

Βήμα 4ο:  Αφήστε τον επιλεγμένο εξ' ορισμού καθρέπτη (Sourceforge). Κλικ στο Next

test4.png.c5a636483a1d68ef95537236755e4ee4.png

Βήμα 5ο:  Αφήστε την προτιμώμενη επιλογή (TDM-GCC recommended, C/C++), και κάντε κλικ στο install

test5.png.8209245e836e7620b79d38a96134d846.png

Βήμα 6ο. Μολις ολοκληρωθεί η εγκατάσταση πατήστε το Next και μετά το finish για να κλείσετε το πρόγραμμα. Είναι σημαντικό να κάνετε επανεκκίνηση στον υπολογιστή σας για να ολοκληρωθεί η διαδικασία με επιτυχία

 

Δοκιμάζοντας ότι η εγκατάσταση του compiler έγινε σωστά

Μετά την επανεκκίνηση του υπολογιστή καλό είναι να δοκιμάσετε ότι το tdm-gcc έχει εγκατασταθεί με επιτυχία στον υπολογιστή σας. Για να το κάνετε αυτό θα χρειαστεί η κονσόλα των Windows (command prompt). Πατήστε το start button και στην αναζήτηση γράψτε cmd. Στη λίστα θα εμφανιστεί το cmd.exe. Kάντε κλικ σε αυτό. Μολίς φορτώσει η κονσόλα, γράψτε gcc - v και πατήστε το enter. Αν δείτε να εμφανίζεται ένα μήνυμα που να σας πληροφορεί για την έκδοση του compiler, τότε όλα πήγαν καλά

Edited by arximidis
  • Like 1

Share this post


Link to post
Share on other sites

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

You need to be a member in order to leave a comment

Δημιουργία λογαριασμού

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×