Atari like USB Paddle με Arduino

Lord Vek

Retro Member
Joined
11 Φεβ 2008
Μηνύματα
499
Αντιδράσεις
520
[SIZE=12pt]Λοιπόν, όλα ξεκίνησαν όταν ο [/SIZE][SIZE=12pt]Wally[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]έβαλε ως ένα από τα παιχνίδια της εβδομάδας το [/SIZE][SIZE=12pt]Kaboom[/SIZE][SIZE=12pt]! του [/SIZE][SIZE=12pt]Atari[/SIZE][SIZE=12pt] 2600. Αναφέρθηκε πως αυτό το παιχνίδι για να παιχτεί όπως πρέπει θέλει [/SIZE][SIZE=12pt]paddle[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]όπως του τότε [/SIZE][SIZE=12pt]Atari[/SIZE][SIZE=12pt]. Αλλά πως; Για να τα χρησιμοποιήσουμε στο [/SIZE][SIZE=12pt]PC[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]ή στο [/SIZE][SIZE=12pt]Raspberry[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]Pi[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]όπου τρέχουν οι αντίστοιχοι [/SIZE][SIZE=12pt]emulators[/SIZE][SIZE=12pt], θα πρέπει να έχουν σύνδεση [/SIZE][SIZE=12pt]USB[/SIZE][SIZE=12pt]. Άρα, ακόμη και αν υποθέσουμε ότι έβρισκα μεταχειρισμένα [/SIZE][SIZE=12pt]paddle[/SIZE][SIZE=12pt] σε λογική τιμή, για να μπορέσω να τα χρησιμοποιήσω θα έπρεπε να χρησιμοποιήσω κάποιον αντάπτορα, κάτι που θα ανέβαζε ακόμη περισσότερο το κόστος. Ήξερα πως το ΜΑΜΕ σου επιτρέπει να παίξεις το [/SIZE][SIZE=12pt]Arcanoid[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]και το [/SIZE][SIZE=12pt]Super[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]Breakout[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]με το [/SIZE][SIZE=12pt]mouse[/SIZE][SIZE=12pt], αλλά δεν έχει την ίδια αίσθηση χειρισμού. Αφήνω λοιπόν το ζήτημα αυτό στο πίσω μέρος του μυαλού μου…[/SIZE]

[SIZE=12pt]Μια μέρα πέφτω πάνω σε αυτό το [/SIZE][SIZE=12pt]video[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]στο [/SIZE][SIZE=12pt]Youtube[/SIZE][SIZE=12pt]:[/SIZE]


172239182998


Ο δημιουργός του video χρησιμοποιεί έναν Arduino Pro Micro και ένα αναλογικό μίνι joystick για να κάνει emulating ένα mouse στον Pc. Αναφέρει επίσης πως μπορεί να γίνει και με έναν Arduino Leonardo. Γιατί αυτά τα συγκεκριμένα Arduino; Διότι το chipάκι επικοινωνίας με το Pc που έχουν αυτά τα μοντέλα Arduino αναγνωρίζεται ως συσκευή HID (Human Interface Device), με δυο λόγια ως πληκτρολόγιο ή mouse.

Σε κάποιο σημείο του video, αναφέρεται πως ο Arduino εξομοιώνει ένα mouse διαβάζοντας σε δύο από τις αναλογικές εισόδους του τα δεδομένα από τα δύο ποτενσιόμετρα του joystick, ένα για την κάθετη και ένα για την οριζόντια κίνηση. Και τότε μου κατέβηκε η ΙΔΕΑ… Αν χρησιμοποιήσουμε αντί για το joystick ένα σκέτο ποτενσιόμετρο μόνο για την οριζόντια κίνηση, θα έχουμε πρακτικά ένα mouse που θα κινείται μόνο οριζόντια, δηλαδή ένα USB paddle που θα μπορεί να χρησιμοποιηθεί τουλάχιστον από το ΜΑΜΕ. Εξομοιώνεται επίσης και το αριστερό κουμπί του mouse (αλλά και τα υπόλοιπα αν το θελήσουμε), χρήσιμο για να βγαίνει η μπίλια στο Arcanoid και στο Super Breakout.

[SIZE=12pt]Και ξεκινάμε… Παραγγέλνω από το [/SIZE][SIZE=12pt]Ebay[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]έναν [/SIZE][SIZE=12pt]Arduino[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]Leonardo[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]Pro[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]Micro[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]όπως αυτόν:[/SIZE]

https://www.ebay.com/itm/Leonardo-Pro-Micro-ATmega32U4-5V-Arduino-Bootloader-IDE-1-0-3-replace-Pro-Mini/172239182998?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649

