# Συζήτηση Κυκλωμάτων > Διάφορα Κυκλώματα >  >  Απο αναλογικά ηλεκτρονικά σε ψηφιακά! Κατασκευή midi

## Dbnn

Καλησπέρα σας, ξέρω σας έχω τρελάνει στις ερωτήσεις!!

Θέλω λοιπόν να κατασκευάσω εναν mini dj controller, δεν θέλω να πάρω κάτι έτοιμο, δεν με ενδιαφέρουν τα έτοιμα μιας και έχω 2-3.
Θέλω να κατασκευάσω ένα χειροποίητο καθαρά να βολεύει εμένα και οπτικά και λειτουργικά.

Οι βασικές λειτουργίες θέλω να είναι pitch adjust (με fader), play, cue, seek track, cue 1-2-3, scratch control.
Θα προτιμούσα βέβαια να έχω και οπτική ένδειξη με led.
Όσο για τον μίκτη θα χρησιμοποιήσω εξωτερικό με κάρτα ήχου.
Βασικά θέλω 2 μονάδες που να συνδέεονται με usb (το καθένα ξεχωριστά) και ο υπολογιστής να βλέπει 2 deck αντίστοιχα.
Βρήσκω πολλά σχέδια βασισμένα σε pic και andruino αλλά δεν έχω ασχοληθεί με αυτά και δεν ξέρω τι θα χρειαστώ.
Κώδικα μπορώ να βρώ εναν έτοιμο και να τον φέρω στα μέτρα μου. Είχα κάνει λίγο προγραμματισμό πρίν κάποια χρόνια.
Αλλά τι hardware? τι software? κλπ!
πχ ας πούμε με ένα τέτοιο ανα μονάδα? http://www.acdcshop.gr/developmentki...68.html?page=2
Σε περίπτωση που πάρω το παραπάνω module, το συνδέω περνάω κώδικα και αρχίζω να κουμπώνω τους "διακόπτες"?
Η λογική μου λέει πως όσα input (εντολές) χρειάζομαι, τόσες πρέπει να έχει και ο controller.
Eίναι ηλίθιες ερωτήσεις αλλά θέλω να μάθω τα ψηφιακά και για αυτό σας ρωτάω!

Ήθελα να "σφάξω" ενα πληκτρολόγιο και με το controller να κάνω έτσι δουλειά αλλά δεν βρήσκω πληκτρολόγιο που πάνε καλώδια πάνω στον controller αλλά είναι με pads. Τρέχα γύρευε.

----------


## Dbnn

Και νομίζω βρήκα αυτό που έψαχνα.
Απο ότι κατάλαβα, έχει αναλογικές εισόδους (ποντεσιόμετρα), ψηφιακές εισόδους (εντολές με push on buttons) και μπορεί να προγραμματιστεί εύκολα χωρίς προγραμματιστή, σου δίνει τον driver για να τον βλέπει ο υπολογιστής σαν stand alone midi controller. Και απο τον κώδικα θα μπορέσω να ορίσω εγώ τι θα κάνει το κάθε κουμπί / fader.

http://m.instructables.com/id/USB-MIDI-Controller/

Απο την άλλη βέβαια αν θελήσω κάτι πιο "βαρβάτο" παω στον atmega16 αλλά δεν γνωρίζω αν προγραμματίζεται με τον ίδιο τρόπο και εαν υπάρχει software (driver) για να τον υποστηρίξει.

Τι λέτε εσείς?

----------


## Dbnn

Κανείς να πεί μια γνώμη???

Στο hardware δεν έχω πρόβλημα, βρήκα το pcb, το πρόβλημά μου είναι πως θα γίνει να δει ο υπολογιστής 2 μονάδες atmega328p με ενα usb και όχι δύο. Κάτι σαν master/slave και πως θα γράψω τον κώδικα ή που θα βρώ έτοιμο κώδικα να τον προσαρμόσω.
Θα με βόλευε απίστευτα να έβρησκα ενα πρόγραμμα που θα το έκανε αυτο με κάθε pin ξεχωριστά να λεω οτι εκεί έχεις ποντεσιόμετρο που κάνει αυτό, εκεί έχεις push on button που κάνει αυτό και όχι όπως πχ το atmel studio που σε βάζει να γράψεις όλο τον κώδικα.

----------


## SProg

Δεν καταλαβαινω τι θελεις να κανεις. Εξηγησε τι θες να συνδεσεις στον μΕ , ο μΕ μετα  που θα στελνει πληροφοριες ή τι θα κανει ;

Αν με βοηθησεις να καταλαβω, θα μπορω κατι 99% να σε βοηθησω.

----------


## Dbnn

> Δεν καταλαβαινω τι θελεις να κανεις. Εξηγησε τι θες να συνδεσεις στον μΕ , ο μΕ μετα  που θα στελνει πληροφοριες ή τι θα κανει ;
> 
> Αν με βοηθησεις να καταλαβω, θα μπορω κατι 99% να σε βοηθησω.



θέλω να φτιάξω εναν controller για virtual dj ή για traktor.
Αυτά τα προγράμματα μπορείς να κάνεις mapping τις εντολές πχ το κουμπί Α είναι play, to B είναι το cue κλπ.
Θέλω λοιπόν ένα σύστημα να μπορώ να βάλω 8 push on διακόπτες,2 fader ποντεσιόμετρα να ρυθμίζω pitch κλπ και ενα μοτεράκι και ενα enconder για το jog.

