a robot a pc-s programba beírt sms-t bepötyögi a mobiltelefonba, ügyelve
a kis- és nagybetűkre, írásjelekre. ha az egymást követő betűk ugyanazon
a billentyűn vannak, akkor a két betű között megfelelő szünetet tart.
a legtöbb probléma a gombok megnyomásával volt, néha túl erősen nyomta
meg, és szétesett az egész, vagy lecsúszott a gombról a készség. ezt úgy
oldottuk meg, hogy súlyokat helyeztünk a lenyomó mechanizmusra, így az
nem tud felemelkedni, valamint egy nyomásérzékelő nyomja meg a gombot,
így érzékelni lehet, hogy mikor nyomta meg a gombot, és akkor kell visszahúzni
a kart. + a kar végére egy csúszásgátló gumi került. (fő a biztonság :-)
)
a kar pozícionálását két motor végzi, a két irány szerint. a gombok helyzetét
egy felragasztott fekete sáv jelzi, amit fényérzékelővel észlel a robot.
indításkor ezen sávok alapján kalibrálást végez a gépezet.
a robotról készült videók:
video.avi
video.avi
video.avi
a programok forrásai:
sms.zip - a pc-n futó delphi program forrása
#define sensorv SENSOR_1
#define sensorf SENSOR_2
#define nyomi SENSOR_3
#define motorv OUT_A
#define motorf OUT_B
#define motorn OUT_C
int temp;
task main(){
}
task kalib(){
temp=1;
SetSensor(sensorv, SENSOR_LIGHT);
SetSensor(sensorf, SENSOR_LIGHT);
SetSensor(nyomi,SENSOR_TOUCH);
SetSensorMode(sensorv, SENSOR_MODE_PERCENT);
SetSensorMode(sensorf, SENSOR_MODE_PERCENT);
SetSensorMode(nyomi,SENSOR_MODE_BOOL);
//kalibralas
SetPower(motorv,100);
OnRev(motorv);
while (nyomi==0);
Fwd(motorv);
while (sensorv>=37);
Off(motorv);
SetPower(motorf,100);
OnRev(motorf);
while (nyomi==0);
Fwd(motorf);
while (sensorf>=45);
Off(motorf);
//kalibralas vege
temp=0;
}
task jobbra(){
temp=1;
OnFwd(motorv);
while (sensorv<=37);
while (sensorv>=37);
Off(motorv);
temp=0;
}
task balra(){
temp=1;
OnRev(motorv);
while (sensorv<=37);
while (sensorv>=37);
Off(motorv);
temp=0;
}
task le(){
temp=1;
OnFwd(motorf);
while (sensorf<=45);
while (sensorf>=45);
Off(motorf);
temp=0;
}
task fel(){
temp=1;
OnRev(motorf);
while (sensorf<=45);
while (sensorf>=45);
Off(motorf);
temp=0;
}
task lenyom(){
temp=1;
SetPower(motorn,10);
OnRev(motorn);
while (nyomi==0);
Wait(1);
Fwd(motorn);
Wait(15);
Off(motorn);
temp=0;
}
|