Jan 16

Heute habe ich den Arduino mit einen Wii Nunchuck verbunden. Die Ausgabe der Daten findet auf einem 16×2 LCD statt. Da ich meinen Nunchuck nicht zerschneiden wollte habe ich 2,45 Euro investiert und mir einen Adapter bei Watterott bestellt. http://www.watterott.com/WiiChuck-Adapter

Viel mehr braucht man auch nicht um den Nunchuck auszulesen. 3,3 v / 5,5 v, ground, data und clock angeschlossen und das war es. Funktioniert wunderbar uns lässt sich bestimmt cool mit einem Servo oder anderes kombinieren…

Den Code habe ich mir bei http://www.windmeadow.com/node/42 abgeguckt und ein wenig erweitert, damit mein LCD die Daten anzeigen kann.

lcd.clear();

sprintf (lcdOUtput, "X:%dY:%dC:%dZ:%d",joy_x_axis,joy_y_axis,c_button,z_button);

lcd.print(lcdOUtput);

lcd.setCursor(0,1);

sprintf (lcdOUtput, "X:%dY:%dZ:%d ",accel_x_axis,accel_y_axis,accel_z_axis);

lcd.print(lcdOUtput);

Der Nunchuck ist so empfindlich, dass er sogar Bewegungen auf meinen Schreibtisch mitbekommen :)

Und noch ein Video: Arduino+Nunchuck Video

Das Wifi-Shield ist noch drauf, da ich vorher das LCD via Webserver befeuert habe …

Next: Vielleicht einen Servo anschließen und eine Gehäuse für das LCD + Nunchucka Adapter bauen

Jan 13

So der erste Versuch ein 16×2 LCD-Display anzusteuern war erfolgreich. Wenn nicht hätte ich mir auch Gedanken gemacht :) Danke an die Arduio.cc Tutorials!

Natürlich musste ich mich erstmal eine Stunde damit beschäftigen das Breadboard falsch zu benutzen … Nächstes Projekt Arduino LCD + Wii Nunchuck :) Nix neues aber kann man ja mal mitnehmen!

Heute ist mein watterott Paket gekommen:

  • 1x Kabels zum stecken
  • 1x kleines Breadboard
  • 1x Nunchuck Adapater
  • 1x LCD
  • Format: 16×2
  • Zeichenhöhe: 5,55mm
  • Sichtfeld: 61×15,8mm
  • Modulgröße: 80×36mm
  • Tech: STN - gelb/grüne LED Hintergrundbeleuchtung
  • Temp: -20^C - +70°C
  • Image: Pos

Datasheet: DEM 16216 SYH-LY

Hier ein Auszug aus dem standard Arduino-Sketch:

// include the library code:
#include 

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup(){
    // set up the LCD's number of rows and columns:
  lcd.begin(16, 2);
  // initialize the serial communications:
  Serial.begin(9600);
}

void loop()
{
  // when characters arrive over the serial port...
  if (Serial.available()) {
    // wait a bit for the entire message to arrive
    delay(100);
    // clear the screen
    lcd.clear();
    // read all the available characters
    while (Serial.available() > 0) {
      // display each character to the LCD
      lcd.write(Serial.read());
    }
  }
}

VIDEO: Arduino LCD

Dec 07

Da mein iMac einen netten Festplattenschaden hatte musste die originale 500GB WD einer neuen 1TB WD weichen. Der Wechsel war recht simpel:

Anforderungen:

  1. Torx-Schraubendreher (T6 glaube ich)
  2. Einen zweiten Mann (Frau geht auch)
  3. Saugnapf / Saugnäpfe z.B. von einem Handtuchhalter (ich habe meine Navi-Halterung verwendet)
  4. Sauberen, festen und kratzfreien Untergrund!

Ablauf:

  1. iMac auf den Rücken legen
  2. Scheibe mittels Saugnapf/Saugnäpfe ansaugen und vorsichtig runternehmen. (Die Scheibe wird von mehreren Magnetleisten gehalten)
  3. Die 12 Schrauben am Rahmen lösen (Torx)
  4. Den Rahmen vorsichtig nach unten ziehen! VORSICHT! das iSight-Kabel kann schnell reißen und muss vorher gelöst werden
  5. Das LCD-Display (8 Schrauben)  losschrauben VORSICHT! nicht auf das Display abrutschen
  6. Das LCD-Display in Richtung Arbeitsspeicher anheben (zweiter Mann/Frau) VORSICHT! aufpassen, dass kein Kabel auf Spannung ist oder reißt!
  7. Der Winkel zwischen LCD-Display und Board sollte ausreichen um die Festplatte identifizieren und lösen zu können. (Zwei Schrauben an der Platte, Steckverbindungen und Sata-Stecker) VORSICHT! Es klebt noch ein Temperatursensor  auf der originalen Platte, diesen vorsichtig lösen und auf die neue übernehmen!
  8. Neue Festplatte wieder einsetzen, LCD-Display vorsichtig absenken und verschrauben
  9. Den Rahmen vorsichtig wieder draufsetzen VORSICHT! Keine Kabel einklemmen und oder das Display verkratzen (besonders auf die iSight achten)
  10. Das LCD-Display reinigen, am besten mit Druckluft oder einen Microfasertuch
  11. Die Scheibe vorsichtig einsetzen
  12. DONE!

bild0202

Nov 07

Heute habe ich einem alten Motherboard den PS2-Anschluss entwendet. Ich habe soweit alle Leitungen verlötet und auch angeschlossen, jetzt sollte es möglich sein Tastatur, Maus oder einen Barcodescanner anzusteuern (oder was sonst noch PS2 nutzt). Im nächsten Schritt wird die “Software” erstellt um die Tastatur anzusteuern. Dann wird es Code-Beispiele geben …

(Die LEDs dienen lediglich dem Hardware-Debug …)

Nov 04

Ich habe heute mal wieder Zeit gefunden ein wenig mit dem Arduino zu spielen. Das Ergebnis ist ein 7-Segment-Anzeige, welche ziemlich einfach zu bedienen ist. Ohne IC benötig man jedoch 9-Ports von dem Arduino, somit bleibt wenig platz für andere Spielereien (Duemianove) …

Ich habe keine Lib oder sonstiges benutzt, einfach drauf los :)

Code unkommentiert und einfach (Zähler startet “unten rechts”:

void matrix(char matrix[7]) {
  int map[10];
  map[0] = 5;
  map[1] = 8;
  map[2] = 9;
  map[3] = 2;
  map[4] = 7;
  map[5] = 6;
  map[6] = 3;
  map[7] = 4;  

  int i=0;
  for(i=0;i<=7; i++) {
   if(matrix[i] == 0x31) {
      Serial.println(map[i]);
      digitalWrite(map[i],LOW);
   }
   else digitalWrite(map[i],HIGH);
  }
}

void show(int number) {
  switch(number) {
    case 1:
      matrix("1100000");
      break;
    case 2:
      matrix("01101110");
      break;
    case 3:
      matrix("11100110");
      break;
    case 4:
      matrix("11010010");
      break;
    case 5:
      matrix("10110110");
      break;
    case 6:
      matrix("10111110");
      break;
    case 7:
      matrix("1110000");
      break;
    case 8:
      matrix("11111110");
      break;
    case 9:
      matrix("11110110");
      break;
  }
}

void setup()   {
  Serial.begin(9600); 

  // initialize the digital pin as an output:
  pinMode(12, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
}

void loop()
{
  int i=1;
  digitalWrite(12, HIGH);   // set the LED on
  for(i=1; i<=9; i++) {
   show(i);
   delay(1000);
  }
}

Oct 21

Folgerndermaßen kann man in TYPO3 eine userFunc in einem if case aufrufen. In diesem Beispiel, wollen wir die PHP-Funktion user_meineFunktion aufrufen. Wenn die Funktion ein “true” zurückliefert, soll “HALLO WELT” ausgegeben werden.

1. TS

[userFunc = user_meineFunktion()]
page.10 = TEXT
page.10.value = HALLO WELT
[end]

Möchte man jetzt NICHT innerhalb der localconf.php die benötigte Funktion halten, muss man einen kleinen Hook einbauen. Dieser sorgt dafür, dass man die Funktion sauber innerhalb der eigenen Extension (oder sonst wo) halten kann.

2. mod ext_localconf

$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_matchcondition.php']['matchConditionClass'][] = 'EXT:DIE_EXTENSION/hooks/class.matchConditionClass.php:&amp;user_matchConditionClass';

2. der hook (hook/class.matchConditionClass.php)

<?php
/**
 * Hook T3 class matchConditionClass
 *
 * load my script, so we can call
 * matchCondition function from extension
 *
 * normal T3 loading
 * 1. T3 load ext_localconf
 * 2. T3 load matchConditionClass
 * 3. T3 t3lib_matchCondition function_exists, required php script not loaded - FALSE
 *
 * mod T3 loading (by this class/hook)
 * 1. T3 LOAD ext_localconf
 * 2. T3 ext_localconf hook matchConditionClass constructor (hook t3lib_matchCondition)
 * 3. T3 matchConditionClass hook include required php script
 * 4. T3 t3lib_matchCondition function_exists, YES script loaded, functions exists all fine - TRUE
 *
 * Don'T try this at home!
 */
class user_matchConditionClass {
	function __construct()	{
		require_once(t3lib_extMgm::extPath('DIE_EXTENSION', 'functions/user_meineFunktion.php'));
	}
}
?>

3. die Funktion user_meineFunktion() (DIE_EXTENSION/functions/user_meineFunktion.php)

function user_meineFunktion() {
	return true;
};
Oct 06

Kennenlern-Gutschein

10% Gutschein für alle Fotokalender

  1. Laden Sie die kostenlose Gestaltungssoftware hier herunter.
  2. Gestalten Sie Ihren individuellen Fotokalender
  3. Bei der Bestellung tragen Sie folgenden Gutschein-Code* ein:

    TIKILINECO

  4. Ihr Fotokalender wird Ihnen bequem nach Hause geliefert.

*Dieser Gutschein ist gültig für Neukunden, bis zum 30.11.2009 auf alle Fotokalender-Bestellungen.

Sep 25
Sep 19

Sep 19

Ich habe mein altes HTC Touch geschlachtet und versuche nun die Tastatur und ggf. den LCD als Bauteile für den Arduino zu verwenden. Jedoch scheint das ganze ein bisschen komplizierter zu werden…

img_0013

img_0016

img_0015