Tagebuch [Tagebuch] USB-Mediasteuerung im Eigenbau

Hallo Leute,

heute (oder vielleicht sogar noch gestern Abend, aber da musste ich nach München aufs Steel Panther Konzert) sind endlich die Platinen gekommen ( lol - endlich - das bei einer Produktionszeit von 3 AT xD ).

Nachdem ich also die Platinenprototypen für die Firma aufgebaut und kurz getestet habe, hab ich mich sofort noch drann gemacht meinen kleinen Funkempfänger aufzubauen und zu testen (wobei das Testen jetzt natürlich erst zuhause geschehen ist).

Erstmal natürlich Bilder von der Platine (sowohl bestückt, als auch unbestückt):

Erstmal die Oberseite mit dem Mikrocontroller (in dem Fall ein PIC18F26J50), dem Spannungswandler (MCP1702 - 3,3V), 2 Widerständen für die Programmierung und einigen Kondensatoren...
IMG_20120322_203502.jpg


... und die Rückseite mit dem RFM22B-S2 Funkmodul auf 868MHz:
IMG_20120322_203517.jpg



Die Änderungen am Programm waren minimal und haben sich darauf beschränkt, ein paar Pins umzubenennen und das IO-Mapping für die SPI-Schnittstelle auf andere Pins zu legen - dann hat es auch schon wieder genauso gut funktioniert wie zuvor!

Dann hab ich jetzt noch einen kurzen Reichweitetest ohne Antenne am Empfänger gemacht (leider hab ich noch keine gewinkelten SMA-Stecker zur Hand) und bin dabei aber auch in der ganzen Wohnung ausgekommen (also ca. 15 - 20m Abstand mit Wänden dazwischen). Demnach sollte es mit Antenne möglich sein, die Sendeleistung deutlich zu reduzieren - mal schaun ob ich darauf Lust habe :P

Somit stehe ich jetzt wieder davor, mein Endgerät mit den kapazitiven Tasten zu bauen - da hab ich die Schaltung schonmal vor einiger Zeit gezeichnet, allerdings bin ich mir über das Layout der Tasten immer noch nicht im klaren... mal schaun was Sinn macht und wie es vor allem komfortabel und fehlersicher (Verwechslung, versehentliches Drücken einer falschen Taste, etc. ) gestaltbar ist.

Schöne Grüße aus Tirol,
Marco

Zurück zum Inhaltsverzeichnis
 

Anhänge

  • IMG_20120322_200638.jpg
    IMG_20120322_200638.jpg
    226,9 KB · Aufrufe: 89
  • IMG_20120322_200652.jpg
    IMG_20120322_200652.jpg
    269,6 KB · Aufrufe: 74
Wir bestellen die immer bei Piu-Printex, wobei ich privat auch schon gute Erfahrunge mit PCB-Pool gemacht habe.

Ein Kollege von mir hat jetzt noch einen günstigen und (anscheinend) guten Platinenhersteller in China entdeckt, bei dem wir jetzt dann probeweise was bestellen werden (wäre vor allem für den privaten Gebrauch preislich sehr attraktiv) - der Name ist mir jetzt leider entfallen, aber die Skepsis bleibt bestehen!
 
Sooo, nach einer Ewigkeit hab ich mal wieder kleine Update News:

Den Plan mit der kapazitiven Steuerung hab ich mal auf Eis gelegt - der Grund dafür: ich fürchte es ist einfach nicht praktisch - bei Tasten kann man nach einer gewissen Zeit einfach blind sagen, welche man drückt - bei einer kapazitiven Fläche muss man doch immer schauen (siehe SMS schreiben auf Smartphones... wie soll das jetzt unterm Autofahren gehen :ugly:).

Aber immerhin hab ich mir jetzt die Funkplatine mit Tasten gezeichnet und folgendes ist dabei rausgekommen:

Die Schaltung:
funkplatine_schaltung.png


und das Layout:
funkplatine_layout.png


Die Belegung der Tasten hab ich mir noch nicht überlegt, aber es ist ziemlich sicher, dass die oberen drei Taster für Vol+/-/Mute sein werden und die unteren die Steuerfunktion übernehmen werden (wobei sich hier die Belegung noch zeigen wird und sowieso nur eine Kleinigkeit in der Software ist).

Ansonsten werd ich jetzt mal schauen, was mich die Platine bei verschiedenen Herstellern so kostet... damn... schon wieder Geld ausgeben! :ugly:

Achja, bin grad auf folgende Seite gestoßen:
Eurocircuits

Der Preis bei denen ist relativ gut - hat da schon wer Erfahrungen gemacht?


Edit: Batteriekontakte sind übrigens in folgendem Datenblatt die Typ 55 - ideal, da so die Batterien auf der Platine halten, ohne dass man im Gehäuse darauf Rücksicht nehmen muss.
Edit2: Hab jetzt die Eagle Daten mal hochgeladen:
Anhang anzeigen funksteuerung_v0.zip
Viel Spaß damit!


mfg
marco

Zurück zum Inhaltsverzeichnis
 

Anhänge

Zuletzt bearbeitet:
Hey, schön dass es weiter geht ;)

Bei denen hab ich noch keine Erfahrung gemacht.

Ich hab bisher nur bei Fritzing Fab ätzen lassen...ist zwar nicht ganz so billig, aber das Ergebnis ist top! Kann ich nur empfehlen ;)

Grüße
 
also wenn ich mich nicht verschaut habe, dann ist das alles andere als billig und eine andere tastatur wäre viiiel billiger?!
 
Aaaaah juhu es geht weiter :) schaut sehr schön aus! Aber schade, dass du das mit den Sensoren nicht weiter verfolgst :(
Wegen Leiterplattenhersteller kannst du hier mal durchschauen und auch dort im Forum nachfragen die kennen sich immer aus ;) :D
Platinenhersteller - Mikrocontroller.net

EDIT: Wo bekommt man denn dieser Batteriehalterungen her ?
LG Hendi
 
also wenn ich mich nicht verschaut habe, dann ist das alles andere als billig und eine andere tastatur wäre viiiel billiger?!

Naja, jetzt ist ja mein QPAD MK-50 gekommen, und bei der hätte ich jetzt genau meine Steuerelemente wieder auf der Tastatur (wenn auch nur als Zusatzfunktion der FN-Tasten).
Aber vor allem die Funklösung hat es mir mittlerweile angetan - so brauche ich beim Blu-Ray schaun nicht mehr aufstehen und zum PC gehen (natürlich gäbe es hierfür auch sogenannte Fernbedienungen, aber wayne!).
aja - und man lernt ja auch was dabei :daumen:

Aaaaah juhu es geht weiter :) schaut sehr schön aus! Aber schade, dass du das mit den Sensoren nicht weiter verfolgst :(
Vielleicht greife ich das nochmal auf - rein als Versuchsprojekt!

EDIT: Wo bekommt man denn dieser Batteriehalterungen her ?
Die verwende ich derzeit bei einem Firmenprojekt, von dort hab ich sie auch - bestellt haben wir die bei Digikey und/oder RS (wobei mir grade einfällt, dass ich in der Firma eh nur die zur Durchsteckmontage verwende!).


EDIT: Hab grade gesehen, dass ich die Batteriekontakte nicht richtig positioniert habe - da war ein seitlicher Versatz drinnen - ist aber jetzt ausgebesert und die Dateien sind neu hochgeladen!

lg
Marco
 
Zuletzt bearbeitet:
Hey Leute,

ich hab mich jetzt doch dazu entschieden, dass ich mich mal der ganzen kapazitiven Geschichte ein wenig widme.

Durch Zufall kann ich da eine Platine, die eine Freund von mir geätzt hat missbrauchen - somit kann ich auf einem PIC18F27J53 (ist eine noch etwas bessere Version vom bisher verwendeten PIC18F26J50) verwenden - das Board dient aber nur zu Testzwecken und wird so nie verwendet werden.

Hier mal die Platine:
Top:
C360_2012-04-24-20-49-38_org.jpg

und Bottom:
C360_2012-04-24-20-50-05_org.jpg

hier hab ich noch schnell einen 3,3V Spannungsregler raufgebastelt, da dieser PIC die 5V von USB nicht verträgt... mal schaun ob er das erste kurze Anschließen ohne den Regler überlebt hat :ugly:

Hoffentlich bis bald mit guten Nachrichten,
max00

Zurück zum Inhaltsverzeichnis
 
Sooo, nachdem jetzt die extrem stressige Zeit in der Arbeit vorbei ist, habe ich wieder Lust und Laune an der kapazitiven Platine weiter zu basteln.

Folgendes ist jetzt endlich dabei rausgekommen:

Ich hab mit der Platine vom vorherigen Eintrag mal ein paar Versuche gemacht, und mit zwei kleinen Modifikationen auch lauffähig gemacht (es fehlte ein Kondensator (wobei ich mir nicht sicher bin ob der ausschlaggebend war) und noch eine +3,3V Verbindung für das integrierte USB-Modul --> die Platine war ja eigentlich für einen PIC18F2455 geplant).
Das liegt eh schon lange in der Vergangenheit (war kurz nach dem letzten Eintrag).

Die letzten Tage (eigentlich irgendwann letzte Woche in der Arbeit - dort werden wir eventuell auf kurz oder lang auch mal kapazitive Tasten verwenden) hab ich mich dann mal drann gemacht, den mTouch Stack von Microchip zu testen. Geplant war von mir, dass ich den einfach integrieren und verwenden kann. Als Grundlage wollte ich da auf die CTMU (Charge Time Measurement Unit) afubauen, da diese sehr gute und schnelle Ergebnisse liefern soll!
Aber aus immer noch unerkenntlichen Gründen wollte diese Variante einfach nicht funktionieren (bzw. hatte ich bei zwei von 4 Tasten einen Werteausschlag in die entgegengesetzte Richtung - wtf?) - eine ältere Version des mTouch Stacks hab ich zwar hingebracht, allerdings hat mir das vom Programmaufbau nicht sonderlich zugesagt.

Nach diesen Erkenntnissen (und 2 imho verschwendeten Tagen) hab ich mich an meinen eigenen, zumindes für diesen Chip sehr universellen, Kapazitiven Stack gemacht. Aufgebaut habe ich den auch auf die CTMU (genaueres habe ich da aus irgendeinem Application Note von Microchip).
Und siehe da - schon nach wenigen Stunden hatte ich erste, sinnvolle und reproduzierbare Ergebnisse. Ich hab dann den Stack ein wenig erweitert/angepasst und irgendwann war ich dann mit dem Ergebnis zufrieden :daumen:

Gestern und heute hab ich dann noch das Ganze um das HID-Interface erweitert, verschiedene Tastentypen definiert und lauffähig gemacht (ich hab jetzt einerseits Sensortaster welche nur einmalig ein "gedrückt" Signal schicken und solche die das "gedrückt" Signal dauerhaft schicken) und meinen Spass damit gehabt :D

Als kurze Zusammenfassung was mein Stack jetzt kann:

  • Einstellbare Anzahl der Sensoren
  • Einfache Initialisierung der Sensoren
  • Einstellbare Anzahl der Messzyklen pro Messvorgang (um die Werte ein wenig stabiler zu machen)
  • Einstellbare Anzahl der Messvorgänge für eine Änderung des Status (um gröbere Ausreißer zu filtern)
  • Einstellbarer Schwellwert (im Grunde prozentuell vom Mittelwert)
  • Einstellbare prozentuelle Einberechnung des letzten Messwert zum Mittelwert
  • Einstellbarer Sensortyp (Dauersignal oder Impuls beim Drücken, Wechsler noch in Arbeit)
Was mir grad noch eingefallen ist:
Ich hab mich bei diesem Programm mal ein wenig mit "Protothreads" gespielt (siehe hier) --> einfach nur genial! :hail:
Hab mir zwar hierfür eine Timer-Library basteln müssen (bzw. ich hielt es für sinnvoll), aber es hat sich ausgezahlt!


Sooo, da ist ja jetzt was zusammen gekommen.
Wer es bis hierher geschafft hat - Danke fürs lesen :D


lg
Marco


PS: Bilder folgen, wenn ich Zeit habe (jetzt muss mal Diablo III angezockt werden). Außerdem hab ich noch ein Video geplant, aber da die Handykamer mit der aktuellen Software leider nicht funktioniert, muss ich mir noch eine Alternative suchen.

Zurück zum Inhaltsverzeichnis
 
Zuletzt bearbeitet:
Jawoll das hört sich doch richtig genial an :) oder einfach "leider geil"! :daumen:
habe noche in paar Fragen:

-hast du schon mit verschiedenen Materialstärken getestet bzw. wie dick darf das Material sein ?
-Wie viele Tasten sind damit realisierbar? Kenne mich mit PICs nicht so und weiß nicht, was die für eine Anschlusskapazität haben^^
-Wie werden die Sensoren angeschlossen (als Matrix realisiert oder einfach pro Sensor ein Eingang)?
-Was wird an externer Hardware benötigt (für einen Sensorkanal)?

echt toll, was du da auf die Beine stellst :)
 