Αλλά όμως εαν γίνεται και τα 2 deck στον controller να καταλήγουν σε μία θύρα USB του υπολογιστή και όχι σε 2 θύρες.
Κάρτα ήχου δεν με επηρεάζει μιας και θα είναι εξωτερική.

----------


## SProg

Το κοιταξα και λιγο στο internet γιατι αν δε δεις ειναι δυσκολο να φανταστεις.

Ολα αυτα που ειπες κουμπια κτλ μπαινουν σε εναν ATmega ή σε ενα Αrduino αν δεν εχεις καλη εμπειρια με μΕ.


Τον 2ο μΕ τον θελεις με τη λογικη οτι καθε deck θα εχει ξεχωριστα κουμπια κτλ ?

----------


## Dbnn

Ακριβώς για αυτό. Ίσως κανει άλλος μΕ με περισσότερες εισόδους αλλά δεν γνωρίζω κάτι παραπανω. Θέλω απλα να το κρατήσω απλο , όχι κάτι σύνθετο για αυτό είπα να πάω σε atmega η andruino.

----------


## Dbnn

Προχώρησα στην αγορά του Arduino Mega2560

οι είσοδοι και οι έξοδοι με καλύπτουν για όλα. Άλλωστε δεν θέλω πολλά πράγματα και πολλά μπλιμπλίκια επάνω.
Και τώρα αρχίζουν τα δύσκολα!
Μόλις παραλάβω ενημερώνω!

----------


## SProg

> Προχώρησα στην αγορά του Arduino Mega2560
> 
> οι είσοδοι και οι έξοδοι με καλύπτουν για όλα. Άλλωστε δεν θέλω πολλά πράγματα και πολλά μπλιμπλίκια επάνω.
> Και τώρα αρχίζουν τα δύσκολα!
> Μόλις παραλάβω ενημερώνω!




Ζητα βρε πριν παραγγειλεις.... εχω να καθονται στο συρταρι 4 x Mega2560 . Ελπιζω να μην εδωσες παραπανω απ οσα πρεπει.
Πιανουν και λιγο 'κ@λους' με τα Capital.

----------


## Dbnn

> Ζητα βρε πριν παραγγειλεις.... εχω να καθονται στο συρταρι 4 x Mega2560 . Ελπιζω να μην εδωσες παραπανω απ οσα πρεπει.
> Πιανουν και λιγο 'κ@λους' με τα Capital.






8 euro μαζί με καλώδιο usb assembled
Να ναι καλά τα βάθη της κίνας!  :Lol:

----------


## SProg

Ωραιος !

----------


## Dbnn

Σάββα κολλάω μόνο στον κώδικα.
Αν έβρησκα ενα πρόγραμμα που να το κάνει κάπως visual, δηλαδή πχ pin13 = led output θα μου ήταν πολύ πιο εύκολο!

----------


## SProg

Τι εννοεις ; Καπου σε εχασα. Συνηθως οταν λεμε Arduino εννοουμε οτι θα γραψουμε σε Wiring, γλωσσα ακρως φιλικη προς το χρηστη αλλα δεν ειναι γλωσσα για επαγγελματικα project.Project δηλαδη που θελεις να ξερεις τι τρεχει στον μΕ εντολη προς εντολη.



int led = 13;




void setup() 
{
  pinMode(led, OUTPUT);           // κάνε το led=pin_13  εξοδο
}


//  ατερμων βροχος
void loop() 
{
  digitalWrite(13, HIGH);    //κανε την εξοδο  led=pin_13   HIGH 
  delay(1000);                  //  περιμενε 1 second 
  digitalWrite(13, LOW);    // κανε την εξοδο  led=pin_13  LOW 
  delay(1000);                 //  περιμενε 1 second 
}

----------


## Gaou

παιδες off topic αλλα επειδη ενδιαφέρομαι για μεγκα dbn Μπορεις να δώσεις συνδεσμο και εσυ σάββα πόσο τα δίνεις εκαστο ?

----------


## Dbnn

> Τι εννοεις ; Καπου σε εχασα. Συνηθως οταν λεμε Arduino εννοουμε οτι θα γραψουμε σε Wiring, γλωσσα ακρως φιλικη προς το χρηστη αλλα δεν ειναι γλωσσα για επαγγελματικα project.Project δηλαδη που θελεις να ξερεις τι τρεχει στον μΕ εντολη προς εντολη.
> 
> 
> 
> int led = 13;
> 
> 
> 
> 
> ...



Επειδή δεν έχω ξαναασχοληθεί με programming για αυτό μπορεί να λεω χαζομάρες. Αλλά θέλω να μάθω γιατί απο ότι βλέπω κάνεις παπάδες!
Εννοώ κάτι σαν το visuino. Δεν ξέρω αν θα κάνει όμως. Θα δείξει!
screenshot-06.jpg





> παιδες off topic αλλα επειδη ενδιαφέρομαι για μεγκα dbn Μπορεις να δώσεις συνδεσμο και εσυ σάββα πόσο τα δίνεις εκαστο ?



Φυσικά φίλε μου ορίστε
http://www.banggood.com/Mega2560-R3-...o-p-73020.html

----------


## SProg

> παιδες off topic αλλα επειδη ενδιαφέρομαι για μεγκα dbn Μπορεις να δώσεις συνδεσμο και εσυ σάββα πόσο τα δίνεις εκαστο ?




Παυλο απο το banggood ειναι τζαμπα, απο εκει σε συμφερει.Γιατι στα φερνουν και στην πορτα.Oυτε μεταφορικα ουτε τιποτα.





Dnbb πως σε λενε στο ονομα; (ακυρο αλλα το εχω απορια)

Οχι δεν χρειαζεσαι Visual κτλ. Παρομοιο ειναι το Proteus. Εαν εχεις εναν παλμογραφο ή analyzer ειναι ευκολο να μπορεις να βεβαιωθεις αν αυτα που κανεις ειναι σωστα.

Ξεκινα με τα παραδειγματα του Arduino.Ειναι τοποθετημενα με σειρα ετσι ωστε να μπεις βημα βημα στη λογικη.


Δες/γραψε/δοκιμασε και θα με θυμηθεις.Και οπου κολλησεις ή εχεις απορια ανεβαζεις κωδικα ή απορια και απανταμε.


Νομιζω προγραμματα σαν αυτο που ανεβασες απλα θα σε καθυστερησουν.

----------


## Dbnn

Δημήτρη με λένε φίλε μου.

Οκ. Μόλις τότε παραλάβω και φτιάξω όλο το hardware θα ενημερώσω κατάλληλα! Σε ευχαριστώ και πάλι!

----------


## Dbnn

Ήρθε!!!!

Ένας θαυμάσιος κλώνος mega 2560!!
Σε 10 μέρες ακριβώς!
Κατεβάζω το atmel studio και κάνω εγκατάσταση αυτή τη στιγμή γιατί το συνδέω μεν αλλά δεν το αναγνωρίζει δε.

----------


## Dbnn

το 1ο πρόβλημα.

Δεν μπορώ να περάσω drivers μέσω .inf
Όλα είναι γραμμένα για 32bit και η καταραμένη M$ δεν με αφήνει με τίποτα να περάσω αρχείο πληροφοριών.

Πώς θα το παρακάμψω αυτό????

Sto atmel studio δεν το βλέπει καν.
Στο adruino το πρόγραμμα το βλέπει στην com 1. αλλά δεν πρέπει να έχει bootloader πάνω και δεν μπορεί να το διαβάσει με τίποτα, ούτε με αφήνει να περάσω bootloader.

----------


## SProg

Αν γραφεις σε Wiring , ασε το Studio6. Δε νομιζω να μην εχεις bootloader.Μαλλον δεν περαστηκαν σωστα οι drivers.


COM1 ; Δε νομιζω να το αναγνωριζει. Και εμενα χωρις να εχω συνδεμενο τιποτα , μου βγαζει το COM1



dasdas.jpggfvc.png

----------


## Dbnn

Εμένα στο adruino 1.6.5 δεν με αφήνει καν να επιλέξω το ports

και στο device manager μου λέει άγνωστη συσκευή και δεν περνάει κανέναν driver γιατί δεν είναι για 64bit το .inf

τρέχω σε 8.1 64bit. μήπως είναι αυτό το πρόβλημα?

----------


## SProg

Δεν ξερω απο 8αρια, ριξε μια ματια εδω.



https://learn.sparkfun.com/tutorials/installing-arduino-ide/windows

----------


## Dbnn

Χωρίς τίτλο.jpg

Σε win7 64bit.
Ενώ βάζω το .inf του mega2560 rev 3

τα νευρα μου κρόσια ε?

----------


## SProg

Αν θυμαμαι τα driver να περνουσε το προγραμμα Arduino IDE . Αν δε βγαλεις ακρη , πες μου το teamviewer σου.

----------


## Dbnn

> Αν θυμαμαι τα driver να περνουσε το προγραμμα Arduino IDE . Αν δε βγαλεις ακρη , πες μου το teamviewer σου.







Σάββα τα έχω δοκιμάσει όλα για όλα. Το πρόβλημα είναι στα 64bit.
Το φορμάτ είναι μονόδρομος. Παλεύω απο τις 10 το βράδυ να απενεργοποιώ ψηφιακές υπογραφές κλπ μαλαkίες της M$ χωρίς αποτέλεσμα.

Άλλωστε και με τα 64bit διαφορά δεν βλέπω. Τα περισσότερα προγράμματά μου 32bit είναι.
Έχω άλλον δίσκο να φορμάρω για 32bit και να κρατήσω αυτόν ως έχει για μετέπειτα.

----------


## SProg

Βαλε Win7 . να τελειωνεις  :Very Happy:

----------


## djsadim

αν είναι κλώνος κοίτα στον πωλητή γιατί ενδέχεται το chip της usb να είναι διαφορετικοί και να χρειάζεσαι άλλους drives

----------


## SProg

Και μενα κλωνοι ειναι ολοι οι Αrduino αλλα τρεχει με τους κλασικους FTDI κτλ

----------


## picdev

είχε βγει ένα driver update στα windows που χάλαγε το usb id των κλώνων ftdi , στην ουσία αχρίστευε το τσιπάκι που ήταν κλώνος
αλλά νομίζω τώρα το έχουν αποσύρει

----------


## Dbnn

> Βαλε Win7 . να τελειωνεις



Τα 7 τα έχω για ψωμοτύρι. Και σε 64μπιτα ομως 7 δεν γίνεται τίποτα. πρέπει να τρέξω 32μπιτα windows.
Δεν υπάρχει κανένας driver να τρέχει σε 64bit.





