Seiten: 1 [2]
|
 |
|
Umfrage
|
Frage: |
Welche Bauform soll der Empfänger haben?
USB-Stick |
|
  10 (62.5%) |
Abgesetzt mit Kabel |
|
  6 (37.5%) |
|
|
Stimmen insgesamt: 16 |
|
Autor
|
Thema: HID-IR (Gelesen 21985 mal)
|
The Slow
Stichsägenquäler

Karma: +2/-0
Offline
Geschlecht: 
Beiträge: 62
Wird Zeit, dass hier mal was anderes steht.
|
 |
Re: HID-IR
« Antwort #15 am: Oktober 9, 2008, 23:29:54 » |
|
Da mein PC tief vergraben unter/hinter meinem Schreibtisch steht hab ich wenn der Empfänger da steck keinen Empfang.
Ich hab nen USB-Hub auf dem Monitorfuß liegen, da steckt er drin und ist deshalb auch halbwegs gut sichtbar, was der Grund ist weshalb ich mir Gedanken um das Äußere gemacht habe.
Ansonsten ist der Empfang von den TSOPs ziemlich gut, selbst wenn man mit der Fernbedienung in die komplett andere Richtung zielt werden die meisten Signale noch sauber empfangen. Ich habe zwischenzeitlich mal einen anderen Sensor getestet weil der kleiner war (so eine Macke von mir, dass alles was ich bau immer so klein wie möglich werden muss ), da musste ich aber sehr genau zielen, damit ab und an überhaupt mal was empfangen werden konnte.
|
|
|
Gespeichert
|
Routers use routing protocols to exchange routing tables and share routing information. In other words, routing protocols enable routers to route routed protocols.
|
|
|
Flo
Case-Konstrukteur

Karma: +3/-0
Offline
Geschlecht: 
Beiträge: 505

23
|
 |
Re: HID-IR
« Antwort #16 am: Oktober 10, 2008, 08:22:28 » |
|
Wow, sehr schöne Sache! Ich liebe ja diese penibel geplanten Lochrasterplatinen... Echt gut geworden! 
Habe gestern mal die ersten Erfahrungen gesammelt, was AVR-Programmierung angeht. (Hab einen ATTINY85 mit PonyProg geflasht )
|
|
|
Gespeichert
|
|
|
|
Falzo
Diktator vom Dienst
Administrator

Karma: +15/-0
Offline
Geschlecht: 
Beiträge: 5088
|
 |
Re: HID-IR
« Antwort #17 am: Oktober 13, 2008, 17:49:00 » |
|
hammer! das gibt von mir einfach mal noch ein + obendrauf, so als Vorschuß für den Rest und vielleicht wirklich als Anreiz der erste zu sein, der nach einer langen Flaute für ein frisches Tutorial auf der Hauptseite sorgen möchte ;-)
|
|
|
Gespeichert
|
|
|
|
The Slow
Stichsägenquäler

Karma: +2/-0
Offline
Geschlecht: 
Beiträge: 62
Wird Zeit, dass hier mal was anderes steht.
|
 |
Re: HID-IR
« Antwort #18 am: Oktober 13, 2008, 18:57:00 » |
|
So, das Wochenende ist vorbei, jetzt kann es hier weitergehen. Eins schonmal vorweg: alles was jetzt kommt wird verdammt trocken.
Damit der IR-Receiver weiss welche Taste er bei welchem IR-Signal senden soll müssen zwei Tabellen zu Rate gezogen werden:
Die erste ist eine Tabelle mit den RC5-Codes. Da ich nicht weiss wie lange der Link noch funktioniert hänge ich die Datei direkt hier mit dran (Der Link den ich vor ca. nem halben Jahr benutzt habe liefert nur noch einen Error 404). Auf den Seiten 1 bis 3 stehen in den linken beiden Spalten die Codes die gängige Fernsehfernbedienungen senden. Diese Codes müssen mit den "Usage IDs" aus dieser Datei ab Seite 53 verbunden werden.
Dies geschieht in der Datei main.c in diesem AVR-Studio-Projekt.
Dort gibt es eine Passage die so aussieht:
#define MOD_CONTROL_LEFT (1<<0) #define MOD_SHIFT_LEFT (1<<1) #define MOD_ALT_LEFT (1<<2) #define MOD_GUI_LEFT (1<<3) #define MOD_CONTROL_RIGHT (1<<4) #define MOD_SHIFT_RIGHT (1<<5) #define MOD_ALT_RIGHT (1<<6) #define MOD_GUI_RIGHT (1<<7)
#define KEY_A 4 #define KEY_B 5 #define KEY_C 6 ... #define KEY_RIGHT 79 #define KEY_LEFT 80 #define KEY_DOWN 81 #define KEY_UP 82 #define KEY_LESS 100
#define KEY_ENTER 88
In dieser Passage sind für einfachere Nutzung den entsprechenden UsageIDs aus dem USB-Dokument verständliche Namen definiert.
In dem darauf folgenden Teil wird der Report "zusammengebaut" der an den PC-gesendet wird. In der Variable "key" steht immer der zuletzt empfangene Code. Die Auswertung dieses Codes geschieht in dem "switch-case"-Block.
static void buildReport(uchar key) { reportBuffer[1] = 0; reportBuffer[2] = 0; reportBufferSND[1] = 0;
switch(key) { // Zifferntasten case 0: reportBuffer[2] = KEY_0; break; case 1: reportBuffer[2] = KEY_1; break; case 2: reportBuffer[2] = KEY_2; break; case 3: reportBuffer[2] = KEY_3; break; case 4: reportBuffer[2] = KEY_4; break; case 5: reportBuffer[2] = KEY_5; break; case 6: reportBuffer[2] = KEY_6; break; case 7: reportBuffer[2] = KEY_7; break; case 8: reportBuffer[2] = KEY_8; break; case 9: reportBuffer[2] = KEY_9; break;
// Programm starten case 12: reportBuffer[1] = MOD_CONTROL_LEFT|MOD_ALT_LEFT; reportBuffer[2] = KEY_T; break;
// Lautstärke case 13: reportBufferSND[1] = (1<<2); break; case 16: reportBufferSND[1] = (1<<0); break; case 17: reportBufferSND[1] = (1<<1); break;
} } In dem vorangegangenen Block sind drei unterschiedliche Arten von Tastendrücken zu sehen:
die einfachsten sind die Zifferntasten, die entsprechende zuweisung sieht wiefolgt aus:
case 1:reportbuffer[2]=KEY_1; break; wenn (case) code 1 empfangen wird, wird der Scancode für Taste 1 (KEY_1) in den Puffer auf stelle 2 geschrieben. Dies löst einen "Tastendruck" auf die 1 aus.
Warum wird auf die 2. Stelle im Puffer geschrieben? Das liegt daran, dass an der ersten Stelle eventuelle "Modifikatoren" stehen, das sind Tasten wie Steuerung (CTRL) oder Alt. Im folgenden Beispiel wird auf Code 12 (standby) mit einem Druck auf STRG+ALT+T geantwortet, ich starte so die Software meiner TV-Karte.
case 12: reportBuffer[1] = MOD_CONTROL_LEFT|MOD_ALT_LEFT; reportBuffer[2] = KEY_T; break; Das "|" Zeichen (das ist kein grosses i) bewirkt, dass beide Modifikatoren gleichzeitig gedrückt werden. Danach wird die Taste wie zuvor zugewiesen.
Die dritte Art von Reaktion auf einen Code dient dazu in Windows die Systemlautstärke zu stellen. Dies geschieht mit einem anderen Report-Puffer: reportBufferSND[1].
case 13: reportBufferSND[1] = (1<<2); break; setzt beispielsweise Bit 2 in dem jeweilgen Byte, was dazu führt, das die Lautstärke auf Null gesetzt wird (ich hoffe das war verständlich ).
An dieser Stelle sollte für den einen oder anderen der Nachbau möglich sein, alle anderen muss ich noch ein wenig vertrösten bis irgendwann das Tutorial fertig ist.
edit: achja ganz vergessen, danke Falzo!
|
rc5_codes.pdf (41.8 KB - runtergeladen 4 Mal.)
|
« Letzte Änderung: Oktober 14, 2008, 16:23:35 von The Slow »
|
Gespeichert
|
Routers use routing protocols to exchange routing tables and share routing information. In other words, routing protocols enable routers to route routed protocols.
|
|
|
Ast
Case-Konstrukteur

Karma: +8/-0
Offline
Geschlecht: 
Beiträge: 589

Astpirin, die Medizin deines Lebens
|
 |
Re: HID-IR
« Antwort #19 am: Oktober 13, 2008, 19:48:41 » |
|
Hey, das wird doch mal ein super Tutorial.
Auf das Anpassen der Firmware müsste man aber wahrscheinlich noch etwas genauer eingehen.
Ich fürchte für jemanden, der wenig bis keine Erfahrung im Umgang mit AVRs hat, ist das schon etwas zu kompliziert.
Da könnte man ja vielleicht sogar eine kleine Webanwendung oder ein kleines Programm schreiben, das die Anpassung des Quellcodes übernimmt.
Auf jeden Fall sollte man sich da noch was überlegen.
|
|
« Letzte Änderung: Oktober 13, 2008, 19:50:36 von Ast »
|
Gespeichert
|
There are only 10 types of people in the world: Those who understand binary, and those who don't. -------- How many people can read hex if only you and dead people can read hex?
|
|
|
The Slow
Stichsägenquäler

Karma: +2/-0
Offline
Geschlecht: 
Beiträge: 62
Wird Zeit, dass hier mal was anderes steht.
|
 |
Re: HID-IR
« Antwort #20 am: Oktober 13, 2008, 20:09:27 » |
|
Dass das mit der Anpassung der Firmware so noch nicht ausreicht kann ich nachvollziehen. Da ich aber eh schon am planen für das Tutorial bin wollte ich hier nicht zu tief einsteigen.
Ich hoffe das Ganze irgendwie automatisieren zu können. Auf jeden Fall werde ich wohl ähnlich wie du das Flashen per Batch-Datei erledigen, dabei kann dann ja in einem Rutsch das Kompilieren gleich mit erledigt werden. Fehlt nur noch die Anpassung der Firmware. Die lässt sich aber wohl wirklich in ein kleines Tool packen, mal sehen. Vielleicht gelingt es mir ja auch noch irgendwie ne Lernfunktion einzubauen, dann müssen Änderungen gar nicht mehr in die Firmware eingetragen werden. Eventuell gibts auch die Möglichkeit mittels eines einfachen Programmes die Konfiguration über das USB-Interface ins EEPROM des AVR zu schreiben. Momentan hab ich ne ganze Menge Ideen, aber noch keine Ahnung ob ich sie umsetzen kann.
Jetzt gehts aber erstmal ans Redesign der Hardware.
edit: Da ich grad dabei bin mir über das neue Layout gedanken zu machen hab ich mal ne Frage: was wäre euch lieber, die Variante als USB-Stick wie hier vorgestellt oder eine Variante mit Gehäuse, die man irgendwo hinlegen kann mit Standard USB-B bzw. mini-USB Buchse und entweder eingelassenem oder abgesetzten Empfänger an einem Kabel der Überall hin verlegt werden kann???
|
|
« Letzte Änderung: Oktober 14, 2008, 20:47:41 von The Slow »
|
Gespeichert
|
Routers use routing protocols to exchange routing tables and share routing information. In other words, routing protocols enable routers to route routed protocols.
|
|
|
The Slow
Stichsägenquäler

Karma: +2/-0
Offline
Geschlecht: 
Beiträge: 62
Wird Zeit, dass hier mal was anderes steht.
|
 |
Re: HID-IR
« Antwort #21 am: Oktober 19, 2008, 14:46:15 » |
|
Ich weiss, Doppelposts sind nicht unbedingt gern gesehen, aber ich denke das hier passt Thematisch eher in einen neuen Beitrag. Wie bereits vor ein paar Tagen versprrochen liefere ich hier die fehlenden Bilder der Resetbeschaltung und der Abblockkondensatoren nach.
Die roten Kreise sind dabei jeweils 100nF Kondensatoren, der blaue ist ein 10kOhm Widerstand.
Der ganz linke Kondensator zwischen Masse (der Lange Leiterzug) und 3,3V (Pin 8 des Controllers) ist der Abblockkondensator C2 für den µC, der Kondensator ganz rechts ist der Abblockkondensator C3 für den IR-Empfänger.
Der Widerstand R5 zwischen Pin 1 und Pin 8 des Controllers bildet zusammen mit dem Kondensator C4 zwischen Masse und Pin 1 die besagte Resetbeschaltung.
Mit diesen Bauteilen ist die Schaltung dann wirklich komplett.
Achja, die Frage welche Variante ich für das Tutorial verwenden soll steht immer noch im Raum. Wenn man meine eigene Stimme abzieht stehet es bis jetzt ja erst 2:1 für den USB-Stick, das ist noch nicht sehr aussagekräftig.
Nochwas, sollte die Variante mit Gehäuse "gewinnen" hab ich an dieses Gehäuse gedacht.
|
Routers use routing protocols to exchange routing tables and share routing information. In other words, routing protocols enable routers to route routed protocols.
|
|
|
StarGoose
Modding Urgestein

Karma: +5/-0
Offline
Geschlecht: 
Beiträge: 2014

selber suchen tut nicht weh!
|
 |
Re: HID-IR
« Antwort #22 am: Oktober 19, 2008, 15:12:39 » |
|
erstmal wie schon andere vor mir: 
und dann (wie auch in den PM erwähnt )
halte ich die Kleinigkeit ob direkt mit Usb-A Stecker oder mit längerem Kabel und Stecker oder gar mit Usb-B oder Mini-Usb Buchse auf der Platine eher für nebensächlich... die Belegung am Usb Anschluß bleibt ja gleich und mit einer Vernünftigen kurzen Beschreibung bekommt diese kleine Änderung dann doch jeder selber hin.
Eventuell könnte man beim Platinenlayout nur die unterschiedlichen Varianten direkt berücksichtigen um z.b. für die doch Raumgreifenden Usb-B Buchse z.b. Platz zu lassen während mini Usb, Usb-A Stecker und natürlich der Kabelabschluß einfach durch Verlängern der Leiterbahnen eingepasst werden. (bzw. beim Kabel an dieser Stelle zeine Zugentlastung vorgesehen werden kann)
Ich pers. plädiere immernoch eher dafür das Tut in einer Variante ohne Smd Bauelemente und mit ISP zu erstellen. (um es Benutzer- und Einsteigerfreundlicher zu machen)
Das Layout direkt auf ein käuflich erhältliches Kleingehäuse anzupassen ist sicherlich eine gute Idee.
|
|
« Letzte Änderung: Oktober 19, 2008, 15:20:18 von StarGoose »
|
Gespeichert
|
|
|
|
Flo
Case-Konstrukteur

Karma: +3/-0
Offline
Geschlecht: 
Beiträge: 505

23
|
 |
Re: HID-IR
« Antwort #23 am: Oktober 20, 2008, 06:31:30 » |
|
Ja, ISP und Nicht-SMD würde ich sehr begrüßen! 
Obwohl man an den Fotos ja sehen kann, dass SMD eine gute Möglichkeit ist seine Löterfahrung zu zeigen
|
|
|
Gespeichert
|
|
|
|
The Slow
Stichsägenquäler

Karma: +2/-0
Offline
Geschlecht: 
Beiträge: 62
Wird Zeit, dass hier mal was anderes steht.
|
 |
Re: HID-IR
« Antwort #24 am: Oktober 20, 2008, 17:28:42 » |
|
Obwohl man an den Fotos ja sehen kann, dass SMD eine gute Möglichkeit ist seine Löterfahrung zu zeigen
Ich hab da schon ganz andere Sachen verbrochen! (zweites Bild)
Aber zurück zum Thema: wie bereits erwähnt habe ich mir Gedanken über ein neues Layout gemacht, herausgekommen ist folgendes: Es gibt keine SMD-Bauteile mehr denn bis auf den nicht unbedingt benötigte Kondensator der Resetbeschaltung wurden alle Teile durch bedrahtete ersetzt, der besagte Kondensator fliegt komplett raus. Ausserdem habe ich Sockelleisten rund um den IC platziert, auf diese kann ein einfacher Adapter gesteckt werden, auf dem sich dann die Standard-ISP-Buchse befindet, ich denke das ist ein guter Kompromiss zwischen Größe und Handling. Der zweipolige Jumper wurde durch einen dreipoligen ersetzt ,ursprünglich hatte ich die Idee darüber eine angepasste Version dieses Bootloaders zu nutzen, dieser wird zwar durch die Sockelleisten nicht mehr benötigt, aber man weiss ja nie was einem sonst noch für ein Nutzen einfällt, kleiner wird die Platine ohne jedenfalls nicht.
Ich denke ich werde die Umfrage noch bis Ende der Woche laufen lassen. Bis dahin sollte ich auch das zweite Layout für die Kabelversion vorzeigbar haben, damit man sich ne Vorstellung davon machen kann.
edit: hab grade festgestellt, dass die Platine für die Stick-Variante fast perfekt in das Gehäuse passt, das ich mir ausgesucht hatte. Ich brauche also keine zwei Layouts machen. Für die Kabel-Variante einfach ne USB-B Buchse und evtl. einen 3 poligen Stecker falls der Sensor abgesetzt werden soll. Damit ist dann auch die Umfrage hinfällig und ich mache da mal zu.
Kleines Update zum Fortschritt: Sonntag wird bei Reichel bestellt, dann kann ich die Schaltung mal zusammenbauen, und dann gehts hier weiter.
|
Stick.JPG (82.13 KB - runtergeladen 146 Mal.)
QFN-Gehaeuse.jpg (41.95 KB - runtergeladen 147 Mal.)
|
« Letzte Änderung: Oktober 24, 2008, 18:02:27 von The Slow »
|
Gespeichert
|
Routers use routing protocols to exchange routing tables and share routing information. In other words, routing protocols enable routers to route routed protocols.
|
|
|
rec00n Art
LED-Tauscher

Karma: +0/-0
Offline
Beiträge: 47
Ich liebe dieses Forum!
|
 |
Re: HID-IR
« Antwort #25 am: November 19, 2008, 12:40:17 » |
|
geil, mehr kann man dazu ned sagen...
sowas is echt ne spitzen idee^^ bin mal sehr gespannt auf die fertige firmware und ggf. pc software 
aber echt respekt fürs avr proggren^^
|
|
|
Gespeichert
|
|
|
|
Seiten: 1 [2]
|
|
|
|
|