[SIZE=12pt]κόστους 3,33€.[/SIZE]

[SIZE=12pt]Και ένα αναλογικό [/SIZE][SIZE=12pt]joystick[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]για να δω τι τιμή σε [/SIZE][SIZE=12pt]Ohm[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]έχουν τα ποτενσιόμετρά του. Να, σαν αυτό:[/SIZE]

https://www.ebay.com/itm/1Pcs-Breakout-Module-Shield-PS2-Joystick-Game-Controller-For-Arduino-P4P5-SEA/132712247765?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649

[SIZE=12pt]κόστους 0,71€. Σύνολο 4,04€. [/SIZE]

[SIZE=12pt]Πέρασαν περίπου δυο μήνες… Μια μέρα φτάνουν τα αγαθά. Έχοντας στην κατοχή μου πια το αναλογικό [/SIZE][SIZE=12pt]joystick[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]μέτρησα τα ποτενσιόμετρα του και βρήκα πως είναι περίπου 5,20 [/SIZE][SIZE=12pt]Kohm[/SIZE][SIZE=12pt]. Ψάχνω ανάμεσα στις διάφορες παλιατσούρες στα διάφορα εξαρτήματα που έχω στην άκρη και βρήκα ένα ποτενσιόμετρο από κάτι χαλασμένα μεγάφωνα για [/SIZE][SIZE=12pt]Pc[/SIZE][SIZE=12pt], περίπου 10 [/SIZE][SIZE=12pt]Kohm[/SIZE][SIZE=12pt]. Το μόνο μειονέκτημά του είναι πως ο άξονάς του είναι πλαστικός και όχι μεταλλικός όπως θα ήθελα για λόγους μηχανικής αντοχής. Δεν βαριέσαι, είπα ας το δοκιμάσω, και αν δουλέψει όπως πρέπει, παραγγέλνω και έναν μεταλλικό. Συγκέντρωσα λοιπόν τα παρακάτω υλικά:[/SIZE]

[SIZE=12pt]τον [/SIZE][SIZE=12pt]Arduino[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]φυσικά,[/SIZE]

[SIZE=12pt]το ποτενσιόμετρο,[/SIZE]

[SIZE=12pt]ένα [/SIZE][SIZE=12pt]button[/SIZE][SIZE=12pt] που είχα τριγύρω,[/SIZE]

[SIZE=12pt]ένα κομματάκι πλακέτας γενικών κατασκευών για να γίνουν εκεί οι απαραίτητες ενώσεις-διακλαδώσεις και όχι πάνω στον ίδιο τον [/SIZE][SIZE=12pt]Arduino[/SIZE][SIZE=12pt] που είναι μικροσκοπικός (σαν γραμματόσημο είναι),[/SIZE]

[SIZE=12pt]ένα κουτί για κατασκευές που είχα στη διάθεσή μου και που χωράει στην παλάμη μου,[/SIZE]

[SIZE=12pt]ένα πλαστικό [/SIZE][SIZE=12pt]puddle[/SIZE][SIZE=12pt] που είχε δει καλύτερες ημέρες πάνω σε ένα ραδιοκασετόφωνο και που θα βαφτεί ασημί. [/SIZE]

IMG_20190307_140843A.jpg

[SIZE=12pt]Και τα συναρμολόγησα. [/SIZE]Οι συνδέσεις είναι απλές (δείτε και την εικόνα):

Το ένα από τα καλώδια του διακόπτη πηγαίνει στο gnd του Arduino όπως και το μαύρο καλώδιο του ποτενσιόμετρου.

Το δεύτερο καλώδιο του διακόπτη πηγαίνει στο pin 9 του Arduino.

Το κόκκινο καλώδιο του ποτενσιόμετρου πηγαίνει στο Vcc του Arduino

Το μεσαίο καλώδιο του ποτενσιόμετρου (το μπλέ) πηγαίνει στο pin A0 του Arduino.

IMG_20190308_165230.jpg

Το μαύρο καλώδιο του ποτενσιόμετρού πηγσίνει και αυτό σε ένα gnd pin του Arduino (ο δικός μου Arduino είχε τρία gnd pins)

