recover deleted files
*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
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:
step step step step
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
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.
blitze fangen howto
großartig und wunderschön.
netbook
den ganzen tag habe ich damit verbracht (unter anderem) mich über (m)ein neues notebook-laptop-netbook dings zu informieren.
klein, leicht, mobil, groß und leistungsstark genug für bild und grafikbearbeitung, preislich im rahmen, …
im moment bin ich mir sicher, dass der asus eeepc 1215n, im seashell-look, optimal meinen anforderungen entspricht. als “das stärkste netbook am markt” eingeschätzt, fähig call of duty mw 2 zu spielen und mit monitorausgang für die uni-präsentation, wird wohl auf für mich passen.
stellen sich nur noch ein paar fragen…
- woher kann man das ding in europa/österreich/wien beziehen
- welche farbe (rot, schwarz, silber)