> αν είναι κλώνος κοίτα στον πωλητή γιατί ενδέχεται το chip της usb να είναι διαφορετικοί και να χρειάζεσαι άλλους drives



Κλώνος είναι αλλά το τσιπάκι είναι το ίδιο με το OEM. Το 1ο πράγμα που τσέκαρα ήταν αυτό.





> Και μενα κλωνοι ειναι ολοι οι Αrduino αλλα τρεχει με τους κλασικους FTDI κτλ



FTDI περνάει αλλά βγάζει σφάλμα ότι δεν μπορεί να ξεκινήσει η συσκευή





> είχε βγει ένα driver update στα windows που χάλαγε το usb id των κλώνων ftdi , στην ουσία αχρίστευε το τσιπάκι που ήταν κλώνος
> αλλά νομίζω τώρα το έχουν αποσύρει



Δεν υπάρχει αυτό το σενάριο, το windows update το έχω αχρηστεύσει απο εποχές που πρωτοβγήκαν τα ΧΡ.
Όποτε έκανε κάποιο update είχα πρόβλημα οπότε ακόμα μέχρι σήμερα το έχω μονίμως κλειστό και να μην ψάχνει ποτέ για λογισμικό εκεί.
Επειδή όμως έχω ολοήμερα μέχρι τετάρτη, μόλις πάρω ρεπό θα φορμάρω τον ένα δίσκο και σας ενημερώνω!

----------


## SProg

Σε Win7 64bit το τρεχω.

Με τους ιδιους driver λειτουργουν ρολοι Jtag AVR(klwnos),Arduino(klwnos),Landtiger (klwnos) .


Θα ψαξω και εγω και επανερχομαι.

----------


## Dbnn

Εγώ αφού κατέβασα το arduino 1.6.5 και το έκανα εγκατάσταση, σύνδεσα το board και όπως είναι φυσικό απο ότι έχω διαβάσει δεν το αναγνωρίζει.

Μέσα στην διαδρομη C:\program files x86\arduino\drivers βρήκα τον φάκελο old arduino drivers και εκεί μέσα είχε της πλακέτας μου. Arduino Mega2560 Rev3

Όταν όμως παω να το κάνω εγκατάσταση μέσω device manager διαλέγω "απο δίσκο" και μου πετάει σφάλμα πως δεν ειναι σχεδιασμένες οι πληροφορίες εγκατάστασης για win x64 και τερματίζει.
με το fdti το περνάει αλλά δεν κάνει εκκίνηση συσκευής.

To τσιπάκι αναφέρει atmel mega 2560 και νομίζω πως είναι γνήσιο, δεν θυμάμαι ακριβώς τον κωδικό γιατί δουλεύω 13 ώρες κάθε μέρα πλέον για λίγο διάστημα ακόμα και είμαι λίγο πηγμένος.

Εννοείται πως δοκίμασα και άλλα καλώδια usb μήπως και αλλά χωρίς αποτέλεσμα.

----------


## SProg

Βγαλε μια φωτο απο πανω να φαινεται ολοκληρο το Arduino.

----------


## Dbnn

Οκ το βράδυ!

----------


## SProg

Αν θες σου στελνω εναν 2560 να κανεις την δουλεια σου ή να εχεις εναν 100% λειτουργικο ωστε να βρεις τι εχει ο αλλος

----------


## Dbnn

Σάββα δεν νομίζω να έχει πρόβλημα ο controller.
Εσύ τι drivers έχεις βάλει? Αυτούς που δίνει το software ή κάποιους άλλους?

Μπορεί να έχω κάνει πατάτα γενικά στην εγκατάσταση δεν ξέρω. Απλά δεν έχω χρόνο να ασχοληθώ τώρα, να φανταστείς απο την δουλειά γράφω.

----------


## SProg

Δεν μου το αναγνωριζε και εμενα "τοοοτε" . Θα δω μηπως καπου αναφερει version κτλ



Παντως εχω το Arduino 1.6.5 version σαν προγραμμα.


usb.png

----------


## Dbnn

Σάββα ο controller κατέληξε στον κάδο.
Πέσαμε σε ελλατωματικό και ο κινέζος που τον πήρα, έκανε τον κινέζο.... :Lol: 
Μέχρι και εξωτερική τροφοδοσία έβαλα αλλά δεν λέει να πάρει μπρός!
Και σε win 32bit το έτρεξα πάλι τα ίδια.

Φωτό δεν ανέβασα γιατί το LG έσπασε και το κινητό που έχω τώρα δεν βγάζει καθαρές φωτογραφίες να έβλεπες τον controller.

----------


## SProg

Και εμενα μου ετυχε με καμμενο Cortex  σε develop board. Αλλα ευτυχως μου το αλλαξε.


Τωρα ξεμεινεις ή εχεις εφεδρικο ;

----------


## Dbnn

> Και εμενα μου ετυχε με καμμενο Cortex  σε develop board. Αλλα ευτυχως μου το αλλαξε.
> 
> 
> Τωρα ξεμεινεις ή εχεις εφεδρικο ;



Ξέμεινα τελείως.
Όταν πληρωθώ λεω να ξανααγοράσω απο άλλον πωλητή πιο έμπιστο.
Εκτός αν έχεις κάποιο εσύ λειτουργικό, με το αζημίωτο φυσικά!

----------


## SProg

Στειλε PM. Ναι εχω , αγορασμενος απο Saintsmart.Δεν ειναι ο γνησιος-γνησιος.

----------


## Dbnn

ok έχεις ΠΜ

----------


## Dbnn

Αφου ήρθε arduino που ξέρουμε οτι δουλεύει (ευχαριστώ και δημόσια Σάββα!) ξεκίνησα τα πειράματα!

Σήμερα πετυχα να φτιάξω mapper στο virtual DJ κοντρολλάροντας μόνο το play με έναν απλό διακόπτη dip switch push on και ενα ποντεσιόμετρο 1kΩ.
Αντιμετωπίζω όμως κάποιο πρόβλημα. Χρησιμοποίησα το midi yoke και hairless midi για να φτιάξω την γέφυρα επικοινωνίας.
Πατούσα τον διακόπτη, ξεκινούσε το play, φυσιολογικά μέχρι εδώ. Αν γυρνούσα το ποντεσιόμετρο για την ένταση, τότε "ξαναπατιόταν" το play απο μόνο του.
Δηλαδή δεν έκανε χωριστά την λειτουργία play, volume αλλά όλες μαζί.
Κάποιο λάθος στον κώδικα προφανώς. Κράτησα το hairless midi και έβαλα το loopMidi αντί του midi yoke επειδή διάβασα πως ήταν συμβατό με τα windows 7,8.1 κλπ ενώ το midi yoke ήταν μόνο για XP.
Το θέμα είναι πλέον πως το σύστημα "φλιπάρει" σε σημείο να κολλάει ο υπολογιστής και επανέρχονται όλα μόλις αποσυνδέσω το arduino.
Έχω ρυθμίσει την ταχύτητα επικοινωνίας στα 115200 και απο την διαχείρηση συσκευών (arduino com11) αλλά και στην γέφυρα midi.
Παρατηρώ επίσης τα led TX-RX να αναβοσβήνουν συνέχεια και στο hairless midi δείχνει συνεχή επικοινωνία.

Το σχέδιο είναι απο εδώ: http://www.instructables.com/id/Arca...ller/?ALLSTEPS
να σημειώσω πως τοποθέτησα την αντίσταση μεταξύ GND και pin13 (3.3kΩ, αυτή βρήκα πρόχειρη μιας και δεν είχα 4.7kΩ, δεν νομίζω να είναι εκεί το πρόβλημα) όπως επίσης έκανα ότι ακριβώς ζητούσε ο τύπος.

Hairless midi: http://projectgus.github.io/hairless-midiserial/
midi yoke: http://www.midiox.com/
LoopMidi: http://www.tobias-erichsen.de/software/loopmidi.html


http://www.instructables.com/files/o...O4GXL5XQYD.zip
O Κώδικας του arduino:

----------


## Dbnn

Απο χθές δεν έκλεισα μάτι.
Σήμερα πρωτομηνιά (καλό μας μήνα!!) το κατάφερα!

Ήταν κάποιο bug στον κώδικα!
Βρήκα έναν άλλο κώδικα σχεδόν ίδιο και σε συνεργασία midi yoke - hairless midi όλα πήγαν καλά!
Πλέον η κάθε λειτουργία "ακούει" όπως πρέπει και το latency είναι πολύ καλό αν υπολογίσουμε πως τρέχω σε μονοπύρηνο AMD V160 με 3GB RAM και windows 8.1

O κώδικας είναι:
http://www.instructables.com/files/o...WJIAS22AIS.ino

Αυτά. Σας αφήνω να παω να κλείσω μάτι επιτέλους  :Lol: 
Και απο το επόμενό μου πόστ θα δείτε την κατασκευή που θα ξεκινήσει το βράδυ!!

----------


## SProg

Μπράβο Δημητρη

----------


## Dbnn

Η κατασκευή βαίνει καλώς, φωτογραφίες δεν έχω ανεβάσει ακόμα καθώς δεν είμαι έτοιμος.
έχω όμως ενα πρόβλημα, ενώ όλα πάνε καλά και στα test ανταποκρίνονται όλα χωρίς να κολλάει κάτι, θέλω να χρησιμοποιήσω 2 rotary encoders για τα jog wheel.
Δηλαδή για να πηγαίνω το τραγούδι μπρός πίσω, κάτι σαν vinyl control.
Ο κώδικας που έχω κάνει upload δεν περιλαμβάνει κάτι τέτοιο και άμα συνδέσω στα digital pins κάποιον encoder τότε απλά δεν δουλεύει σωστά. Διαβάζει σαν τρελό.
Βρήκα μια λύση μέσω analog input, ενος μοτερ (απο cd drive) και μιας αντίστασης να το κάνω αλλά δεν....
Kάτι κώδικες που βρήκα για encoder προσπάθησα να τους περάσω στον κώδικά που τρέχω μέσω #include αλλά έτσι δεν κάνει upload τίποτα.
Οπότε πιστεύω πως πρέπει να γραφτεί κώδικας εκ νέου? (oh shit)

Συγνώμη αλλά ο εγκέφαλος μου βραχυκύκλωσε και λειτούργησα αναπηρικά όπως λέει και ο ταμτάκος....  :Lol: 

Υ.γ. δεν θέλω να μου δώσετε έτοιμο τον κώδικα. Μην παρεξηγηθώ. Να μάθω προσπαθώ ο φουκαράς!

----------


## SProg

> Βρήκα μια λύση μέσω analog input, ενος μοτερ (απο cd drive) και μιας αντίστασης να το κάνω αλλά δεν....




Εχεις το link;


Δημητρη παρε 2 encoder να κανεις τη δουλεια σου. Κοστος 1euro το ενα εχουν στο internet.


*Παραδειγμα

Αγορα encoder*

----------


## Dbnn

Εχω ηδη encoders Σαββα. Για δοκιμες τουλαχιστον, βγαλμενους απο ενα παλιο hercules dj console που δουλευε κανονικα. Το λινκ με το μοτερακι ναι το εχω αλλα το απογευμα θα το ανεβασω μιας και δεν ειμαι σπιτι τωρα..

----------


## Dbnn

http://christian.liljedahl.dk/guides...rotary-encoder

Σάββα το λινκ με τον "encoder" που χρησιμοποιεί dc motor.
Αν προσέξεις τον κώδικα έχει εντολές να γυρίζει dmx. Αυτόν τον κώδικα θέλω να περνάει το σήμα δεξιόστροφα και αριστερόστροφα αντίστοιχα στο midi.

----------


## SProg

Το  διαβασα Δημητρη.


Βαλε να εκτυπωνει στην σειρακια μονο οταν ειναι πάνω ή κατω απο 3.4V ή κατω απο 3.2V. Να δουμε τι λεει.

----------


## Dbnn

Το θεμα ειναι να προσαρμοστει αυτο στον βασικο κωδικα. αλλιως δεν θα "βλεπει" midi ο υπολογιστης απο το arduino. Εκει εχω κολλησει.
εντιτ.  κατι βρηκα. να σιγουρευτω λιγο και ενημερωνω!

----------


## Dbnn

Σάββα δούλεψε.

Αρχικά πρέπει να γίνει #include το TimerOne.h στον κώδικα του midi.




```
/*
Copyright 2011 Lex Talionis (Lex.V.Talionis at gmail)
This program is free software: you can redistribute it 
and/or modify it under the terms of the GNU General Public 
License as published by the Free Software Foundation, 
either version 3 of the License, or (at your option) any 
later version.

This uses pin change interrupts and timer 1 to mesure the 
time between the rise and fall of 3 channels of PPM 
(Though often called PWM, see http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1253149521/all)
on a typical RC car reciver.  It could be extended to as
many channels as you like.

*/
#include <PinChangeInt.h>    // http://www.arduino.cc/playground/Main/PinChangeInt
#include <PinChangeIntConfig.h>
#include <TimerOne.h>        // http://www.arduino.cc/playground/Code/Timer1

#define NO_PORTB_PINCHANGES //PinChangeInt setup
#define NO_PORTC_PINCHANGES    //only port D pinchanges (see: http://www.arduino.cc/playground/Learning/Pins)
#define PIN_COUNT 3    //number of channels attached to the reciver
#define    MAX_PIN_CHANGE_PINS PIN_COUNT

#define RC_TURN 3    //arduino pins attached to the reciver
#define RC_FWD 2
#define RC_FIRE 4
byte pin[] = {RC_FWD, RC_TURN, RC_FIRE};    //for maximum efficency thise pins should be attached
unsigned int time[] = {0,0,0};                // to the reciver's channels in the order listed here

byte state=0;
byte burp=0;    // a counter to see how many times the int has executed
byte cmd=0;     // a place to put our serial data
byte i=0;       // global counter for tracking what pin we are on

void setup() {
    Serial.begin(115200);
    Serial.print("PinChangeInt ReciverReading test");
    Serial.println();            //warm up the serial port
    
    Timer1.initialize(2200);    //longest pulse in PPM is usally 2.1 milliseconds,
                                //pick a period that gives you a little headroom.
    Timer1.stop();                //stop the counter
    Timer1.restart();            //set the clock to zero
    
    for (byte i=0; i<3; i++)
    {
        pinMode(pin[i], INPUT);     //set the pin to input
        digitalWrite(pin[i], HIGH); //use the internal pullup resistor
    }
    PCintPort::attachInterrupt(pin[i], rise,RISING); // attach a PinChange Interrupt to our first pin
}

void loop() {
    
    cmd=Serial.read();        //while you got some time gimme a systems report
    if (cmd=='p')
    {
        Serial.print("time:\t");
        for (byte i=0; i<PIN_COUNT;i++)
        {
            Serial.print(i,DEC);
            Serial.print(":");
            Serial.print(time[i],DEC);
            Serial.print("\t");
        }
        Serial.print(burp, DEC);
        Serial.println();
/*        Serial.print("\t");
        Serial.print(clockCyclesToMicroseconds(Timer1.pwmPeriod), DEC);
        Serial.print("\t");
        Serial.print(Timer1.clockSelectBits, BIN);
        Serial.print("\t");
        Serial.println(ICR1, DEC);*/
    }
    cmd=0;    
    
    switch (state)
    {
        case RISING: //we have just seen a rising edge
            PCintPort::detachInterrupt(pin[i]);
            PCintPort::attachInterrupt(pin[i], fall, FALLING); //attach the falling end
            state=255;
            break;
        case FALLING: //we just saw a falling edge
            PCintPort::detachInterrupt(pin[i]);
            i++;                //move to the next pin
            i = i % PIN_COUNT;  //i ranges from 0 to PIN_COUNT
            PCintPort::attachInterrupt(pin[i], rise,RISING);
            state=255;
            break;
        /*default:
            //do nothing
            break;*/
    }
}

void rise()        //on the rising edge of the currently intresting pin
{
    Timer1.restart();        //set our stopwatch to 0
    Timer1.start();            //and start it up
    state=RISING;
//    Serial.print('r');
    burp++;
}

void fall()        //on the falling edge of the signal
{
    state=FALLING;

    time[i]=Timer1.read();    // Needs Timer1-v2
    Timer1.stop();
//    Serial.print('f');
}
```


Μετά απο όλα αυτά, το + του μοτέρ να συνδεθεί στο +3.3v του arduino και το - του μοτέρ να πάει σε οποιαδήποτε αναλογική είσοδο του board.
Με την προυπόθεση η αντίσταση μεταξύ - και board να είναι 10kΩ αντί για 15kΩ.
Επίσης στον κώδικα του midi πρέπει να ελέγξουμε εαν το baud rate συμβαδίζει με την ταχύτητα επικοινωνίας της θύρας που είναι συνδεδεμένο το arduino.
Απο κεί και πέρα είναι θέμα calibration στο εκάστοτε dj software. Πχ το traktor που τρέχω εγώ έχει παραμέτρους για την ταχύτητα του κάθε encoder. Κάτι σαν timestep να το πω απλά.

----------


## Dbnn

Ορίστε και 3 πλακέτες (σχεδιασμένες στο sprint layout για την ώρα) απο τις 5 συνολικές που θα μπούν μέσα στην κατασκευή του midi. Μαζί με το arduino φυσικά.
Στο κέντρο θα δείτε την κεντρική πλακέτα που θα συνδεθεί με την κάρτα ήχου για το master και το monitor (ακουστικά) καθώς και 2 ζευγάρια vu meter με το LM3915.
Οι τελεστικοί (ΝΕ5534) τροφοδοτούνται απο σταθεροποιητές 7815-7915 και τα vu meter απο μια ξεχωριστή γέφυρα ανόρθωσης και απο διαφορετικό τύλιγμα απο των τελεστικών.

Αριστερά και δεξιά είναι τα πλακετάκια που περιέχουν 3 σειρές απο 3 διακόπτες push on και η κάθε σειρά είναι pitch, cue select, loop κλπ. τα start, cue κλπ είναι σε άλλη πλακέτα πάλι με push on buttons που θα παρουσιαστούν πλήρως όλα μαζί μόλις ολοκληρωθεί η κατασκευή.
Και τα σχέδια για τους προενισχυτές εννοείται.
Αυτά για την ώρα και συνεχίζουμε.

----------


## Dbnn

Εχω ενα θεματακι. Χθες το βραδυ το εβαλα να παιξει για πανω απο τρεις ωρες. Ενω ολα πηγαιναν καλα αρχισε να κολλαει απιστευτα. Σε σημειο να κρασσαρει ο υπολογιστης. Εψαξα λιγο στο ιντερνετ και βργκα πως οφειλεται στο midi yoke και στο hairless midi μιας και τρωνε απιστευτα υπερβολικους πορους και μνημη ram. 
Τη λυση δινει ενας Ελληνας οπου λεει πως πρεπει να αλλαχθει το firmware του arduino ωστε ο υπολογιστης να το βλεπει σαν usb input device. Η ολη ιστορια γινεται με το προγραμμα της atmel "Flip". Ειναι ενας dfu usb programmer που δουλευει μεσω usb και δεν χρειαζεται λεει εξτρα hardware. Δεν γινεται τιποτα ομως παρολο που εκανα reset το board με τα 2 πινς. Τι drivers περασα τι ταματα στη μεγαλοχαρη εκανα. Δεν λεει να ανοιξει το communicate με τιποτα. http://www.dimitridiakopoulos.com/hiduino.html
https://github.com/ddiakopoulos/hiduino

Καποια ιδεα;;;

----------


## SProg

Δημητρη το FLIP το χρησιμοποιουσα για να προγραμματιζω τον 8051..

ξανα καψε το bootloader του Arduino. Δεν θα επρεπε να κολλαει, ποσους πορους να χρειαζεται μια τετοια εφαρμογη..

----------


## Dbnn

Δεν ξερω σαββα με εχει πεθανει. Μηπως εχω κανει κατι εγω λαθος δεν γνωριζω.. Προσπαθησα μεσω του arduino ide να καψω bootloader αλλα βγαζει σφαλμα. Τα scetch τα περναει παντως κανονικα. 
Παντως απο οτι εβλεπα εχθες τα λεντ tx/rx στο arduino δουλευαν κανονικα οταν πατουσα καποιο κουμπι η ποντεσιομετρο. Το κολλημα ηταν στον υπολογιστη.

----------


## Dbnn

Ήρθε προχθές ενας μικρός προγραμματιστής, attiny (USBtiny) και για μαντέψτε.
Δεν μπορώ να περάσω το hiduino... χαχα
το φλιπ δεν το βλέπει καν.
Συγκεκριμένα αυτό: http://www.ebay.com/itm/400368767664...%3AMEBIDX%3AIT
Κατέβασα το avrdude αλλά χωρίς αποτέλεσμα.

απο τον προγραμματιστή συνδέω επάνω του το 2560 και το βλέπω μέσα στο πρόγραμμα του arduino. Αλλά δεν περνάει ούτε bootloader.
sketch κλπ τα περνάω κανονικά όπως πρίν.
Που θα πάει θα το βρώ!! Απλά έτσι ενημερώνω για την πορεία του θέματος.

----------


## modaristis

