Ü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);
}