[SIZE=12pt]Αλλά δεν δούλεψε με την πρώτη όπως θα ήθελα (όπως γίνεται συνήθως), διότι με το πρόγραμμα του [/SIZE][SIZE=12pt]learnelectronics[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt](της σελίδας του δημιουργού του [/SIZE][SIZE=12pt]video[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]που είδα) έπρεπε η τιμή που διαβαζόταν από την εντολή [/SIZE][SIZE=12pt]analogRead[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]του [/SIZE][SIZE=12pt]Arduino[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]να μειωθεί, να γίνει 0 και μετά πάλι να αρχίσει να αυξάνεται (ή να μειώνεται, ανάλογα με την κατεύθυνση) πράγμα που το έκανε άχρηστο για τη χρήση [/SIZE][SIZE=12pt]paddle[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]που ήθελα. Για να μην τα πολυλογώ, τελικά μετά από δοκιμές επί δοκιμών στις εντολές σχετικές με τον χειρισμό [/SIZE][SIZE=12pt]mouse[/SIZE][SIZE=12pt] και διάβασμα διαφόρων παραδειγμάτων, κατάφερα επιτέλους να το κάνω να δουλέψει και σας το παρουσιάζω. Μάλλον θα κάνω και μια δημοσίευση στα [/SIZE][SIZE=12pt]Instructables[/SIZE][SIZE=12pt].[/SIZE]

[SIZE=12pt]The finished product:[/SIZE]

IMG_20190309_151135.jpg

Και το πρόγραμμα:

Προβολή συνημμένου arduino_mouse_emulation2.ino

Αν κάποιος θελήσει να το φτιάξει και έχει κάποια απορία, εδώ είμαστε. Δοκιμάστηκε με επιτυχία στο ΜΑΜΕ 0.136 με τα παιχνίδια Arcanoid και Super Breakout.
 
Τελευταία επεξεργασία από έναν συντονιστή:
WOW! Φοβερο! Ειμαι ψιλσκραπας στα ηλεκτρονικα (ανακατευομαι γενικως αλλα ποτε δεν καταφερνω κατι). Θα ακολουθησω τις οδηγιες σου για παρεγγελια και κατασκευη!

Παντα ηθελα ενα paddle στο PC για τα εμουλατορια
 
Εεεμ, και εγώ Wally δεν ξέρω και πολλά από ηλεκτρονικά, μόνο τα βασικά. Ξέρω όμως αρκετά για κανένα μικρής κλίμακας project οπως αυτό. Η ειρωνία είναι πως δεν είμαι και τόσο καλός σε τέτοιου τύπου παιχνίδια όπως το Arcanoid. Απλώς ειχα την ιδέα και...
 
Spinner emulation δηλαδή, πολύ ενδιαφέρον. Ωραίος άρχοντα Βεκ, απλό σχέδιο και αρκετά χρήσιμο. Το  θέμα είναι που θα βρει κανείς ένα knob, έχω ένα παλιό κασετόφωνο αλλά λειτουργεί ακόμη. :D

Για το Arkanoid (και άλλα παρόμοια) είναι ένα από τα παιχνίδια που θέλεις απαραίτητα spinner, διαφορετικά χάνεται η αίσθηση του gameplay και εν'τέλει το παιχνίδι είναι unplayable. Το spinner είναι όντως άλλη φάση και θέλει συνήθεια. Όμως όταν το συνηθίσεις και του πάρεις τον αέρα, το παιχνίδι αλλάζει και το gameplay σου προσφέρει μια μοναδική εμπειρία.
 
Μαριε νομιζω οτι εσυ μπορεις να παρεις το σχεδιο και να κανεις παπαδες
 
telonio, προτού να βρω αυτό το knob, σχεδίαζα να κατασκευάσω ένα είτε από plexi-glass είτε από κόντρα πλακέ θαλάσσης και με την τρύπα στο κέντρο κατά τι μικρότερη από τον άξονα να το σφηνώσω πάνω στον άξονα ή να το κολλήσω με εποξική κόλλα. Χοντρό plexi-glass μπορεί να βρει κανείς σε καμμιά παλιά επίπεδη τηλεόραση.Ή να βρώ κάποιον με 3D printer να μου τυπώσει ένα.
 
Τελευταία επεξεργασία από έναν συντονιστή:
Τέλειο. Ήδη έγινε αγορά του arduino. Θα περιμένω και τη δημοσίευση στo Instructables :D
 
Νάτη! Αλλά στην ουσία είναι η ίδια με την εδώ μόνο που είναι στα αγγλικά:

https://www.instructables.com/id/Atari-Like-USB-Paddle-Using-Arduino-Leonardo/

