Schlagwort-Archive: USB

Arduino-Bastelei: Backup-Festplatte einschalten (lassen)

Arduino Pro Micro mit Relais

Nach meiner ersten und für den Anfang etwas aufwendigen Arduino-Bastelei war neulich Bedarf für ein zweites, diesmal sehr überschaubares Projekt: Das Einschalten einer USB-Backupfestplatte genau dann, wenn sie auch gebraucht wird.

Der Hintergrund ist der: Bei einem Rechner wird mit dem sehr empfehlenswerten Tool HardlinkBackup beim Herunterfahren des Rechners ein „inkrementelles“ Backup erstellt, und zwar mittels Hardlinks. Kurz gesagt macht man ein Vollbackup mit dem Platzbedarf eines inkrementellen Backups. Das aber nur am Rande, wäre ein Thema für sich. Das Backup wird jedenfalls automatisch gestartet, sobald Windows heruntergefahren wird. An dieser Stelle sollte die USB-Festplatte, auf die gesichert wird, dann auch verfügbar sein und nicht manuell eingeschaltet werden müssen. Dauerhaft laufen soll sie natürlich auch nicht, wenn der Rechner läuft. Das ist erstens nicht gut für die Lebensdauer der Platte, und zweitens nicht gerade sicher im Hinblick auf diverse Schadsoftware etc. Eine Möglichkeit wäre es, die Platte per Software erst einzubinden, wenn sie gebraucht wird, ich wollte sie aber hardwareseitig wirklich komplett ausgeschaltet haben.

Arduino Pro Micro

Und hier kommt wieder der kleine und günstige Arduino Pro Micro ins Spiel. Der kann – wie so ziemlich jeder andere Arduino auch – nämlich erstens per USB serielle Kommandos empfangen und verarbeiten, und zweitens dadurch getriggert dann z.B. über ein Relais die Stromversorgung der USB-Platte anschalten. Die Kosten für den Arduino plus das Relais liegen zusammen bei ca. 10€.

Und genau so wurde das auch umgesetzt. Mittels eines kleinen Tools namens SerialSend schickt der Rechner eine Kommando an die entsprechende USB-Schnittstelle, an der der Arduino hängt:


SerialSend.exe /baudrate 9600 /devnum 18 SwitchRelayON

Auf dem Arduino läuft dann folgender Sketch, der dieses Kommando empfängt und dann das an ihm an Pin 15 angeschlossene Relais schaltet:


// Define Relay Pin:
#define PinRelay 15

// Define string for relay status:
String SerialRead     = "SwitchRelayOFF";
String SerialReadOld  = "SwitchRelayOFF";

void setup() {
  
  // Define Pin mode:
  pinMode(PinRelay, OUTPUT);
  
  // Switch the relay OFF:
  digitalWrite(PinRelay, HIGH);

  // Turn serial monitor on:
  Serial.begin(9600);
  
}

void loop() {

  // Read data from serial port:
  if(Serial.available()>0) {
    SerialRead = Serial.readString();
  }

  // Only send command if status changed:
  if (SerialRead != SerialReadOld) {
    // Switch Relay:
    if (SerialRead == "SwitchRelayON") {
      digitalWrite(PinRelay, LOW);
      Serial.println("relay switched ON");
    } else if (SerialRead == "SwitchRelayOFF") {
      digitalWrite(PinRelay, HIGH);
      Serial.println("relay switched OFF");
    } 
  }

  SerialReadOld = SerialRead;
  
//  delay(1000);
  
}


Das SerialSend-Kommando wurde dann noch in das .bat-Skript integriert, welches sowieso schon beim Herunterfahren des Rechners das Backup angefahren hat:


@echo off


REM Platte über Arduino starten:
"C:\Users\Blablabla\Documents\backup-Sachen\SerialSend.exe" /baudrate 9600 /devnum 18 SwitchRelayON
timeout /T 20 > nul


REM Abbruch, falls Festplatte nicht erreichbar
if not exist "B:\" goto NoUSB:

REM Möglichkeit bieten, um Backup noch manuell abzubrechen:
Choice /T 15 /D J /M "Das Backup wird in 15 Sekunden automatisch gestartet. 'N' bricht ab... "
If Errorlevel 2 goto Abbruch:
If Errorlevel 1 goto StarteBackup:

REM Starte Backup
:StarteBackup
echo.
echo Starte das Backup, bitte warten...
cd "C:\Users\Blablabla\Documents\backup-Sachen\"
REM call "USB-Backup.hbd"
"C:\Program Files\Lupinho.Net\HardlinkBackup\HardlinkBackup.exe" -execute USB-Backup.hbd
echo Backup fertig!
Goto eof:

REM Ausgabe und Abbruch, falls Festplatte nicht erreichbar
:NoUSB
echo .
echo USB-Festplatte nicht gefunden!
Goto eof:

REM Abbruch
:Abbruch
echo .
echo Dann eben nicht...
Goto eof:

REM Sprungmarke, um Batch-Datei von jeder Stelle aus zu beenden:
:eof

Fast vergessen: Durch das Relais muss natürlich noch die Stromversorgung der USB-Platte laufen. Am besten hinter dem Netzteil einfach das Kabel aufgetrennt und eine der beiden Kabel durchgetrennt und durhc das Relais schleifen. In diesem Fall habe ich parallel noch einen ganz normalen Kippschalter gehängt, damit man die Platte auch ohne den Arduino per Hand einschalten kann, wenn man das mal möchte.

Das war’s dann auch schon. Fährt man jetzt den Rechner herunter hört man das kurze Klacken des Ralais, dann das Anlaufen der USB-Platte, anschließend startet das Backup und schließlich freut sich der Benutzer.

Arduino-Bastelei: Pedal zum Bass-Üben

Eines vorneweg: Auch wenn ich gern an allem möglichen herumbastle, bei Elektronik hört bei mir der Spaß schnell auf. Ich tausche schon mal defekte Kondensatoren in Netzteilen oder mache aus zwei defekten Kaffeemaschinen eine funktionierende, aber da müssen die defekten Stellen schon durch Rauch oder Feuer auf sich aufmerksam machen. Das große Verständnis von Elektronik fehlt mir. Etwas neidisch beobachtete ich bisher die Bastlerszene, die mit diversen günstigen Bauelementen allen möglichen Kram zusammenzaubert. Und immer wieder hörte ich, dass das alles mittlerweile gar nicht mehr schwer sei. Jeder könne das. Dabei viel immer wieder das Stichwort Arduino.

Im Sommer dachte ich, es wird auch für mich Zeit, mich da mal ein bisschen einzuarbeiten. Also habe ich einen bunten Strauß an Arduinoboards, Sensoren und Aktoren bestellt und zu basteln angefangen: Einfach mal ganz simpel einen Schalter an ein Arduinoboard und damit ein Schrittmotor steuern. Oder mit einem Näherungssensor ein Servo. Oder einfach nur eine LED blinken lassen (ein Unterfangen, an dem ich mit einer analogen Schaltung schnell scheitern würde). Mein Fazit ist: Wer googlen kann, der kann auch Arduino.

Bei diesen Spielereien habe ich irgendwann gelesen, dass diverse Arduinoboards, die ja einfach über die USB-Schnittstelle programmiert werden können, am Rechner auch gleichzeitig als Human Interface Device agieren können, sich also wie eine Maus oder eine Tastatur verhalten. Es ist also relativ leicht, sie als externes Eingabegerät für den Rechner zu verwenden. Dazu sind auch keine speziellen Treiber am Rechner nötig. Board an den USB-Anschluss und fertig.

Die Idee

Damit war die Idee geboren: Beim Bass-Üben stört es mich immer wieder, das Instrument aus der Hand legen zu müssen, um in Spotify nochmal zum Songanfang zu springen, in Youtube-Tutorials vor- oder zurückzuspulen, eine Webseite mit Chords weiterzuscrollen oder einfach nur die Lautstärke des PCs anzupassen. Ich übe in der Regel mit Kopfhörer an einem kleinen Mischpult, an dem auch der Rechner hängt, der mich mit Musik und Tutorials versorgt. Was es braucht ist eine Möglichkeit, diverse Funktionen des Rechners mit den Füßen zu steuern. Sollte mit einem kleinen Arduino machbar sein. Weiterlesen

Garantie wegoptimiert

Als ich damals mein altes HTC Desire HD in den Ruhestand geschickt habe, um auf das damals neue Nexus 4 umzusteigen, habe ich beschlossen, technische Geräte häufiger zu wechseln und nicht zu lange mit eigentlich veralteten Sachen zu arbeiten. Aber ich ertrage es einfach kaum, Dinge auszurangieren, die eigentlich noch ihren Dienst verrichten.

Ende letzten Jahres habe ich es dann doch getan: Mein sieben Jahre alter Dell Inspiron 1720 wurde voll funktionsfähig in Rente geschickt. Es war ein Weltgerät, nie mehr werde ich einen so guten und zuverlässigen Rechner haben! Aber das Alter… Glaubt mir, ich weiß, wovon ich rede.

Ich brauchte wieder ein Arbeitstier, maximal konfigurierbar. Und bezahlbar. Seither arbeite ich mit einem Schenker M704 mit sehr ordentlicher Ausstattung. Letzte Woche hab ich ihn zum ersten Mal an seine Grenzen gebracht, besser gesagt darüber hinaus. Aber gut, die >100GB RAM, die ich für mein Problem benötigte, hat im Moment einfach kein Laptop an Board. Das Gerät ist solide, keine Schönheit, aber ein echtes Arbeitstier. Ein paar Dinge stören mich (Tastaturlayout: Kein Abstand zum Zahlenblock, Position der Cursortaste etc.. Anschlüsse: Seitlich und zu weit vorne. Lüftersteuerung: Also bitte…), aber es gibt wohl nicht das perfekte Gerät.

