Montag, 19. August 2013

UML für NetBeans 7.3


Seit einigen Updates der NetBeans-IDE vermisse ich schmerzlich das UML-Modeling-Tool, das irgend wann einmal bei den NetBeans-Plugins zu finden war. Das Plugin war einfach in der Handhabung und man konnte damit die Standarddiagramme für Aufgaben und den Unterricht erstellen. Zwischenzeitlich habe ich etwas mit UMLLab gearbeitet, dieses basiert auf Eclipse und kommt zwar gut mit meinen NetBeans/BlueJ-Projecten zurecht – aber eine zweite IDE zu starten ist schon lästig.
Bei YouTube fand ich unter UML Plugin(CODE TO UML) NetBeans 7.0/7.1/7.2/7.3 das Video http://www.youtube.com/watch?v=A4Y8vxtxev8 mit einer URL zu einem Plugin: 
http://deadlock.netbeans.org/hudson/job/uml/lastSuccessfulBuild/artifact/build/updates/updates.xml
Daa übliche Verfahren: Unter Extra -> Plugins-> hinzufügen die URL eingeben, einen Namen wie „UML-Tool“ geben und das Plugin installieren. Auf den ersten Blick lief alles relativ einfach und die ersten UML-Diagramme ließen sich schon aus bestehenden Klassen erzeugen. Leider lassen sich die Diagramme nachher nicht mehr öffnen!?! Dadurch kann man zwar aus Klassen UML-Diagrame erzeugen und als Bild abspeichern aber richtig arbeiten lässt sich so nicht. Also weiter nach Lösungen suchen.

Freitag, 31. Mai 2013

Arduino und Pololu

Mein neues Arduino - Board ist schon bei einigen Projekten im Einsatz. Zusammen  mit dem Fritzing Starter Kit lassen sich auf dem breadboard einfach Schaltungen realisieren und mit der Arduino-IDE ansteuern. Das wird eine interessante Unterrichtseinheit.

Das Zusammenspiel von Arduino-IDE und Pololu ist dabei ein lohnendes Anwendungsgebiet, da sich der pololu-3pi dadurch einfach programmieren lässt und die Installation überschaubar bleibt. Neueinsteiger müssen sich nur auf eine IDE einarbeiten und die Arduino-IDE ist bewusst einfach und übersichtlich gehalten.

Zur Konfiguration der IDE geht man vor, wie im Dokument Programming Orangutans and the 3pi Robot from the Arduino Environment Arduino IDE  beschrieben.

Die Erweiterung der Datei boards.txt und programmers.txt (Configuring the Arduino Environment) führt zu neuen Einträgen im Menü. Die Bibliothek der Seite Arduino Libraries for the Orangutan and 3pi Robot wird entpackt und die einzelnen Unterordner (!) in das Verzeichnis <arduino>/libraries  kopiert. Die mitgelieferten Beispiele lassen sich aus der IDE heraus aufrufen und sind kompilierbar.

Das folgende Programm lässt sich mit den Einstellungen  (board/programmer/port): Pololu 3pi robot w/ ATmega328P via Programmer on /dev/tty.usbmodem00048661 übersetzen und ausführen.

// +++++ anfang

#include <OrangutanLCD.h>

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  This example code is in the public domain.
 */


// Pin 1 has a red LED connected on most pololu boards.
int redLED = 1;

// Pin 7 has a green LED connected on most pololu boards.
int greenLED = 7;

//OrangutanLCD ist zu Pololu kompatibel
OrangutanLCD lcd;

// the setup routine runs once when you press reset:
void setup() {               
  // initialize the digital pin as an output.
  pinMode(redLED, OUTPUT);
  pinMode(greenLED, OUTPUT); 
}

// the loop routine runs over and over again forever:
void loop() {
  lcd.gotoXY(1,1);
  lcd.print("Hallo ");
  digitalWrite(redLED, HIGH);   // turn the LED on
  digitalWrite(greenLED, LOW);  // turn the LED off
  delay(1000);                  // wait for a second
  lcd.gotoXY(1,1);
  lcd.print("Pololu");
  digitalWrite(redLED, LOW);    // turn the LED off
  digitalWrite(greenLED, HIGH); // turn the LED on
  delay(1000);                  // wait for a second
}


// ++++ ende

Sonntag, 12. Mai 2013

Ordner in Apple Mail grau dargestellt

Beim Umstellen des Haupt-Mail-Providers für mein IMAP-Postfach ist beim Umkopieren der Emails vom einen Postfach in einen neuen Ordner im Postfach voraussichtlich  ein Verbindungsfehler aufgetreten. Zumindest war der Ordner nach dem Kopieren immer noch grau, d.h. der Kopiervorgang nicht vollständig abgeschlossen. Der Ordner enthielt aber korrekt alle Unterordner mit den Mails und die Ordner wurden alle dunkelgrau dargestellt. Der Ordner ließ sich nicht auch umbenennen, es erfolgte die Fehlermeldung "Folder does not exist".

Die Google-Suche nach "Apple Mail Ordner reparieren" und ähnlichen Stichwörtern war nicht hilfreich. Der Tipp mit Postfach -> Wiederherstellen blieb ohne Wirkung.

Das Verfahren was letztlich erfolgreich war: Die ganzen Email in einen neuen Ordner kopieren. Nach Abschluss des Kopiervorgangs war der defekte Ordner verschwunden!
 

Donnerstag, 21. März 2013

Reit- und Wanderkarte in Gamin Basecamp installieren

Die Installation von der Reit und Wanderkarte in Basecamp unter MAC OS X hat bereits mehrfach funktioniert - jetzt hängt es aber total.

Hier meine Schritte, die auch hier
http://www.geoclothing.at/2011/09/openstreetmap-karten-fur-garmin-basecamp-unter-mac-os-x/
beschrieben sind:

1) Kartenmaterial unter http://www.wanderreitkarte.de/ laden.

2) Das ZIP Archiv entpacken. Mit Windows aus der Virtual Box heraus die Datei setup_ms ausführen und die img-Datei entpacken und Verzeichnis Reit_und_Wanderkarte anlegen.

2) Mit Gmapibuilder die Datei TDB Datei laden. Die anderen Datei-Einträge werden automatisch ergänzt. Die TYP Datei noch machträglich über das Auswahlfeld einfügen.

3) Es wird nach einem etwas längeren Rechenprozess zwar eine gmapi Datei erzeugt, die ist allerdings nur 194 kb groß. Wird diese mit dem MapManager in Basecamp installiert, wird nur eine leere weiße Karte angezeigt.

4) Das Java Programm JaVaWa MapConverter verweigert bei Auswahl des Ordners Reit-und-Wanderkarte die Konvertierung mit der Meldung, dass das Kartenmaterial unvollständig ist.

Als Zwischenlösung bleib nach langem probieren: Die Karte in Bascamp für Windows installieren und dann in Basecamp für MAC importieren; wobei die Konvertieung über MapConvert läuft. Beim letzten Durchgang ließ sich allerdings auch nur die Gesaqmtkarte erfolgreich installieren, bei anderen Karten wird die Konvertierung mit einer Fehlermeldung beendet. Bis eine neue Garmin Karte erzeugt wird bleibt also etwas Fummelei.


Montag, 4. März 2013

Serielle Ports unter OSX

Guter Tipp unter
http://iad.projects.zhdk.ch/physicalcomputing/tutorials/programmierung/serial/osx-serielle-ports-abfragen/

 Serielle Ports unter OSX

Um die verfügbaren seriellen Ports abzufragen starten wir das Programm Terminal und geben folgenden Befehl ein:
ls /dev/tty.*
Das Terminal gibt die Namen aller verfügbaren seriellen Ports aus. Was in etwa wie folgt aussieht:
//////////////////////////////////////////////////////////////
/dev/tty.Bluetooth-Modem
/dev/tty.Bluetooth-PDA-Sync
/dev/tty.raphon-SerialPort-1
/dev/tty.usbserial-FTCME7EW
Eine serielle Schnittstelle öffnen und den Datenverkehr auf dem Terminal mit dem Befehl “screen” [Schnittstelle] [Baudrate] ausgeben.
# screen /dev/tty.usbserial-FTDPYFLA 9600
Ankommende Daten werden direkt auf dem Terminal ausgegeben. Eingaben auf der Tastatur werden direkt über die Schnittstelle geschickt.
Wie immer muss die Schnittstelle geschlossen werden, damit sie zu einem späteren Zeitpunkt von einem anderen Programm verwendet werden kann. Screen verlassen wir mit der Tastenkombination [ctrl + a] gefolgt von [shift + k]

gnu.io.portinuseexception unknown application

Diese Fehlermeldung hat mir den ganzen Nachmittag die Nerven geraubt.
Auf dem macBook läuft die RxTx Installation und auf dem iMac gibt es immer wieder diesen Fehler.

Nach Suche in diversen Foren kam immer wieder der Tipp das Verzeichnis /var/lock mit den  Zugriffsrechten 777 anzulegen. Das Verzeichnis habe ich jetzt,  die Fehlermeldung blieb.
Erst der Umstieg auf RxTx V. 2.2, mit der erwarteten Fehlermeldung "Version Missmatch",  da die 2.1.7 native Library (64 Bit) verwendet wird, brachte den Erfolg.

Endlich geht die Kommunikation zwischen dem AVR-Net-IO-Board und Java ohne Fehlermeldung über die USB Schnittstelle mit dem FTDI-USB-Treiber.

Installation des C/C++-Compilers für MAC OS X.

Die Programmierung der Pololu-Roboter erfolgt in C.  Dazu benötigt man unter Mac OS X die X-Code Entwicklungsumgebung, diese  lässt sich aus dem App-Store laden und installieren. Um den integrierten GNU C-Compiler zu nutzen muss man in XCode->Preferences->Downloads die Command-Line-Tools installieren.

Der C-Compiler kann nun in einer anderen IDE wie beispielsweise Netbeans genutzt werden.


Sonntag, 3. März 2013

Netzwerk-Socket in Java

Beim Erzeugen eines Sockets in Java unter MAC OS X 8.2 erscheinen nur Fehlermeldungen. Ein erster Hinweis nach Suche in Foren: Die Portnummer muss über 1063 liegen. Ein Test mit Programmen wie EchoServer usw. verlief anschließend positiv. Der Zugriff auf die niedrigen Portnummern ist nur dem root-Benutzer erlaubt.

UTF-8 Probleme bei BlueJ unter Mac OS X

Bei BlueJ-Projekten erfolgt falsche Darstellung der Umlaute und die Codierung lässt sich im Projekt nicht ändern.

Lösung: Netbeans 7  standardmäßig auf UTF-8-Zeichnensatz stellen und in \etc\netbeans.conf: die Zeile der Optionen ändern:

netbeans_default_options="-J-Dfile.encoding=UTF-8"

BlueJ sollte standardmäßig für neue Projekte UTF-8 verwenden;  ansonsten in bluej.def die Zeile

bluej.vm.args=-ea -Dfile.encoding=utf-8

einfügen.

Manchmal liegt das Problem auch in den BlueJ-Projekteinstellung, insbesondere wenn alte Projekte geöffnet werden.

In der Datei package.blueJ die Zeile

project.charset=UTF-8

einfügen bzw. ändern.

BlueJ-Projekte in NetBeans

In den neuen Netbeans-Versionen (höher 6.9) ist die BlueJ - Projekt - Unterstützung nicht mehr standardmäßig bei den Plugins vorhanden.  Um das Plugin in den höheren Netbeans 7.XX Versionen zu nutzen lässt es sich unter der folgenden Adresse laden

 http://updates.netbeans.org/netbeans/updates/6.9/uc/final/stable/catalog.xml.gz

Unter extra-->plugins im Reiter Einstellungen nach hinzufügen die URL eingeben und den Katalog laden. Anschließend lässt sich unter verfügbare Plugins das BlueJ-Plugin auswählen und installieren.

Die Unterstützung der BlueJ-Projekte ist allerdings nicht mehr vollständig, da das Netbeans Plugin noch die bluej.pkg und bluej.pkh benötigt. die allerdings aus einem alten Projekt kopiert werden können.