Γεια σου Δημήτρη. Έψαχνα κι εγώ μήπως φτιάξω έναν controller. Τη λύση με πρόγραμμα στον υπολογιστή Serial->MIDI ξέχνα την. Σου τρώει πολύ RAM ειδικά αν έχεις και Traktor ανοιχτό. Θα σου πρότεινα να πας σε κάτι έτοιμο HID αντί να καις λογισμικά στο chip σου. Ψάξε για Teensy ή έστω ένα Arduino Leonardo που λειτουργούν σαν HID από τη μαμά εταιρεία. Δες αυτό. Είναι βέβαια με Teensy αλλά πάνω κάτω είναι τα ίδια και για το Leonardo. Να προσθέσω ότι το Leonardo έχει νομίζω αποσυρθεί αλλά είναι το ίδιο με το Micro.
Δες κι αυτά:
https://www.youtube.com/watch?v=s3ddSsEB_IY
https://www.youtube.com/watch?v=ZpI2iBhp52w
https://www.youtube.com/watch?v=HazvRdI5sE4
Όλα με Leonardo!
Καλή συνέχεια!

----------


## Dbnn

Σε ευχαριστω πολυ φιλε μου!! Το εγκατελειψα για αυτο το λογο προς το παρων. Τρωει πολλους πορους. 
Και το mega2560 δεν κανει. 

Σε ευχαριστω για την ιδεα.

----------


## modaristis

Αν συνεχίσεις το project ενημέρωσέ μας! Με ενδιαφέρει πάρα πολύ. Έχω παραγγείλει και περιμένω το Leonardo. Έρχεται από την Κίνα και από το ebay μόνο 5.5 ευρώ! Μέσα Μάη που θα φτάσει θα αρχίσω τα πειράματά μου και θα σου πω. Θέλω περισσότερο να παίξω με multiplexers γιατί δεν τους έχω δουλέψει ποτέ...

----------


## modaristis

Μετά από αρκετό ψάξιμο είδα ότι το Leonardo δεν έχει δυνατότητες (built-in) για MIDI HID. Βέβαια υπάρχουν δύο τρόποι να το παρακάμψεις.
TeeOnArdu (θέλει κάψιμο bootloader)Arcore
Δεν είχα την ευκαιρία να δοκιμάσω κανέναν από τους δύο τρόπους. Όταν γυρίσω από διακοπές θα σας πω τι κατάφερα να κάνω, αν κατάφερα τίποτα  :Tongue2: 

Αν και πάλι δεν καταφέρω τίποτα με βλέπω απλά να αγοράζω ένα Teensy 2.0++, που συγκριτικά με το Leonardo πετάει φωτιές.

----------


## Dbnn

Φιλε μου με arduino μην μπλεκεσαι. Τρωει πορους απο το συστημα σε τετοια εφαρμογη. Οχι το avr αλλα τα προγραμματα serial to midi κλπ. 
Δεν κανουν αυτα. Και τα teensy ακομα δεν τα εμπιστευομαι να σου πω την αληθεια. Δεν εχω δοκιμασει ομως ακομα. 
Παντως με arduino δεν θα ασχοληθω ξανα για τετοια εφαρμογη. Γενικα με προγραμματισμο δεν το εχω και δεν θα κατσω να μαθω λογο ελλειψης χρονου. 

Θελω να βρω κατι που να προγραμματιζεται γελοια δηλαδη πιν 1 ειναι ταδε εισοδος και ο υπολογιστης να το βλεπει κατευθειαν σαν hid device και οχι να χρειαζομαι 455.987 γραμμες κωδικα και software converters για να καταλαβαινει ο υπολογιστης πως του συνδεω καποιο hid.

----------


## modaristis

Καταφερα και έκανα να δουλεψει το Arcore. Με 10 γραμμές κώδικα έβαλα 4 ποτενσιομετρα , 2 κουμπια και και 2 led και δουλευαν όλα κομπλέ με το τρακτορ. Το Arcore επιτρεπει στο arduino να το βλέπει ο υπολογιστής σαν plug n play MIDI interface, δηλαδή HID.

----------


## Dbnn

> Καταφερα και έκανα να δουλεψει το Arcore. Με 10 γραμμές κώδικα έβαλα 4 ποτενσιομετρα , 2 κουμπια και και 2 led και δουλευαν όλα κομπλέ με το τρακτορ. Το Arcore επιτρεπει στο arduino να το βλέπει ο υπολογιστής σαν plug n play MIDI interface, δηλαδή HID.





Ότι δουλεύει, δουλεύει δεν το αμφισβητώ.
Το πότε θα "στουκάρει" δεν ξέρω και συνήθως θα στουκάρει όταν θα έχεις γεμάτη πίστα.......  :Lol: 
Προσωπικά θέλω να αποφύγω εντελώς το arduino.

Υ.γ. 4 ποτενσιόμετρα, 2 κουμπία και 2 led δεν είναι τίποτα..
Είχα φορτώσει 8 ποτενσιόμετρα, 2 rotary encoders, άλλα 10 κουμπία χωρίς led και εκεί που έπαιζες 5 ώρες κυριολεκτικά σερί κόλλαγε το σύμπαν.
Φυσικά ποτέ δεν το εμπιστεύτηκα εξ αρχής για να το πάρω σε μαγαζί (thank God....)

Υ.γ. 2
ποιό τράκτορ έχεις? Αν είναι απο τα *ΔΩΡΕΑΝ*  :Rolleyes:   :Shhh:  θα με ενδιέφερε ενα link

----------