Seit dem Umstieg arbeite ich auch mit einer neuen Maus, einer Logitech M705. Keine Bluetooth-Maus mehr, daher kommt sie mit einem kleinen USB-Adapter daher, einem „Logitech Unifying-Empfänger„. Ich dachte, das Ding stecke ich in den einzigen USB2-Port des Rechners, da wird das nicht weiter stören. Es stört aber, und zwar gewaltig. Das Problem ist, dass der Stecker einfach viel zu lang ist und man zu oft daran hängen bleibt. Sei es, wenn man den Rechner in die Schutzhülle der guten alten Umhängetasche stecken will (was ich oft mehrmals täglich will), oder wenn man den Rechner irgendwo seitlich abstellt. Die Gefahr, die Buchse (und damit vielleicht noch etwas mehr) mit einem Mal nachhaltig zu beschädigen ist nicht gerade klein. Und den Stecker jedes Mal abzuziehen und in der Maus zu deponieren ist auch nicht gerade elegant.

Die Idee hatte ich schon länger, heute hab ich es gewagt: Ich hab den USB2-Port quasi nach innen verlegt: Innen an den Port ein Stück USB-Kabel mit Buchse gelötet, die eigentliche USB-Buchse außen zugemacht und fertig. Gleiche Funktionalität wie vorher, aber der störende Dongle weg.

Weg ist damit allerdings auch die Garantie meines nicht mal ein Jahr alten Gerätes. Ich kann nur hoffen, dass dich Schenker – sollte es tatsächlich einmal zu einem Garantiefall kommen – kulant zeigen wird. Immerhin fanden sie die Idee eines fest verbauten Logitech Unifying-Empfängers gar nicht so schlecht.

 

 

USB für Dummies


via yankodesign.com

Liebes USB-Konsortium,

ihr habt euch sicher sehr viele Gedanken um die diverse USB-Stecker gemacht, und das ist auch sehr lobenswert. Aber ihr habt einen kleinen und doch folgenschweren Fehler gemacht: Ihr habt nicht mit der Bequemlichkeit von uns Benutzern gerechnet. Wir müssen im Leben schon genug lernen, da wäre es doch nett, wir könnten unsere USB-Geräte einstecken, ohne vorher mühsam lernen zu müssen, wie herum sie richtig eingesteckt werden müssen. Lasst euch also mal von diesem netten Steckerentwurf inspirieren und nehmt ihn in euren Standard auf. Wir werden es euch danken!

USB-Netz

via yankodesign.com

Ist ja nicht so, dass mich das Thema USB hier noch nicht beschäftigt hätte. Aber das ist wirklich mal eine vorbildliche Idee. Ein Gleichspannungsnetz im Haus, welches die üblichen Netz- und Ladegeräte überflüssig macht und es ermöglicht, mobile Geräte einfach per Kabel ans USB-Netz anzuschließen. Wobei USB ja hier nicht wirklich USB ist, es geht dabei nur um die Stromversorgung. Aber das ist ja schon ein Anfang.

Haben will!

iSchreibmaschine

via usbtypewriter.com

Du hast noch eine alte Schreibmaschine im Keller, von der du dich nicht trennen kannst, weil sie so einen feinen Klang hat? Du lässt sie dort aber vergammeln, weil du nur noch mit deinem iPad auf dem Sofa kuschelst? Mit diesem Teil hier kannst du dein schlechtes Gewissen beruhigen und die beiden zusammenbringen. Spart außerdem das Putzen der iPad-Oberfläche, wenngleich kein Geld. Egal, auf die paar hundert Dollar kommt es auch schon nicht mehr an.

Kabel-Gabel

Fork And Cream Sauce – Cable Management by Lufdesign
fork_sauce2
fork_sauce3
fork_sauce4

via yankodesign.com

Solche Ideen lob ich mir. Kabel auf dem Schreibtisch nerven, sind aber an vielen Stellen noch unumgänglich. Die Kabel-Gabel könnte einem das Warten auf die Zukunft etwas versüßen. Bleibt allein die Frage, ob das alle Kabel auf Dauer auch gut finden, so malträtiert zu werden. Ich würde es auf einen Versuch ankommen lassen.

Und immer wieder USB

Infinite USB - Plug Redesign by Gonglue Jiang
infinite_usb2

via yankodesign.com

Hab an meinem Rechner bisher noch nie USB-Plätze vermisst. Aber es gibt ja Gesellen, die mit USB-Anschlüssen durchaus geizen.

Das alles spielt aber eigentlich keine Rolle. Die hier gezeigten Anschlüsse sind so oder so eine feine Idee, dazu mit schicken Design. Man würde sie benutzen, ob man sie braucht oder nicht. Klar hat das Konzept seine Grenzen (nur mal eben den mittleren Stecker ziehen? Stromversorgung? Geschwindigkeit?), aber auch das spielt eigentlich keine Rolle…