Übersetzungen dieser Seite:
DJ0ABR Projekte
Raspi HAM Radio Control Board:
Raspi HAM Radio Control Board:
die folgenden Beispiele sollen zeigen wie super einfach die Programmierung ist. Dank der vielen vorbereiteten Funktionen sind auch komplexe Anwendungen schnell geschrieben.
Die Programmierung erfolgt in der Sprache C mit den ganz normalen Boardmitteln eines Raspberry PIs, ohne spezielle Bibliotheken.
In diesem Beispiel wird das Drehen eines Rotary-Encoders direkt an einen Schrittmotor ausgegeben:
// weise dem Rotary-Encoder zwei Eingangsports zu init_rotencoder(KEY0, KEY1, -1,-1,-1,-1); // weise der Schrittmotor-PA Ports für Step und Richtung zu int stepid = create_stepper(OUT0, OUT1, OUT2, 0, 10, -1, -1); while(1) // Endlosschleife { int steps = getEncSteps(0); // Lese Encoder // falls der Encoder betätigt wurde // gebe die Schrittzahl an die Schrittmotor PA aus if(steps != 0) move_stepper(stepid,abs(steps),(steps>0)?1:0,1); }
gleiches Beispiel wie zuvor, jedoch für drei Achsen
// weise den drei Rotary-Encodern je zwei Eingangsports zu init_rotencoder(KEY0, KEY1, KEY2, KEY3, IN4, IN5); // weise den drei Schrittmotor-PA Ports für Step und Richtung zu int stepidX = create_stepper(OUT0, OUT1, OUT2, 0, 10, -1, -1); int stepidY = create_stepper(OUT3, OUT4, OUT5, 0, 10, -1, -1); int stepidZ = create_stepper(OUT6, OUT7, OUT8, 0, 10, -1, -1); while(1) // Endlosschleife { int stepsX = getEncSteps(0); int stepsY = getEncSteps(1); int stepsZ = getEncSteps(2); if(stepsX != 0) move_stepper(stepidX,abs(stepsX),(stepsX>0)?1:0,1); if(stepsY != 0) move_stepper(stepidY,abs(stepsY),(stepsY>0)?1:0,1); if(stepsZ != 0) move_stepper(stepidZ,abs(stepsZ),(stepsZ>0)?1:0,1); }
// benutze serielle Schnittstelle am PRI board gps_open(NULL, NULL, B4800); while(1) { int az, elev; getSunPos(&az, &elev); char text[200]; sprintf(s,"Sonne steht auf Azimuth:%d Grad und Elevation:%d Grad",az,elev); draw_font(text,10,50,1,RED,20); sleep(1); }