Zuletzt bearbeitet:
Danke und folgendes zu deinen Fragen:

  • anfänglich hab ich nur mit isolierband getestet (der Lötstopplack hat sich beim schleifen leider verabschiedet) und dann noch mit einer 2mm starken Glasscheibe --> nachdem ich den Schwellwert verringert habe, hats auch damit funktioniert. Vor allem wird das aber auch vom Layout abhängen - ich hoffe mit meinem finalen Layout kann ich leicht auf die 2mm gehen!
  • Beim derzeit verwendeten PIC (PIC18F27J53 - 28pins) kann ich maximal 10 Tasten damit realisieren - bei der 44pin Variante wären es 13 Tasten (ich brauche pro Taste einen A/D Kanal)
  • Die Sensoren werden direkt angeschlossen - eine Matrix hab ich mir noch nicht überlegt (wobei das nur noch eine Sache des Layouts und der Auswertung wäre)
  • nichts :D
Wenn ich wieder mal von Diablo 3 weg komme werd ich mich noch ein wenig ans Debuggen / Erweitern machen --> eine richtige Initialisierung der Sensormittelwerte und eine Neu-Initialisierung bei Fehlern (wenn z.B. der Messwert über eine zu lange Zeit absinkt) werd ich noch einfügen.
 
Danke für die detailierte Antwort :)
Waaas ganz ohne Kondensatoren ? Funktioniert das denn zuverlässig? Wenn ja ist das ja extrem praktisch :)
 
Ja, funktioniert äußerst zuverlässig ;-)
Ist auch bei den ganzen Demo Boards von Microchip so!
Siehe auch hier: AN1250

Jetzt hab ich schnell auch noch ein paar Bilder von meinem Aufbau gemacht:
Als erstes der Gesamtaufbau - links die Sensorflächen, in der Mitte das Board und rechts meine Debug-LEDs
IMG_20120517_125752.jpg


Hier mal die Sensorflächen ohne Isolierband (hab diese auf der Oberseite nach dem Löten abgeschliffen, um flach zu werden, damit die Glasplatte schön aufliegt.
IMG_20120517_125831.jpg


Die Unterseite der Sensoren (ich hatte nur eine doppelseitige Platine rumliegen, deshalb hab ich da mal die Kupferfläche weitestgehen entfernt --> dadurch steigt die Empfindichkeit)
IMG_20120517_125841.jpg


Und hier noch Beweisbilder zur Funktion mit der Glasscheibe (2mm) (ok, könnten auch gefaket sein :P)
IMG_20120517_130042.jpg

IMG_20120517_130046.jpg


Die beiden mittleren Sensoren agieren hier gerade als Impulstaster --> somit hätt ich mir mit dem Timing zum Foto machen schwer getan!
 
Mann o mann is das cool! Wenn ich das Abi in gut 3 Wochen rum habe, dann werde ich mich auch mal wieder damit beschäftigen :)
Wie viele Ressourcen hat der PIC bei maximaler Sensorbelegung noch frei? Könnte man da noch eine RC5 Fernbedienung drum rum stricken oder iwas mit einem Funkmodul, oder ist der schon voll bis oben hin? :D
 
Also selbst mit USB-Stack, Funkmodul, RC5 Fernbedienung und was weis ich noch gehen dir davor die IO-Pins aus, bevor der Speicher voll sein wird (so ne grobe Vermutung) ;-)
Der jetzt verwendete hat ja immerhin 128k, aber ich schätze, dass selbst die 32k schwer zu sprengen sind!

Edit: Hab grad mal nachgeschaut - es sind 10213 Byte ROM und (genau) 512 Byte RAM die ich derzeit brauche! Optimierungspotential ist noch enormes da, aber das kann ich ja immer noch in einer "V2" machen ;-)

Edit 2: Hab mir jetzt grad den Spaß gemacht, zu schauen, wie viel Speicher meine selbst geschriebenen Libraries brauchen (also einmal die Kapazitive und die Timer-Lib für die Protothreads) - folgendes ist aufgekommen:

  • Die Timer Library braucht 880 Byte ROM und 21 Byte RAM
  • Die Cap Library braucht 1758 Byte ROM und 52 Byte RAM (für 4 Sensoren)
  • Das Grundgerüst mit USB-HID-Device samt Protothreads braucht 6657 Byte ROM und 415 Byte RAM (wobei mir das ein wenig viel vorkommt - aber wer weiß, was der USB-Stack so alles macht :ugly:)
 
Zuletzt bearbeitet:
Zurück