Η μόνη διαφορά είναι το ότι τους έγραψα για την μεταβλητή cspd στο πρόγραμμα που επηρεάζει την ευαισθησία, και ένα tip για τη ρύθμιση του IDE για τον προγραμματισμό, που παρέλειψα να τα γράψω εδώ. Το είχα καημό τόσα χρόνια να γράψω κι εγώ ένα Instructable αλλά δεν είχα καμμιά καλή ιδέα που να μην την είχε και κάποιος άλλος και να την εφάρμοσε και καλύτερα. Αυτή εδώ η ιδέα μάλλον ήταν πρωτότυπη παγκοσμίως.
 
Και ένα video παίζοντας Super Breakout.


Παρέλειψα να γράψω στο πρώτο post ότι το μαύρο καλώδιο του ποτενσιόμετρού πηγσίνει και αυτό σε ένα gnd pin του Arduino (ο δικός μου Arduino είχε τρία gnd pins). Αλλά δεν μου επιτρέπει πια η σελίδα να κάνω edit. Αν μπορεί κάποιος Admin...
 
Τελευταία επεξεργασία από έναν συντονιστή:
Μπραβο φιλε μου ωραια ιδεα!θα το δοκιμασω μολις παρω τα υλικα!

Ειχα φτιαξει κατι αντιστοιχο με πλακετα απο mouse και εναν rotary encoder αλλα ηταν λιγο πιο αργο στην αποκριση απο οσο ηθελα!
 
Ευχαριστώ vfr400sak. Σε κάποιο ψαξιμο που έκανα βρήκα και εγώ τη λύση με το mouse αλλά μετά από κάποιες δοκιμές με ένα ρουλεμάν και έναν άξονα από ξύλο (!) για να μετακινούν ένα δίσκο μπροστά στον αισθητήρα του mouse (για την ανίχνευση της οριζόντιας κίνησης) κατέληξα ότι η λύση αυτή δεν θα ήταν η καλύτερη δυνατή.
 
Αυτο με το δισκο ουτε εμενα με βολεψε για spin track!εφτιαξα περιστροφικο joystick με δισκο ομως

Για το spin track χρησιμοποιησα τη ροδελα scrolling του mouse!


 
 
Αυτό ακούγεται ενδιαφέρον vfr400sak. Αν μπορείς γράψε λεπτομέρειες. Spin track εννοείς σαν το joystick που είχε πχ το Ikari Warriors;
 
Παρηγγειλα τα εξαρτηματα πλην του pushbutton (μπορω να αγορασω ενα απο αυτα που χρησιμοποιουμε στα racde sticks?) και του κελυφους.

Οταν με το καλο ερθουν, μπορει να χρειαστω βοηθεια.

EDIT:χωραει αραγε σε κελυφος απο 2600 paddle?
 
Τελευταία επεξεργασία από έναν συντονιστή:
Wally, μπορείς να χρησιμοποιήσεις διακόπτη από Arcade, αλλά δεν θα είναι πολύ ψηλός, και κατά συνέπεια η όλη συσκευή θα είναι μεγάλη σε ύψος; Χμμμ, θυμήθηκα και ένα άλλο παιχνίδι που χρησιμοποιεί paddle, το Tempest, το οποίο όντως θα χρειαζόταν button από arcade για λόγους αντοχής. Σίγουρα χωράει σε κέλυφος από paddle του 2600. Ο arduino μοιάζει σε μέγεθος με γραμματόσημο. Δεν ξέρω όμως αφού δεν είχα ποτέ, τι οπή υπάρχει στο πάνω μέρος του κουτιού του 2600 paddle από όπου βγαίνει το χειριστήριο. Ίσως να χρειαστεί, αν η οπή είναι μεγάλη, να χρειαστεί να κολλήσεις κανένα "μπάλωμα" από πλαστικό και μετά να ανοίξεις την οπή για το ποτενσιόμετρο σε αυτό το μπάλωμα.
 
Τελευταία επεξεργασία από έναν συντονιστή:
Ευχαριστω! Θα βαλω κουμπι arcade χαμηλου προφιλ
 
Πάνο κουμπί arcade με χαμηλό προφίλ είναι τα τύπου sanwa (ή και τα κινέζικα που είναι φτηνά και είναι το ίδιο σαν μέγεθος αφού είναι αντίγραφα).
 
Τετοιο σκεφτομαι
 
Μολις μου ηρθαν τα πραγματα.

Τρεις αποριες:

Τι ειναι αυτο το διαφανες που χρησιμοποιεις αντι για κολληση? Θερμοκολληση?

Γιατι το ποντεσιομετρο μου εχει δυο σετ ακιδες?

Πως στηριξες το ποντεσιομετρο πανω στο κουτι?

θανξ

IMG_20190509_192748.jpg
 
Πίσω
Μπλουζα