Lord Vek
Retro Member
- Joined
- 11 Φεβ 2008
- Μηνύματα
- 565
- Αντιδράσεις
- 638
[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]
Ο δημιουργός του 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]

[SIZE=12pt]Και τα συναρμολόγησα. [/SIZE]Οι συνδέσεις είναι απλές (δείτε και την εικόνα):
Το ένα από τα καλώδια του διακόπτη πηγαίνει στο gnd του Arduino όπως και το μαύρο καλώδιο του ποτενσιόμετρου.
Το δεύτερο καλώδιο του διακόπτη πηγαίνει στο pin 9 του Arduino.
Το κόκκινο καλώδιο του ποτενσιόμετρου πηγαίνει στο Vcc του Arduino
Το μεσαίο καλώδιο του ποτενσιόμετρου (το μπλέ) πηγαίνει στο pin A0 του Arduino.

Το μαύρο καλώδιο του ποτενσιόμετρού πηγσίνει και αυτό σε ένα 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]

Και το πρόγραμμα:
Προβολή συνημμένου arduino_mouse_emulation2.ino
Αν κάποιος θελήσει να το φτιάξει και έχει κάποια απορία, εδώ είμαστε. Δοκιμάστηκε με επιτυχία στο ΜΑΜΕ 0.136 με τα παιχνίδια Arcanoid και Super Breakout.
[SIZE=12pt]Μια μέρα πέφτω πάνω σε αυτό το [/SIZE][SIZE=12pt]video[/SIZE][SIZE=12pt] [/SIZE][SIZE=12pt]στο [/SIZE][SIZE=12pt]Youtube[/SIZE][SIZE=12pt]:[/SIZE]
Ο δημιουργός του 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=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]

[SIZE=12pt]Και τα συναρμολόγησα. [/SIZE]Οι συνδέσεις είναι απλές (δείτε και την εικόνα):
Το ένα από τα καλώδια του διακόπτη πηγαίνει στο gnd του Arduino όπως και το μαύρο καλώδιο του ποτενσιόμετρου.
Το δεύτερο καλώδιο του διακόπτη πηγαίνει στο pin 9 του Arduino.
Το κόκκινο καλώδιο του ποτενσιόμετρου πηγαίνει στο Vcc του Arduino
Το μεσαίο καλώδιο του ποτενσιόμετρου (το μπλέ) πηγαίνει στο pin A0 του Arduino.

Το μαύρο καλώδιο του ποτενσιόμετρού πηγσίνει και αυτό σε ένα 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]

Και το πρόγραμμα:
Προβολή συνημμένου arduino_mouse_emulation2.ino
Αν κάποιος θελήσει να το φτιάξει και έχει κάποια απορία, εδώ είμαστε. Δοκιμάστηκε με επιτυχία στο ΜΑΜΕ 0.136 με τα παιχνίδια Arcanoid και Super Breakout.
Τελευταία επεξεργασία από έναν συντονιστή: