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.

sar global tool

November 23, 2010 on 4:36 am | In allgemeines, outdoor, projekte | No Comments

schickes messer.

droplegs are just awesome.

beton-schleifstein

November 11, 2010 on 1:50 am | In allgemeines, ideen, outdoor, projekte | No Comments

es geht nicht darum wie viele werkzeuge man hat, sondern was man mit dem gegebenen alles tun kann.

wissen schlägt zeug.

messer schleifen auf einem beton-block. funktioniert wirklich, hab das vor monaten einmal getestet. vl. schreib ich irgendwann einmal was über messer schleifen und schärfen – mal schauen.

greenland kajak

November 5, 2010 on 11:34 am | In allgemeines, mywork, outdoor, projekte | No Comments

as posted on my luft.michaelpollak.org – outdoor – blog

luftlogoblau_big

my kajak

hier noch einmal eine relativ kurze anleitung, nicht konkret darüber wie ihr euer eigenes boot baut, sondern darüber welche änderungen ich am design gemacht habe, um den bau schneller, billiger und einfacher zu machen. die grundsätzliche idee kam von dieser seite, die den bau sehr einfach und recht detailiert behandelt.

kajak bautag 4

den ganzen artikel lesen

wood stove

November 4, 2010 on 6:07 pm | In allgemeines, ideen, outdoor, projekte | No Comments

ich will so ein ding haben.

geschmiedeter stahl

November 3, 2010 on 9:12 pm | In allgemeines, art, projekte | No Comments

love. want.

http://www.michaelblank.at/

« Previous PageNext Page »