Februar 15

PC Klopfsensor mit Arduino Uno

Ich bin auf diese Idee gekommen, da mein kleiner Bruder öfters mal FIFA auf seinem PC spielt (das Fußballspiel). Wenn er am verlieren ist, kann es schon einmal vorkommen, dass er aus Wut kurz gegen sein Tastaturbrett hämmert =), doch leider hört man dies auch im Nachbarzimmer. Aus diesem Grund habe ich ihm einen kleine Abhilfe geschaffen. Im folgenden werde ich das Prinzip erklären:

Ich verwende als Sensor, der das Klopfen "detektieren" soll, einen Piezokeramik, die durch äußere Krafteinwirkung, also durch das Klopfen eine Ladungstrennung zeigt. Durch diese Ladungstrennung und der Tatsache, dass Keramik ein guter Isolator ist, ensteht eine Art Kondensator, an dessen beiden Enden eine Spannung gemessen werden kann. Diese Spannung wird mittels eines Arduino Unos am analogen Eingang gelesen und mittels der gegebenen Auflösung von 1023 bei 0-5V in eine integer-Zahl umgewandelt, die der gemessenen Spannung entsprecht.

Nun muss man nur noch die Empfindlichkeit dahingehend anpassen, dass der Mikrocontroller erst bei Klopfen den Aktor, in dem Fall 3 Piezolautsprecher mit einer Musik ansteuert. Also wenn er das Tastaurbrett rauszieht zum Schreiben, soll das ganze ja noch nicht anfangen =). Ich erstelle dazu im Arduino Sketch im "void loop" Teil eine if-Bedingung. Der Arduino arbeitet auf C- Programmiersprache.

Ich werde die if-Bedingung anhand eines einfachen Beispiels erklären: "Wenn das Wetter schön ist, kaufe ich mir ein Eis." Diese Bedingung sagt gleichzeitig, dass ich mir kein Eis kaufen werde, wenn es regnet. So läuft das beim Arduino Uno auch ab. Die Musik soll erst ertönen, wenn er auf das Tastaturbrett hämmert.

Wenn die if-Bedingung also nun erfüllt ist, also wenn er aus Wut auf das Tastaturbrett hämmert, spielt der Arduino über drei angeschlossene Piezolautsprecher eine Melodie ab. Die Melodie habe ich nicht selbst geschrieben sondern von dieser Seite verwendet: https://github.com/drewcrawford/bassdll

Im Anschluss, also wenn die Melodie fertig ist, soll das "mehr oder weniger große Finale" kommen, der PC soll neustarten. Dabei war ich am Anfang nicht sicher, wie das funktionieren soll, doch es ist recht einfach.

Beim Einschalten eines PCs, also wenn ich die Power-Taste betätige, schließe ich einen Schalter, der die zwei Pins auf dem Motherboard miteinander auf Masse zieht. Ich nehme also beim Arduino einen digitalen Outpout-Pin, der am Anfang den Pegel High (5V) hat und wenn die Melodie fertig ist an dem Pin auf Low umschaltet, dann startet der Pc neu.

Wichtig ist hierbei, dass ich nur effektiv einen der beiden Pins für den Restart am Motherborad benötige, die genauen Pinbelegungen habe ich aus dem Motherboarddatenblatt entnommen. Also einfach bei den beiden Pins testen, welcher durch GND einen Neustart ausführt und diesen zum Beispiel mit Pin13 (so habe ich es gemacht) am Arduino verbinden.

Wie das ganze dann funktioniert, können Sie hier sehen: