recover deleted files

December 10, 2010 on 1:19 am | In allgemeines, free software, linux, produktivity, tech | No Comments

*from some old aunt you know. aunt not included.

testdisk und ntfsundelete geben ziemlich ähnliche ergebnisse, konnten in meinem fall aber nicht alle fotos komplett wieder herstellen. viele waren fehlerhaft.

mit photorec hatte ich mehr erfolg, allerdings hat das tool wirklich ALLE bilddaten wieder her gestellt. es wurden von der festplatte die ich wiederherstellen sollte über 10000 bilddaten wiederhergestellt, die ich jetzt allesamt aussortieren muss. mal sehen wie viel zeit das in anspruch nimmt. aber das tool ist wirklich ausgezeichnet, empfehlung.

cnc

November 27, 2010 on 2:05 am | In allgemeines, linux, produktivity, programmieren, projekte, tech | No Comments

als anhang zum post von gestern. ich sammle meine links und quellen wie immer in meinem wiki. falls ihr euch konkreter für das thema interessiert, könnt ihr dort durch die lange (unsortierte) linkliste klicken, und vielleicht interessantes finden.

der eintrag zu meinem cnc-lazor-fräs-ding ist hier zu finden:

http://wiki.michaelpollak.org/index.php/Cnc

step step step step

November 26, 2010 on 7:21 pm | In allgemeines, linux, programmieren, projekte, tech | No Comments

es gibt versch. typen von e-motoren. bürsten-, bürstenlos-, schritt-motoren. der vorteil an schrittmotoren ist, dass man keine eigene sensorik braucht, um zu wissen wie weit sich der motore gedreht hat.
bei jedem puls nimmt man an, dass der motor genau diesen einen schritt gemacht hat.

jedenfalls ist dieses wissen vom aktuellen zustand notwendig, um einen plotter zu verwirklichen, und desswegen schlage ich mich mit diesen teilen herum.

im internet konnte ich nirgendwo finden, wie man direkt vom printer-port (drucker-ausgang, lpt) einen schrittmotor (stepper) ansteuert, ohne dazwischen geschaltete ICs und weitere elektronik. aber genau das hat mich interessiert, ein minimaler aufbau, um die funktion eines stepper motors zu verstehen.

es gibt zwei arten von schrittmotoren, unipolar und bipolar. für uns sind unipolare schrittmotoren besser nutzbar, weil einfacher ansteuerbar. diese erkennt man an den 5-6 eingänge. bipolare haben nur 4.

von unseren 6 eingängen sind 2 masse- (Grd) und 4 steuerleitungen. die steuerleitungen gehören zu 4 spulen. jedes mal wenn eine dieser elektromagnetischen spulen unter strom gesetzt wird, dreht sich der schrittmotor um einen gewissen winkeln, sagen wir jetzt einmal (übertriebenerweise) um 90°.
wenn man also alle 4 spulen hintereinander mit strom versorgt hat, weiß man dass der motor sich um 360° gedreht hat.

signal ein- und ausgang über den drucker port ist ebenfalls sehr einfach ansteuerbar, wenn man einige basics weiß.

es sind nur 8 (mit trick bis 12) pins des druckeranschlusses ausgänge, die beschalten werden können. diese geben, wenn sie logisch 0 sind 0V (bzw. die untere flanke) aus, und wenn sie logisch eins sind +5V (die obere flanke). damit kann man jetzt quasi alles (leds, relais, motoren, etc.) ansteuern, und über die eingänge sogar sensoren verwalten.

für uns sind nur diese ausgänge relevant. D0, also der erste ausgang, liegt am pin 2, D0-D7 liegen nebeneinander.
für meinen testaufbau habe ich den schrittmotor so mit dem lpt-port verbunden:

  • D0: orange
  • D1: gelb
  • D2: schwarz
  • D3: braun
  • Grd: rot

ansteuern kann man den drucker-port am einfachsten mit der programmiersprache C. ein einfaches code-beispiel soll das verdeutlichen.
davor muss man noch wissen, dass der status der pins binär codiert ist.
11111111 <- alle ausgänge auf logisch 1
00000000 <- alle ausgänge auf logisch 0
00000001 <- am ausgang D0 liegt +5V an, an allen anderen 0.
diese binäre darstellung muss man jetzt nur noch in basis 10 umwandeln, um sie ins programm einspielen zu können. 11111111 == 255, 00000000 == 0, 00000001 == 1, 00000010 == 2, …


#include 
#include 
#include 
#include 
#include 
#include 


// variablen
#define BASEPORT 0x378 /* lp1 */
#define WAIT 250000 /* wartezeit zwischen schritten */

/* source: http://eagerfish.eu/lpt-programming-example-in-c-for-ubuntu-linux */

int main() {
	char c;
	int n, tem;
	
	printf("any key to stop\n");
	
	//set permissions to access port
	if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}
	
	tem = fcntl(0, F_GETFL, 0);
	fcntl (0, F_SETFL, (tem | O_NDELAY));
	
	//main loop 
	// hier wird die ansteuerung der ports erledigt.
	while (1) {
		//if some key is pressed, break out from loop
		n = read(0, &c, 1);
		if (n > 0) break;
		
		// 4 eingänge nacheinander belegen.
		outb(1, BASEPORT);
		usleep(WAIT);
		outb(8, BASEPORT);
		usleep(WAIT);
		outb(2, BASEPORT);
		usleep(WAIT);
		outb(4, BASEPORT);
		usleep(WAIT);
		
	}
	
	fcntl(0, F_SETFL, tem);
	outb(0, BASEPORT);
	
	//take away permissions to access port
	if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);}
	
	exit(0);
}

mit dem wissen kann man jetzt quasi jede hardware-anwendung mit dem computer steuern. damit habe ich vor einiger zeit sogar über eine webseite und php scripting eine led übers internet und den browser geschaltet, also viel spass beim experimentieren.

hinweis: der printer ausgang ist direkt am motherboard. die oben gezeigte technik ist SEHR unsicher, und kann diesen port und das dahinter liegende board beschädigen, wenn man pech hat / dumm ist / sonstiges. also macht das auf eigene gefahr.

pin yin

November 17, 2010 on 4:17 pm | In allgemeines, free software, linux | No Comments

für alle die eine freundin haben, die chinesisch studiert interessant. eine sehr einfache anleitung, wie man pin yin chinesisch eingabe unter ubuntu 10.10 installiert.perfekt.

würg

August 18, 2010 on 10:54 am | In allgemeines, linux | No Comments

ich arbeite auf einem windows-server. das erklärt warum die hälfte nicht funktioniert…

grauslich, warum machen manche webhoster das noch?

… “wenn sie php verwenden wollen muss ich sie auf einen linux server umstellen” … wtf?

gaming

i use java

das ist “just plain amazing”.

found by markus

smashing

bin heute quasi ins “smashingmagazine” gefallen. gleich 3 sehr interessante und vor allem für design und informatik nerds sehr lesenswerte artikel.

« Previous PageNext Page »