Video: Il mio Robot 2025
Per creare movimento nel progetto di elettronica, è possibile aggiungere un dispositivo utile, chiamato serv o, che consente di controllare il movimento meccanico con un programma BASIC Stamp. Un servo è un tipo speciale di motore progettato per ruotare in una determinata posizione e mantenere quella posizione fino a quando non viene detto di ruotare in una posizione diversa. I servi dell'hobby vengono spesso usati nei veicoli radiocomandati, ma ci sono molti altri usi per i servi.
Il BASIC Stamp Activity Kit è dotato di un servo che è possibile utilizzare per imparare a scrivere programmi che controllano i servi. Puoi anche acquistare i servi direttamente da Parallax o dalla maggior parte dei negozi di hobby.
Il modo più semplice per controllare un servo da un microcontrollore BASIC Stamp è usare il comando PULSOUT. Questo comando invia un impulso di qualsiasi durata specificata a un pin I / O di tua scelta. La sintassi di questo comando è la seguente:
pin PULSOUT, durata
Si specifica la durata in unità di due microsecondi. Un microsecondo è un milionesimo di secondo. Ci sono mille millisecondi in un millisecondo. Pertanto, per inviare un impulso di 1. 5 ms con il comando PULSOUT, è necessario specificare 750 come durata, come ad esempio:
PULSOUT 0, 750
Qui, un impulso di 1. 5 ms viene inviato al pin 0.
Ecco i valori di durata di PULSOUT che dovresti usare per un tipico servo hobby per vari angoli.
Angle | Durata | Angle | Durata |
---|---|---|---|
0 | 250 | 95 | 778 |
5 | 278 | 100 | 806 |
10 | 306 | 105 | 833 |
15 | 333 | 110 | 861 |
20 | 361 | 115 > 889 | 25 |
389 | 120 | 917 | 30 |
417 | 125 | 944 | 35 |
444 | 130 | 972 | 40 |
472 | 135 | 1000 | 45 |
500 | 140 | 1028 | 50 |
528 | 145 | 1056 > 55 | 556 |
150 | 1083 | 60 | 583 |
155 | 1111 | 65 | 611 |
160 | 1139 | 70 | 639 |
165 | 1.167 | 75 | 667 |
170 | 1.194 | 80 | 694 |
175 | 1.222 | 85 > 722 | 180 |
1250 | 90 | 750 | Ad esempio, per spostare il servo sul pin da 0 a 75 °, utilizzare questo comando: |
PULSOUT 0, 667 | Ricorda per mantenere la sua posizione, un servo necessita di un flusso costante di impulsi a circa 20 ms di distanza. Pertanto, i comandi PULSOUT sono solitamente contenuti in loop DO o loop FOR-NEXT. Ad esempio, ecco un po 'di codice che mantiene il servo sul pin 0 a 45 ° indefinitamente: |
DO PULSOUT 0, 500 PAUSE 20 LOOP
Ecco il programma completo che sposta il servo a 45 ° quando SW1 (un pulsante sul pin 14) viene premuto e 135 ° quando viene premuto SW2 (un pulsante sul pin 10).
'Programma di controllo servo' Doug Lowe '15 luglio 2011 "Questo programma sposta un servo su uno dei due quando viene premuto SW1' e riporta il servo in posizione centrale quando viene premuto SW2. '{$ STAMP BS2}' { $ PBASIC 2. 5} Servo PIN 0 SW1 PIN 14 SW2 PIN 10 Posizione VAR Parola Position = 500 DO SE SW1 = 1 THEN Posizione = 500 ENDIF SE SW2 = 1 THEN Posizione = 1000 ENDIF PULSOUT Servo, Posizione PAUSE 20 LOOP
