PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Servoansteuerung mit C-Control 2



19.11.2004, 11:33
Moin!

Wir sind drei hilflose Studenten (Maschinenbau) von denen jetzt verlangt wird mit der C-Control 2 einen Servo anzusteuern.
So wie wir die Aufgabe verstanden haben müssen wir uns a.) eine Art Servosteuerung (denke mal eine Art SD20) sowie b.) eine Programmierung einfallen lassen.
Zum Background... Wir sind Maschinenbauer und keine Informatiker. Wir haben noch nie nicht Assembler oder C programmiert.
Gibbet da eine relativ humane Lösung?

Der Servo soll jede beliebige Position mittels Winkel anfahren können.

nestler
20.11.2004, 11:19
Hallo!

Bei der C-Control 2 habt ihr zumindest den Vorteil, dass sie über 3
Plm-Ports verfügt. Damit ist es nicht nötig, irgendwas in Assemlber
zu programmieren, sofern nicht mehr als 3 Servos angesteuert werden
sollen.

Mit der Sprache C2 müsst ihr euch wohl ein bisschen beschäftigen, wobei
die im Handbuch (habt ihr hoffentlich zur Verfügung, oder?) ziemlich
gut beschrieben ist.

Falls ihr nicht weiter kommt, oder kein Handbuch habt, dann fragt einfach
nochmal nach..

Ciao,
Simon

Gromit
20.11.2004, 17:48
Ich habe mich vor einiger Zeit mit CII und einem Servo gespielt.
Mit dem folgenden Code konnte ich über die Tastaur bestimmte Stellungen des Servos anfahren.

Hoffe das hilft Euch weiter.
LG
Gromit



/********************************
PLM2.c2
PLM-Servosteuerung
********************************/

function Taste () returns int
{
int u1, u2, key;
u1= ports.adc(7);
u2= ports.adc(7);
if (math.abs(u1-u2))< 4
{
if u1<901 key=3;//3
if u1<825 key=6;//6
if u1<755 key=9;//9
if u1<690 key=12;//#
if u1<620 key=2;//2
if u1<550 key=5;//5
if u1<480 key=8;//8
if u1<410 key=0;//0
if u1<335 key=1;//1
if u1<270 key=4;//4
if u1<190 key=7;//7
if u1<110 key=11;//*
if u1>1000 key=-1;
}
return key;
}

//------------
thread main
//------------

{
int d;
int t0, t1;
string s1, s0;
plm.settimebase(0,plm.BASE_800);
plm.setmode(0,0);
plm.setperiod (0,25000);
loop
{
t0=Taste();
if t0>0 and t0<10
{
t1=t0*219+781;
plm.out (0,t1);
s0 = "";
s1 = "";
str.putint (s0,t0);
str.putint (s1,t1);
s1 = s0+"="+s1;
lcd.init ();
lcd.goto(0,0);
lcd.print(s1,str.length(s1));
}
sleep 10;
}
}

21.11.2004, 20:31
Moin!

Kommen erst Donnerstag wieder dazu mal das Programm zu testen.
Sieht aber schon ganz gut aus.
Handbuch liegt natürlich vor. Beschäftigen uns auch schon damit. aber unserem Prof fiel von heute auf morgen ein anstatt der C-Control die C-control2 zu nehmen. Melden uns denn mal wieder. Danke bis hierhin...

nestler
21.11.2004, 20:46
?! ich dachte, ihr nehmt von haus aus die c-control 2... (zumindest
habt ihr das in eurem ersten posting geschrieben)

26.11.2004, 10:37
Moin!

So ist es... 'Wir hatten anfnags mal die C-Control, sollen unser Projekt jetzt aber in C-Control2 vollenden.

28.11.2004, 18:26
Hallo !
Schaut einmal auf die Seite http://www.cc2net.de/Programme/programme.html

Auf dieser Seite gibt es eine Programm zum ansteuern von 3 Servos.
( servo.zip (Thomas Heinzer) 28.09.2002)


Viel Erfolg
Manfred