firewalker Δημοσ. 20 Μαΐου 2008 Share Δημοσ. 20 Μαΐου 2008 Πρόσφατα (πριν ένα χρόνο και βάλε) είπα να φτιάξω ένα σύστημα τηλεχειρισμού του υπολογιστή που θα ήταν συμβατό με το LIRC . Αρχικά επέλεξα την πολύ απλή λύση της χρήσης της σειριακής θήρας με το πολύ απλό κύκλωμα που βλέπετε παρακάτω. Στην συνέχεια όμως χρειαζόμουν την σειριακή θύρα για το modem μου. Έτσι έψαξα και βρήκα την παρακάτω λύση που χρησιμοποιεί μία θήρα usb. Πρόκειται για το USBtiny του Dick Streefland που χρησιμοποιεί τον μικροελεγκτή ATtiny2313 της Atmel για την υλοποίηση του πρωτοκόλλου usb και την λήψη υπέρυθρων με την βοήθεια ενός δέκτη, του TSOP1738 (εγώ χρησιμοποίησα το TMFS5360 από μια παλιά τηλεόραση που είχα και δουλεύει εξίσου καλά). Η κατασκευή είναι πολύ απλή σαν κύκλωμα. Το μόνο δύσκολο σημείο είναι ο προγραμματισμός του ATtiny2313 και αυτό μόνο για όσους δεν διαθέτουν κάποιον προγραμματιστή. Και πάλι όμως υπάρχουν πολύ απλά κυκλώματα μόνο παθητικών στοιχείων που με την βοήθεια της σειριακής ή της παράλληλης θήρας μπορούμε να προγραμματίσουμε τον μικροελεγκτή μας. Εγώ είχα στην διάθεση μου τον παρακάτω. http://www.tuxgraphic.org/electronics/200510/article05101.shtml http://www.insomnia.gr/forum/showthread.php?t=230564 Στο δικό μου κύκλωμα παρέλειψα την οθόνη υγρών κρυστάλλων που δεν είναι και απαραίτητη. Ο κώδικας υπάρχει εδώ. Στον φάκελο ir υπάρχει το αρχείο main.hex και το οποίο μπορούμε να φορτώσουμε όπως είναι στον μικροελεγκτή. Εγώ επέλεξα να αφαιρέσω εντελώς το τμήμα του κώδικα που αναφέρονταν στην οθόνη υγρών κρυστάλλων για να γίνει ο κώδικας ελαφρώς ποιο γρήγορος. Ο κώδικας είναι γραμμένος για gcc-avr 3.4.0, μπορεί να γίνει compile και με gcc-avr 4.1.0 αφού αφαιρέσουμε τον κώδικα για την οθόνη (αν δεν το κάνουμε ο κώδικας που παράγετε δεν θα χωράει στον attiny2313). Εγώ δοκίμασα με την έκδοση gcc-avr 4.3.0 και το compile δεν γινόταν λόγω κάποιον αλλαγών στο gcc. Άλλαξα (με την βοήθεια και άλλων από το http://www.avrfreaks.net) ελαφρώς τον κώδικα για να μην υπάρχει πρόβλημα. Για όποιον ενδιαφέρεται παραθέτω και το σχετικό patch. > --- main-original.c 2008-01-16 23:50:50.000000000 +0200 +++ ./ir/main.c 2008-05-18 15:00:28.000000000 +0300 // ---------------------------------------------------------------------- // Handler for timer1 input capture interrupt: edge on IR input // ---------------------------------------------------------------------- -__attribute__((signal,naked)) // interrupts are DISABLED -extern void SIG_INPUT_CAPTURE1 ( void ) + +// interrupts are DISABLED + +ISR(TIMER1_CAPT_vect, ISR_NAKED) { static uint_t prev; uint_t stamp; @@ -236,8 +238,10 @@ // ---------------------------------------------------------------------- // Handler for timer1 output compare A interrupt: IR transmission timeout // ---------------------------------------------------------------------- -__attribute__((signal)) // interrupts are DISABLED -extern void SIG_OUTPUT_COMPARE1A ( void ) + +// interrupts are DISABLED + +ISR(TIMER1_COMPA_vect) { TIMSK = 0; // disable both IR interrupts sei(); // allow USB interrupt @@ -448,8 +452,9 @@ // ---------------------------------------------------------------------- // Main // ---------------------------------------------------------------------- -__attribute__((naked)) // suppress redundant SP initialization -extern int main ( void ) + +__attribute__((OS_main)) // suppress redundant SP initialization +int main ( void ) { PORTD |= _BV(PULLUP); DDRD |= _BV(PULLUP); // enable pullup on D- Η συσκευή χρειάζεται το module lirc_igorplugusb που περιέχεται στο πακέτο του lirc. Καλύτερα να έχουμε την τελευταία έκδοση (που είναι η 0.8.3 προς το παρόν) του lirc που περιέχει ένα patch του Dick Streefland που κάνει την συσκευή να συμπεριφέρεται καλύτερα. Για την κατασκευή του χρησιμοποίησα μια διάτρητη πλακέτα και ένα κουτάκι από κάποιο παλιό κόσμημα για να την φιλοξενήσει. Μερικές εικόνες. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
yiannis_t Δημοσ. 20 Μαΐου 2008 Share Δημοσ. 20 Μαΐου 2008 Τρελό respect!!!! Έχω μείνει κόκκαλο... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 20 Μαΐου 2008 Μέλος Share Δημοσ. 20 Μαΐου 2008 Τρελό respect!!!! Έχω μείνει κόκκαλο... Ευχαριστώ πολύ. Αλλά το πραγματικό respect πρέπει να πάει αρχικά στον Igor Cesko που κατάφερε (για πρώτη φορά) αρχικά να συνδέσει έναν avr (τον AT90S2313) με μια θήρα usb. Και στον Dick Streefland για την βελτίωση και εισαγωγή του project στον κόσμο του gnu linux. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
apoikos Δημοσ. 20 Μαΐου 2008 Share Δημοσ. 20 Μαΐου 2008 Μπράβο firewalker για τους πειραματισμούς σου! Είχα φτιάξει και γω πριν από χρόνια (5, 6;) έναν serial δέκτη από μια παλιά φωτοδίοδο τηλεόρασης με έναν hex inverter/buffer, ο οποίος με υπηρετεί ακόμα πιστά . Το LIRC είναι ένα εξαιρετικά χρήσιμο πρόγραμμα, και ειδικά όσοι έχουν laptop με IrDA μπορούν να το στήσουν πανεύκολα. Τώρα μου έδωσες τροφή για σκέψη όμως: να φτιάξω έναν IR δέκτη για έναν παλιό (αλλά καλό) ραδιοφωνικό δέκτη Rotel που έχω, ο οποίος δυστυχώς δεν έχει τηλεχειρισμό. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 20 Μαΐου 2008 Μέλος Share Δημοσ. 20 Μαΐου 2008 Μπράβο firewalker για τους πειραματισμούς σου! Είχα φτιάξει και γω πριν από χρόνια (5, 6;) έναν serial δέκτη από μια παλιά φωτοδίοδο τηλεόρασης με έναν hex inverter/buffer, ο οποίος με υπηρετεί ακόμα πιστά . Το LIRC είναι ένα εξαιρετικά χρήσιμο πρόγραμμα, και ειδικά όσοι έχουν laptop με IrDA μπορούν να το στήσουν πανεύκολα. Τώρα μου έδωσες τροφή για σκέψη όμως: να φτιάξω έναν IR δέκτη για έναν παλιό (αλλά καλό) ραδιοφωνικό δέκτη Rotel που έχω, ο οποίος δυστυχώς δεν έχει τηλεχειρισμό. Ευχαριστώ . Νομίζω ότι το LIRC δεν παίζει με το πρωτόκολλο IrDa πρέπει τα laptops να έχουν δέκτη IR που είναι εντελώς διαφορετικό. Ο ραδιοφωνικός δέκτη που έχεις για pc είναι; Αν είναι σαν αυτόνομο μηχάνημα και δεν έχει τηλεχειρισμό έχεις μπόλικη δουλίτσα να κάνεις :-) . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
vagpap Δημοσ. 20 Μαΐου 2008 Share Δημοσ. 20 Μαΐου 2008 Νομίζω ότι το LIRC δεν παίζει με το πρωτόκολλο IrDa πρέπει τα laptops να έχουν δέκτη IR που είναι εντελώς διαφορετικό. Κάτι μου λέει ότι έχεις δίκιο, γιατί στο δικό μου δεν κατάφερα με τίποτα να κάνω το LIRC να δουλέψει. Μπράβο για την κατασκευή, κάτι μου λέει ότι όταν βρω λίγο χρόνο θα πάρω το κολλητήρι ;-) Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
apoikos Δημοσ. 20 Μαΐου 2008 Share Δημοσ. 20 Μαΐου 2008 Ευχαριστώ . Νομίζω ότι το LIRC δεν παίζει με το πρωτόκολλο IrDa πρέπει τα laptops να έχουν δέκτη IR που είναι εντελώς διαφορετικό. Σαφώς και δεν παίζει με IrDA, είχα όμως την εντύπωση ότι μπορείς να χρησιμοποιήσεις έναν SIR δέκτη σε χαμηλό baud rate για να διαβάσεις σήματα από τηλεχειριστήρια, και για την ακρίβεια το είχα κάνει κάποτε με ένα laptop. Όμως φαίνεται ότι γενικά δε δουλεύει, για διάφορους λόγους, οπότε έχεις δίκιο. Ο ραδιοφωνικός δέκτη που έχεις για pc είναι; Αν είναι σαν αυτόνομο μηχάνημα και δεν έχει τηλεχειρισμό έχεις μπόλικη δουλίτσα να κάνεις :-) . Είναι «φέτα», καμία σχέση με pc. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 20 Μαΐου 2008 Μέλος Share Δημοσ. 20 Μαΐου 2008 Σαφώς και δεν παίζει με IrDA, είχα όμως την εντύπωση ότι μπορείς να χρησιμοποιήσεις έναν SIR δέκτη σε χαμηλό baud rate για να διαβάσεις σήματα από τηλεχειριστήρια Ναι με SIR μπορεί να δουλεύει. Από ότι θυμάμαι όμως δεν λειτουργεί και τόσο καλά αυτή η μέθοδος. Είναι «φέτα», καμία σχέση με pc. Μάλλον θα χρειαστείς κάποιον άλλον mcu όπως τον Atmega8 για να μπορείς να αποθηκεύεις στην eeprom (δεν νομίζω να χωράει στον tiny2313) τον κώδικα του σήματος για κάθε πλήκτρο του remote για να κάνεις την αναγνώριση. Εκτός αν χρησιμοποιήσεις κάποια εξωτερική μνήμη όπως την 24LC32. Υπάρχει κάτι παρόμοιο που αποθηκεύει για ένα πλήκτρο μόνο. http://www.serasidis.gr/circuits/InReCoMe/InReCoMe.htm Γενικά πρέπει να γίνουν πολλά πραγματάκια στην συνέχεια. Για παράδειγμα ο τρόπος που θα αλλάζει ο σταθμός. Αν είναι ψηφιακός ο τρόπος είναι σχετικά εύκολο. Αν είναι αναλογικός θα χρειαστεί και κάποιον κινητήρα κ.τ.λ. Το ίδιο και για τον ήχο. Αν πάντως το επιχειρήσεις κράτα μας ενήμερους. Θα έχει αρκετό ενδιαφέρον ένα τέτοιο project. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 20 Μαΐου 2008 Μέλος Share Δημοσ. 20 Μαΐου 2008 Δες και τα θέματα avr410 και avr415 στην παρακάτω σελίδα. Ίσως υπάρχει έδαφος. http://www.atmel.com/dyn/products/app_notes.asp?family_id=607 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
apoikos Δημοσ. 21 Μαΐου 2008 Share Δημοσ. 21 Μαΐου 2008 Ναι, για ATMega το πήγαινα. Ψηφιακός είναι ο δέκτης, με 20 μνήμες + tuning, οπότε το interface θα είναι σχετικά απλό. Θα σας κρατήσω ενήμερους Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 21 Μαΐου 2008 Μέλος Share Δημοσ. 21 Μαΐου 2008 Κοίτα να δεις αν κεντρικός DSP ή το tuner που έχει υποστηρίζει i2c. Αν υποστηρίζει και μπορέσεις να βρεις και τις προδιαγραφές του τα πράγματα απλοποιούνται πάρα πολύ. Programmer έχεις επιλέξει; Θέλω full report! :-) Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.