Subject:
|
Re: A tutti i Dragstereers
|
Newsgroups:
|
lugnet.loc.it
|
Date:
|
Fri, 21 Jan 2000 11:26:33 GMT
|
Viewed:
|
476 times
|
| |
| |
Marco Beri <marcob@equalis.it> wrote:
> Ho pensato: perche` una buona anima, diciamo uno a caso tra Carlo e
> Mario, non fanno opera di raccolta e postano la versione definitiva,
> inappellabile, cumulativa del regolamento con in appendice il pezzo di
> codice?
Ok pigrone. Vedi in coda a questo messaggio, però...
> Purtroppo stasera dovro` portare la moglie al cinema e
> tornando solo alle 23 avro` poco tempo per raccogliere le mie idee e
> quindi mi piacerebbe non dover spulciare tra 23 messaggi.
> Comunque un'opera del genere servirebbe a tutti credo.
> Per intanto grazie.
...la prossima volta tu fai opera di raccolta e io porto al cinema TUA
moglie :-)
Ciao
Mario
/*
0) La lunghezza del percorso di gara è di 5m. Dopo il traguardo il dragster
deve
arrestarsi entro 20 cm, senza comunque retrocedere oltra la linea di
traguardo
appena superata. Tutte le misurazioni di partenza, arrivo e frenata faranno
riferimento alla posizione del sensore di luce fissato sul dragster. Il
cronometraggio è effettuato dal dragster medesimo con convalida tramite
cronometro esterno. Nel caso il dragster non si arresti entro i 20cm la
prova
sarà considerata nulla. Per la partenza il dragster viene posizionato prima
della
linea, spinto *dolcemente* sulla stessa fino a che il sensore di luce non la
rileva. Il codice deve prevedere a questo punto un attesa di almeno 5
secondi
prima di attivare i motori. Prima dell'attivazione dei motori deve essere
altresì
controllata un'ultima volta, sempre dal codice, la posizione sulla linea di
partenza. Il cronometraggio deve essere avviato *prima* dell'accensione dei
motori ed arrestato *dopo* il superamento del traguardo.
1) Il dragster deve essere costruito *esclusivamente* con pezzi di
produzione Lego. (Con l'unica eccezione delle batterie)
2) Si possono usare un massimo di tre motori.
3) Il dragster deve portare a bordo l'RCX per tutta la durata della prova.
4) Non è possibile alimentare l'RCX dall'esterno.
5) non deve essere "perso" nessun pezzo strada facendo
6) non possono essere usate rampe di lancio
7) il sensore di luminosita` deve costituire un corpo unico con l'RCX
(se qualcuno e` cosi` bravo da riuscire a spostare in avanti l'RCX
rispetto alle ruote per "prevenire" la riga, ben venga)
8) il codice dovra` essere messo a disposizione prima della gara e caricato
in
loco sotto controllo pubblico.
9) E' consentito l'uso di un solo sensore di luce.
10) E' vietato l'uso di sensori di rotazione. (I sensori di temperatura
potete usarli :-)
11) Non sono ammessi sistemi propulsivi pre-caricati ad aria, elastico,
molla
o nessun altro tipo. L'unica fonte possibile di moto diretto o indiretto
devono
essere i motori elettrici, azionati durante lo svolgimento della gara.
12) Il dragster deve sembrare, almeno vagamente, un dragster. Veicoli che
ricordano la macchina di Nonna Papera o un carrello per la spesa potranno
non
essere ammessi alla gara con giudizio a maggioranza degli altri concorrenti.
13) E' vietato lubrificare gli assi. (Lego non produce nessun lubrificante.)
*/
// Dragster
// ========
//
// - sensore di luce su porta 1
// - tre motori su A, B, e C
#define SOGLIA 740
// variabili per cronometro
int t, t0, t1, t2, t3;
task main()
{
// configura sensore di luce su porta 1
SetSensorType(SENSOR_1, SENSOR_TYPE_LIGHT);
SetSensorMode(SENSOR_1, SENSOR_MODE_RAW);
// dimensiona datalog x cronometraggio
CreateDatalog(5);
// attende di essere posizionato sulla linea di partenza
while (SENSOR_1<SOGLIA);
// sulla linea, pronti al via tra 5 secondi
Wait(100); PlayTone(440,5);
Wait(100); PlayTone(440,5);
Wait(100); PlayTone(440,5);
Wait(100); PlayTone(440,5);
Wait(100); PlayTone(880,5);
// test se posizione di partenza corretta
if (SENSOR_1<SOGLIA)
{
// partenza annullata
PlaySound(SOUND_LOW_BEEP);
StopAllTasks();
}
// via!!
StartTimer();
OnFwd(OUT_A+OUT_B+OUT_C); // o altro codice di vostra specifica scelta
// attende di essere fuori dalla linea di partenza prima di cercare
// quella di arrivo
Wait(50);
// attende la linea di arrivo
while (SENSOR_1<SOGLIA);
// ferma il cronometro
StopTimer();
// avvia task di controllo rispetto limiti di frenata
start controlla_traguardo;
// frena
Off(OUT_A+OUT_B+OUT_C); // o qualsiasi altra cosa decidiate di fare per
frenare
}
task controlla_traguardo()
{
// attende di essere fuori dalla linea di arrivo prima di cercare
// quella di limite (in 4 centesimi il dragster dovrebbe fare circa 5 cm)
Wait(4);
// attende che sia toccata una delle linee (traguardo o limite)
while (SENSOR_1 < SOGLIA);
// avvisa di linea toccata
PlaySound(SOUND_LOW_BEEP);
}
void StartTimer()
{
ClearTimer(0);
Wait(2);
ClearTimer(1);
Wait(3);
ClearTimer(2);
Wait(3);
ClearTimer(3);
}
void StopTimer()
{
t0 = Timer(0);
t1 = Timer(1);
t2 = Timer(2);
t3 = Timer(3);
if( t1 < t0 )
t = t0 * 10;
else if( t2 < t0 )
t = t0 * 10 + 2;
else if( t3 < t0 )
t = t0 * 10 + 5;
else
t = t0 * 10 + 8;
AddToDatalog(t);
}
|
|
Message has 1 Reply:
Message is in Reply To:
| | A tutti i Dragstereers
|
| Ho pensato: perche` una buona anima, diciamo uno a caso tra Carlo e Mario, non fanno opera di raccolta e postano la versione definitiva, inappellabile, cumulativa del regolamento con in appendice il pezzo di codice? Purtroppo stasera dovro` portare (...) (25 years ago, 21-Jan-00, to lugnet.loc.it)
|
3 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|