DIY — Steuerung eines unbekannten Schrittmotor

Schrittmotoren kann man aus alten Druckern, Scannern ausbauen oder z.B. billig im Webshop http://www.muero-fraeser.de/ kann man Schrittmotoren für 2,98 Euro kaufen. Leider fehlt oft ein Datenblatt oder ähnliches. Im Fall der Schrittmotoren von Müro — Fräsen und Mehr ist das einzige was man erfährt:
Schrittmotor unipolar 12V; 3,6°; 240 mA

und das ist schon relative viel.

Steuerung des Schrittmotors mit dem MotorShield von adafruit

Zuerst muss man herausfinden wie die 6 Drähte anzuschließen sind. Dazu kann man die Widerstände zwischen jeweils zwei Drähten messen und auf der Seite Javascript Page to determine stepper wires in eine Tabelle eintragen, die Seite liefert einem dann die richtige Reihenfolge:

Bipolar Stepper Wiring Report
————————————-
Date (user): 29. Mai 2012 22:59:21 MESZ
(script version wires4.htm – plp 2005)

— Description:
Schrittmotor unipolar 12V; 3,6°; 240 mA manufacturer: unknown, dimensions:
— End Description
— Wire Identification:
1 white, 2 yellow, 3 red, 4 black, 5 orange, 6 brown
— End Wire Identification

Your motor wiring, as detected by the script, is:

6 wire motor:
————-
Group A Common: 1 phases: 2 3
Group B Common: 4 phases: 5 6
Not connected: 7
Not connected: 8

Zusätzlich findet man auf der Seite http://www.piclist.com/techref/io/steppers.htm Anleitungen (in Englisch) um zusätzliche Informationen zum Schrittmotor, wie Drehmoment, Leistungsaufnahme etc. herauszufinden.

Adafruit Motor/Stepper/Servo Shield for Arduino kit – v1.0

Anschluss Nr. Drahtfarbe Bezeichnung
1 gelb M1 A
2 rot M1 B
3 schwarz und weiß GND
4 orange M2 A
5 braun M2 B

Wenn man das MotorShield von adafruit verwendet muss man eine externe Spannungsquelle anschließend (die Spannungsversorgung über den Arduino Uno reicht nicht aus).

DIY — AppleTV 2 als Webserver

Auf der Suche nach einem PC der für einen für einen privaten Webserver geeignet ist (niedrige Energiekosten und geringer Kaufpreis) bin ich bei heise.de den Artikel Provider nutzt Apple TV 2 als Webserver gefunden. Da der AppleTV (2. Generation) nur 119Euro kostet, habe ich mir gleich mal einen gekauft.
Im heise.de-Artikle fidet sich folgende Anleitung „Wer das Ganze nachbauen will, findet hier weitere Infos.„.
Es müssen folgende Schritte vollzogen werden:

  1. AppleTV jailbreaken
  2. Konfiguration der LAN oder WLAN Verbindung
  3. Installation des Webservers und der zusätzlich benötigten Software (PHP, Datenbank)

AppleTV jailbreaken

Da ich noch nie ein IOS-Gerät gejailbreakt habe müsste ich mich zuerst über die Jailbreak Thematik informieren was leider gar nicht so einfach ist, da man sehr viele unterschiedliche Informationen dazu im Netz findet.
Eine Web-Recherche hat folgende Möglichkeiten ergeben:

Nach längerem Probieren hat bei mir hat die Methode mit Seas0nPass funktioniert. Das Tool Pwnage 4.3 wäre mir persönlich lieber gewesen, da ich gleich die benötigten Pakete anhand einer Auswahl installieren konnte, leider hat aber der Jailbreak nicht funktioniert. Ich verzichte hier auf eine Beschreibung, da zum einem in den beiden Links das Vorgehen genau erklärt wird und zum anderen, da sich das Vorgehen beim Jailbreaken mit jeder neuen IOS-Version ändern kann. Es bleibt einem nichts anderes übrig als ich selbst in das Web zu stürzen und eine Möglichkeit die bei einem funktioniert zu suchen.

Konfiguration des AppleTVs als Webserver

Von der Seite How To Turn an Apple® TV 2G into a 24/7 Web Server kann man sich ein Shellscript herunterladen, das den gesamten Webserver installiert. Ich möchte im Folgenden trotzdem die einzelnen Schritte beschreiben, da man ja eigentlich nicht viel lernt, wenn man ein fertiges Script ausführt. Folgt hier eine Anleitung es per Hand zu machen.

  1. Installation der benötigten Software: dazu muss man sich mittels der Terminal.app und des Befehls ssh auf die Shell des AppleTV schalten:
     ssh root@ipappletv 
    mit Passwort alpine und anschließend folgende Befehle eingeben:
  2. <br />
    apt-get -y install top<br />
    apt-get -y install vim<br />
    apt-get -y install php<br />
    apt-get -y install lighttpd<br />
    apt-get update<br />
    apt-get update<br />
    apt-get -f -y upgrade<br />
    

    Es werden folgende Softwarepakete installiert:

    • top ist ein Befehl. der in den meisten Unix-ähnlichen Betriebssystemen eine ständig aktualisierte Liste der aktuell laufenden Prozesse des Systems ausgibt. Dabei zeigt top auch die Auslastung der CPU, Speicherverbrauch, sowie etliche andere Informationen an.
    • vim ist eine Weiterentwicklung des Texteditors vi. Das freie Open-Source-Programm wurde 1991 von Bram Moolenaar veröffentlicht. Seitdem wird der Editor aktiv weiterentwickelt. Wie vi zeichnet sich Vim durch seine verschiedenen Betriebs-Modi aus, während viele andere gebräuchliche Editoren nur einen kombinierten Modus für Eingabe und Befehle kennen, in dem Befehle über Tastenkombinationen und grafische Oberflächen ausgeführt werden. Alternativ kann auch nano installiert werden.
    • php ist eine Skriptsprache, die hauptsächlich zur Erstellung dynamischer Webseiten oder Webanwendungen verwendet wird.
    • lighttpd (zumeist gesprochen als Lighty) ist ein von Jan Kneschke entwickelter freier Webserver. Er implementiert alle wichtigen Funktionen eines Webservers und kann, ähnlich wie Apache, durch Module erweitert werden.
  3. Jetzt müssen noch ein paar Verzeichnisse erstellt und die Zugriffsrechte gesetzt werden. Im Verzeichnis /private/var/www werden die Daten gespeichert, die der Webserver zur Verfügung stellen wird. Das Verzeichnis /var/log/lighttpd dient zum loggen von Fehlern und Zugangsdaten des Webservers.
  4. <br />
    mkdir /private/var/www<br />
    chown root:wheel /private/var/www<br />
    mkdir /var/log/lighttpd<br />
    chown root:wheel /var/log/lighttpd<br />
    

    • mkdir Unix-Befehl der ein Verzeichnis erstellt.
    • chown root:wheel Unix-Befehl der die Eigentumsrechte für den Benutzer root aus der Gruppe wheel setzt.
  5. Die Konfiguration von lighttpd ist in einer Datei lighttpd.conf zusammengefasst, die im Verzeichnis /private/etc/ gespeichert werden muss.
  6. [js_markieren]

    server.document-root = "/private/var/www/"
    
    server.port = 80
    # server.username = "lighttpd"
    # server.groupname = "lighttpd"
    # richtige IP des Webservers eintragen
    server.bind                = "192.168.0.150" 
    server.tag ="lighttpd"
    
    server.errorlog            = "/var/log/lighttpd/error.log"
    accesslog.filename         = "/var/log/lighttpd/access.log"
    
    server.modules              = (
                "mod_access",
                "mod_accesslog",
    	    "mod_fastcgi",
                "mod_rewrite",
    	    "mod_auth"
    )
    
    # mimetype mapping
    mimetype.assign             = (
      ".pdf"          =>      "application/pdf",
      ".sig"          =>      "application/pgp-signature",
      ".spl"          =>      "application/futuresplash",
      ".class"        =>      "application/octet-stream",
      ".ps"           =>      "application/postscript",
      ".torrent"      =>      "application/x-bittorrent",
      ".dvi"          =>      "application/x-dvi",
      ".gz"           =>      "application/x-gzip",
      ".pac"          =>      "application/x-ns-proxy-autoconfig",
      ".swf"          =>      "application/x-shockwave-flash",
      ".tar.gz"       =>      "application/x-tgz",
      ".tgz"          =>      "application/x-tgz",
      ".tar"          =>      "application/x-tar",
      ".zip"          =>      "application/zip",
      ".mp3"          =>      "audio/mpeg",
      ".m3u"          =>      "audio/x-mpegurl",
      ".wma"          =>      "audio/x-ms-wma",
      ".wax"          =>      "audio/x-ms-wax",
      ".ogg"          =>      "audio/x-wav",
      ".wav"          =>      "audio/x-wav",
      ".gif"          =>      "image/gif",
      ".jpg"          =>      "image/jpeg",
      ".jpeg"         =>      "image/jpeg",
      ".png"          =>      "image/png",
      ".xbm"          =>      "image/x-xbitmap",
      ".xpm"          =>      "image/x-xpixmap",
      ".xwd"          =>      "image/x-xwindowdump",
      ".css"          =>      "text/css",
      ".html"         =>      "text/html",
      ".htm"          =>      "text/html",
      ".js"           =>      "text/javascript",
      ".asc"          =>      "text/plain",
      ".c"            =>      "text/plain",
      ".conf"         =>      "text/plain",
      ".text"         =>      "text/plain",
      ".txt"          =>      "text/plain",
      ".dtd"          =>      "text/xml",
      ".xml"          =>      "text/xml",
      ".mpeg"         =>      "video/mpeg",
      ".mpg"          =>      "video/mpeg",
      ".mov"          =>      "video/quicktime",
      ".qt"           =>      "video/quicktime",
      ".avi"          =>      "video/x-msvideo",
      ".asf"          =>      "video/x-ms-asf",
      ".asx"          =>      "video/x-ms-asf",
      ".wmv"          =>      "video/x-ms-wmv",
      ".bz2"          =>      "application/x-bzip",
      ".tbz"          =>      "application/x-bzip-compressed-tar",
      ".tar.bz2"      =>      "application/x-bzip-compressed-tar" 
     )
    index-file.names = ( "index.html", "index.php" )
    
  7. Mit dem Befehl lighttpd-angel -f /etc/lighttpd.conf wird der Webserver gestartet.

Hintergrund Informationen

Auf den folgenden Seiten findet man zusätzliche Informationen:

Installing and configuring lighttpd webserver – HOWTO

LDAP + Lighttpd :: Easy setup

Apple TV Webserver | Mac Mini Vault

DIY — Installation von Debian GNU/Linux als Webserver

[seriesposts name=“ProjektAG“ title=“DIY Projekte an der Schule“ orderby=“user_order“]

Ziel dieses Projekt ist die Installation und Funktionsweise eines Webservers zu vermitteln. Nach der Grundinstallation von Debian GNU/Linux, werden anhand dieser die nötigen Grundlagen zur Funktionsweise von Linux vermittelt. Auf der Grundinstallation werden dann ein Apache Webserver, PHP und MySQL Datenbank installiert und konfiguriert.

Inhalt:

  • Installation von Debian GNU/Linux
  • Aufbau und Funktionsweise von Linux
  • Installation des Apache Webservers
  • Konfiguration von Apache und die erste selbst gehostete Webseite
  • Installation von PHP und Einführung in die Funktionsweise von AJAX1
  • Installation und Konfiguration von MySQL
  • Informationen zum Datenschutz

Teilnehmerzahl

  • max. 8 Schülerinnen und Schüler der 10-12. Klassenstufen

Literatur

Howto: Installation von Debian GNU/Linux als Webserver

  1. „Asynchronous JavaScript and XML“ []

NwT — nccad auf dem Mac

Viele meine Schülerinnen und Schüler haben einen Apple-Computer. Wir haben für den NwT-Unterricht eine CNC-gesteuerte Fräsmaschine, die mit der Windows CAD-Software nccad bedient wird. Damit diese Schülerinnen und Schüler zuhause ihre Projekte entwickeln können sollten sie diese Software benutzen können.

Eine Möglichkeit ist mittels von Parallels oder VWware einen Virtuelle-PC zu starten und auf diesem Windows zu installieren. Diese hat zur Folge, dass natürlich Lizenzgebühren anfallen.

Das open-source Projekt wine verfolgt einen anderen Weg. Es stellt Windows-Anwendungen eine sogenannte Laufzeitumgebung zur Verfügung. Mit Hilfe des Programms Wineskin Winery kann ein Container erstellt werden in dem ein Windows-Programm aufgeführt wird.

Anleitung zur Installation der Demoversion von nccad Version 7 mit Hilfe Wineskin Winery und wine unter MAC OSX Lion

  • Zuerst muss das Programm Wineskin von sourceforge.net heruntergeladen
    und installiert werden.

Download von Wineskin

  • wineskin.app öffnen und mittels dem +-Bottom die aktuelle wine-Version installieren (WS8Wine1.4-rc1 Stand Jan.2012).

wineskin Hauptfenster

  • Mittels der Schaltfläche Create new Blank Wrapper kann man einen neunen Container für nccad erstellen.

Wineskin creating a new wrapper

  • Jetzt kann das Windows-Programm Demo nccad 7 heruntergeladen werden und anschließend mit Hilfe der Schaltfläche Install Windows Software installiert werden. Die Installation verläuft genauso wie wenn man ein normales Windows hätte.

Wineskin Software in den Wrapper installieren

  • Mit der Schaltfläche Advanced können noch zusätzliche Einstellung vorgenommen werden. Wichtig ist, dass das richtige EXE-File ausgeführt wird.

  • Wenn man alles richtig gemacht hat, sollte man nun eine ausführbare App haben.

Wineskin nccad7.app

Die Version 8 von nccad benötigt .net Version 2.0 und SP1, bisher habe ich es noch nicht geschafft einen ausführbaren Container mit Hilfe von mondo (der Open-Source Variante von .net) zu erzeugen. Ich arbeite aber an einer Lösung dieses Problems.

Bisher habe ich mit winetricks versucht die DLLs des Microsoft .NET Framework 3.0 (Full Package) im Container zu installieren, aber leider startet nccad 8.0 nicht oder die App friert beim Starten ein. Sobald ich damit erfolgt habe, werde ich es posten.

Alle Bilder als Galerie

Googles ADK mit Arduino Uno und normalem UBS-Host-Shield

In diesem Beitrag möchte ich meine Versuch mit Arduino und Android dokumentieren.

Ausgangspunkt war für mich das Video von der Android Open 2011: Massimo Banzi, “Arduino & Android, Infinite Possibilities”

In diesem Video beschreibt Herr Banzi, verschiedene Möglichkeiten des Zusammenspiels von Arduino und Android.

Auf der Blog-Seite des Arduino-Projekt ist diesem Thema eine Kategorie gewidmet.

Der Post Tutorial: Arduino UNO + Google’s ADK von Alex TC hat mein Interesse geweckt. Leider ist er auf spanisch, aber dank Google-Übersetzer ist er eigentlich ganz gut lesbar. Es gibt nur ein paar Fußangeln, über die ich im Folgenden berichten möchte.

Für den Arduino Uno benötigen man noch

  • ein USB-Host-Shield und
  • die Hardware die über Android gesteuert werden soll.

Ein Telefon oder Gerät Android-Version 2.3.4 oder 3.1 (ich habe ein HTC Magic mit Androide 2.2.3 das ich noch updaten muss.)

An Software für den PC oder Mac benötigt man:

  • Java JDK Version 1.6 oder 1.7
  • Android SDK
  • Eclipse
  • Arduino IDE Version 0023 (Wichtig!)

Installation der Software

Wenn der Java Development Kit (JDK) noch nicht installiert ist, installiert man die Version 1.7 von JDK. In GNU/Linux kann es leicht aus dem Paket-Manager auswählen, für Mac OS X und Windows kann es von hier herunterladen werden.

Nun muss der Androide SDK heruntergeladen werden (die Version von Android ist nicht so wichtig, da man später mit Eclipse die benötigte Version und die zusätzlich Tools bequem installieren kann).

Eclipse herunterladen und die zwei Plugins Subclipse und ADT Plugin installieren.

Für GNU/Linux: 32 Bit , 64 Bit .

Für Windows 32 Bit, 64 Bit.

Für Mac OS X 32 Bit, 64 Bit.

Eclipse muss nicht installiert werden. Es genügt den gezippten Ordner zu entpacken und die ausführbare Datei Eclipse zu starten.

Nach dem öffnen von Eclipse, müssen die zwei Plugins installiert werden. Dazu geht man unter in Eclipse zu dem Menü-Punkt Help -> „Install new Software …“ und fügt über den Button „ADD“ die Quelle http://subclipse.tigris.org/update_1.8.x des Plugins Subclipse hinzu. Danach kann man das Plugin auswählen und mit „Next“ und „Finish“ installieren. Um das ADT Plugin Plugin zu installieren wiederholt man die Vorherigen Schritte mit der Quelle: https://dlssl.google.com/android/eclipse/.

Nun müssen noch die benötigten Pakete des Android SDKs zum Kompilieren und Ausführen des Projekts heruntergeladen werden. Um dies zu tun, gehen man im Eclipse-Menu über „Window“ zu „Android SDK“, man wählt folgende Pakete „Tools“ „Android 2.3.2 (API10)“ und „Extras“ aus und drückt den Button „install“. Wenn man mit Windows arbeite sollten auch die USB-Treiber installiert werden.

(optional) Um ein virtuelles Gerät zu erstellen, geht man im Eclipse-Menu über „Window“ zu „ADV Manager“ und wählt im „Android Virtual Devices“ den Button „New“. Nachdem man dem virtuellem Gerät einen Namen gegeben hat, kann die Version von Android (2.3.2) ausgewählt werden zusätzlich kann noch eine SD-Karte mit mindestens 256 Megabyte Speicher hinzugefügt werden. Die anderen Optionen können auf Standardeinstellungen bleiben.

Die Adruino IDE Version 0023 herunterladen und entpacken. Achtung: Die Version 1.0 unterstützt nicht das USB-Host-Shield. (Stand Dezember 2011)

Herunterladen der verschiedenen Projekt Dateien

Das ADK Packet herunterladen. Das ADK Packet enthält die Firmware für das ADK-Board und die Hardware Design Files für das ADK-Board and Shield.

Die modifizierte Version der USB-Host-Shield Bibliothek von http://blog.bricogeek.com herunterladen.

Arduino Sketch-Datei von http://blog.bricogeek.com herunterladen.

Nun müssen die richtigen Dateien an den richtigen Ort kopiert werden.

Aus dem AKD-Paket wird der Ordner „AndroidAccessory“ aus dem Verzeichnis „Firmeware/adruion_libs/“ in das Verzeichnis mit den lokalen Arduino Bibliotheken kopiert. Unter Mac OS X ist es das Verzeichnis „Documents/Adruino/libraries/“.

Notes: 1

Der Ordner mit der modifizierten UBS-Host-Shield Bibliothek „USB_Host_Shiled“ wird ebenfalls in das Verzeichnis mit den lokalen Arduino Bibliotheken kopiert.

Wenn man jetzt die Sketch-Datei mit der Adruino IDE (Version 0023) öffnet sollte es ohne Probleme kompiliert und auf den Arduino Uno mit USB-Host-Shield geladen werden können.

Konfiguration und Kompilierung des AKD-Packets unter Eclipse

In Eclipse erstellen man ein neues Projekt. Im Eclipse-Menu „File“ „New“ wählen man „Android Project“.

Im Dialogfeld nennt man das neue Projekt „DemoKit“. Man wählt „Create a project from existing source“, und wählt als Quelle den „app“-Ordner des AKD-Packtes. Nun geht man zum nächsten Dialog über den Button „Next“.

Man wählen die Android-Version „Googles APIs“ Version „2.3.3“ API Level „10“ aus und drückt den Button „Finish“.

Nun muss doch das USB-Debbuging auf „true“ gesetzt werden. Dazu öffnet man am einfachsten in den Projekt-Source die Datei „AndroidManifest.xml“ und wählt unter „Application“ im Unterpunkt „Debuggable“ „true“ aus.

Wenn man jetzt ein Telefon via USB-Kabel an den Computer verbindet und in Eclipse auf „Run“ drückt (grünes Symbol mit einem Pfeil direkt rechts neben dem Symbol Bug), wird die Anwendung „DemoKit“, mit der das Arduino-Board kontrolliert werden kann, auf dem Telefon installiert.