Skip to content

Commit 2c38737

Browse files
committed
add doc on programs, blocks reference
1 parent 792b805 commit 2c38737

File tree

3 files changed

+278
-1
lines changed

3 files changed

+278
-1
lines changed

docs/.vitepress/config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export default {
2727
{ text: 'Programmazione', link: '/usermanual/#programmazione' },
2828
{ text: 'Attività', link: '/usermanual/#attivita' },
2929
{ text: 'Blocchi', link: '/usermanual/blocks/' },
30+
{ text: 'Programmi', link: '/usermanual/programs/' },
3031
]
3132
},
3233
{

docs/usermanual/blocks/index.md

Lines changed: 124 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,70 +64,193 @@ Attende (pausa l'esecuzione del programma) il tempo indicato, espresso in second
6464

6565
### Scatta foto
6666

67+
Scatta una foto con la telecamera integrata e la salva nella Galleria.
68+
6769
### Registra video
6870

71+
Avvia la registrazione di un video, che sarà poi salvato nella Galleria.
72+
73+
La registrazione può essere interrotta tramite il blocco [Stop video](#stop-video) ed è comunque interrotta al termine dell'esecuzione del programma.
74+
6975
### Stop video
7076

77+
Termina la registrazione di un video, che sarà poi salvato nella Galleria.
78+
7179
## Visione
7280

7381
### Valore medio immagine
7482

83+
Calcola il valore medio di una caratteristica dell'immagine:
84+
- Luminosità
85+
- Tinta (quale colore)
86+
- Saturazione (colore-bianco e nero)
87+
- HSV (Hue Saturation Lightness)
88+
89+
Può essere usato per valutare la presenza di luce o di uno specifico colore nell'immagine.
90+
7591
### Spazio libero
7692

93+
Determina la presenza di spazio "libero" davanti al robot.
94+
95+
Ritorna un valore numerico, che rappresenta lo spazio libero davanti al robot, espresso in cm.
96+
97+
Utilizza la visione artificiale per determinare l'assenza di ostacoli nella parte di piano davanti al robot stesso, entro 30 cm dal robot stesso.
98+
99+
La funzione è basata sul contrasto, quindi è sensibile a cambi di colore o intensità della superficie.
100+
77101
### Trova linea
78102

103+
Determina la presenza di una linea davanti al robot.
104+
105+
Ritorna una lista di tre elementi, ognuno dei quali nmerico e corrispondente alla posizione della linea rispetto al campo visivo del robot, dove:
106+
- 0 è il lato sinistro
107+
- 100 è il lato destro
108+
- 50 è il centro del campo visivo
109+
110+
Il blocco utilizza la visione artificiale per determinare la presenza di una linea nella parte inferiore del campo visivo del robot, che è a sua volta diviso in tre settori orizzontali, corrispondenti a tre aree rettangolari ordinate dal basso verso l'alto.
111+
79112
### Trova faccia
80113

114+
Determina la presenza di un volto nel campo visivo del robot.
115+
116+
Ritorna una delle misure specificate oppure una lista con tutte, in ordine:
117+
- ascissa (posizione orizzontale rispetto al centro)
118+
- ordinata (posizione verticale rispetto al centro)
119+
- dimensione (grandezza del volto, quindi inversamente proporzionale alla distanza del volto dal robot)
120+
121+
Utilizza la visione artificiale per determinare la presenza di uno o più volti nel campo visivo.
122+
81123
### Trova distanza da colore
82124

125+
Determina la presenza di un oggetto del colore definito nel campo visivo del robot.
126+
127+
Ritorna una delle misure specificate oppure una lista con tutte:
128+
- distanza (posizione dell'oggetto rispetto al robot)
129+
- angolo (angolo rispetto alla verticale, espresso in gradi, 0° = centro)
130+
131+
Utilizza la visione artificiale per determinare la presenza di un oggetto del colore specificato.
132+
133+
Per ottenere un buon risultato si consiglia di scattare una foto all'oggetto, direttamente con CoderBot, e di rilevare il colore dell'oggetto direttamente dall'immagine, tramite la funzione disponibile nella Galleria delle immagini.
134+
83135
### Trova testo
84136

137+
Riconosce il testo nel campo visivo del robot.
138+
139+
Ritorna una stringa di caratteri corrispondente al testo riconosciuto nell'immagine, se presente.
140+
85141
### Leggi Bar / QRCode
86142

143+
Legge un codice a barre o un QR code nel campo visivo del robot.
144+
145+
Ritorna una stringa di caratteri corrispondente al codice a barre, oppure al codice codificato nel QR code, se presente.
146+
87147
### Leggi AR Code
88148

149+
Legge un codice di tipo AR code nel campo visivo del robot.
150+
151+
Ritorna il codice numerico corrispondente al codice AR code, se presente.
152+
89153
### Trova classe
90154

155+
Determina la classe dell'oggetto presente nel campo visivo del robot.
156+
157+
Ritorna una stringa di testo corrispondente alla classe dell'oggetto rilevato dalla rete neurale.
158+
159+
[A questo link l'elenco completo delle classi riconosciute](https://github.com/CoderBotOrg/net-models/blob/master/cnn_models/generic_fast_low.txt).
160+
91161
### Trova oggetti
92162

163+
Riconosce gli oggetti presenti nel campo visivo del robot.
164+
165+
Ritorna lista con i primi 3 oggetti riconosciuti, ordinata per confidenza del riconoscimento.
166+
167+
Ogni elemento della lista contiene:
168+
- classe: stringa di caratteri corrispondenti al nome della classe dell'oggetto riconosciuto;
169+
- accuratezza del riconoscimento: 0 minima, 100 massima;
170+
- lista di quattro elementi corrispondenti alle coordinate X1, Y1, X2, Y2 del rettangolo che contiene l'oggetto;
171+
172+
[A questo link l'elenco completo delle classi riconosciute](https://github.com/CoderBotOrg/net-models/blob/master/cnn_models/generic_object_detect.txt).
173+
93174
## Sensori
94175

95176
### Leggi distanza con sonar
96177

178+
Determina la distanza da oggetti davanti (o ai lati, a seconda del sensore utilizzato) di CoderBot.
179+
180+
Ritorna un valore numerico corrispondente alla distanza, espressa in cm, tra il robot e il primo oggetto davanti al sensore sonar a ultrasuoni.
181+
182+
La lettura va da 0 a 340 centimetri, ha una precisione intorno al 2-3% ma può essere instabile (valori che oscillano anche di 50-100cm) se l'oggetto misurato presenta una superficie non piatta e non perpendicolare rispetto al terreno.
183+
97184
### Giroscopio
98185

186+
Ritorna la lettura del giroscopio (se presente) sui tre assi.
187+
99188
### Accelerometro
100189

190+
Ritorna la lettura dell'accelerometro (se presente) sui tre assi.
191+
101192
### Bussola
102193

194+
Ritorna la lettura della bussola (se presente).
195+
103196
### Temperatura
104197

198+
Ritorna la lettura del termometro (se presente).
199+
105200
## Suono
106201

107202
### Pronuncia
108203

204+
Emette un suono di sintesi vocale del testo specificato, nella lingua specificata.
205+
109206
### Registra audio
110207

208+
Registra il suono percepito dal microfono, per il tempo indicato, nel file indicato.
209+
111210
### Riproduci file audio
112211

212+
Riproduce il suono indicato (precedentemente registrato, o presente tra i suoni predefiniti).
213+
113214
### Ascolta suono
114215

216+
Determina la presenza di suoni oltre la soglia indicata, per il tempo indicato.
217+
218+
Ritorana un booleano, "true" se il suono è sopra la soglia e oltre la durata stabilita, altrimenti "false";
219+
115220
### Riconosci parlato
116221

222+
Interpreta il suono come parlato.
223+
224+
Ritorna una stringa di caratteri corrispondente al testo riconosciuto.
225+
117226
## Estensioni I/O
118227

119228
### Leggi input
120229

230+
Ritorna un valore numerico corrispondete al valore letto dall'ingresso analogico (se presente).
231+
121232
### Scrivi Digital Output
122233

234+
Attiva l'uscita digitale specificata (se presente).
235+
123236
### Controlla led
124237

238+
Controlla una striscia di led pilotata da un chip di tipo WS2812B (se presente).
239+
125240
## Musica
126241

127242
### Suona nota
128243

244+
Emette il suono corrispondente alla nota specificata, con lo strumento specificato.
245+
129246
### Strumento (strumento)
130247

248+
Selezione lo strumento specificato.
249+
131250
### Strumento (animale)
132251

133-
### Pausa
252+
Selezione il suono dell'animale specificato come strumento.
253+
254+
### Pausa
255+
256+
Attende per il tempo specificato.

docs/usermanual/programs/index.md

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
# Programmi predefiniti
2+
3+
CoderBot è predisposto con alcuni programmi pronti all'uso.
4+
5+
I programmi si dividono in due categorie, in base all'obiettivo che si propongono di risolvere:
6+
7+
- Programmi di test: utili per dimostrare o verificare il corretto funzionamento di una particolare funzione del robot;
8+
- Programmi dimostrativi: sono pensati per svolgere un compito significativo (ad esempio: muoversi evitando gli ostacoli), possono essere usati sia per dimostrare le caratteristiche del robot che come base di partenza per attività didattiche;
9+
10+
I programmi di esempio non possono essere alterati, ma è possibile crearne una copia, salvarla con nome diverso e a piacere, e apportarvi liberamente modifiche.
11+
12+
## Descrizione dei programmi
13+
14+
### test_cnn_classifier
15+
16+
Programma di test del blocco [Trova classe](../blocks/#trova-classe).
17+
18+
### img_average_test
19+
20+
Programma di test del blocco [Valore medio immagine](../blocks/#valore-medio-immagine).
21+
22+
### test_output
23+
24+
Programma di test del blocco [Scrivi Digital Output](../blocks/#scrivi-digital-output).
25+
26+
### test_led
27+
28+
Programma di test del blocco [Controlla led](../blocks/#controlla-led).
29+
30+
### test_sonars
31+
32+
Programma di test del blocco [Leggi distanza con sonar](../blocks/#leggi-distanza-con-sonar).
33+
34+
### ar_bot
35+
36+
Programma completo che ha lo scopo di fare in modo che CoderBot "obbedisca" ai segnali che è in grado di vedere con la telecamera.
37+
38+
Il programma utilizza il blocco [Leggi AR Code](../blocks/leggi-ar-code) per riconoscere dei particolari segnali (detti anche "tag"), ai quali è associato un codice numerico.
39+
40+
In base al codice riconosciuto, CoderBot esegue delle azioni predefinite:
41+
42+
- "1" rotazione verso sinistra
43+
- "2" movimento in avanti
44+
- "3" rotazione verso destra
45+
- "4" rotazione breve a destra e a sinistra, restando sul posto, poi pronuncia la frase "sono arrivato!"
46+
- "5" pronuncia la frase "attenzione!"
47+
48+
Il programma può essere facilmente esteso in modo da interpretare altri codici che possono essere associati ad altre azioni: movimenti o emissione di suoni.
49+
50+
### find_code_test
51+
52+
Programma di test del blocco [Leggi Bar / QRCode](../blocks/#leggi-bar-qrcode).
53+
54+
### test_cnn_object_detect
55+
56+
Programma di test del blocco [Trova oggetti](../blocks/#trova-oggetti).
57+
58+
### demo_obstacle_avoidance
59+
60+
Programma completo per far muovere CoderBot su una superficie in modo continuo in modo da evitare gli ostacoli che gli si presentano davanti.
61+
62+
Il programma utilizza il blocco [Leggi distanza con sonar](../blocks/#leggi-distanza-con-sonar) per determinare presenza e la distanza di ostacoli davanti a sé, ed evitarli girando sulla destra.
63+
64+
Il programma può essere modificato variandone i parametri, come la distanza entro la quale è riconosciuto l'ostacolo (15 cm) e la durata dei movimenti (espressa in secondi).
65+
66+
### test_music
67+
68+
Programma di test del blocco [Suona nota](../blocks/#suona-nota).
69+
70+
### test_input
71+
72+
Programma di test del blocco [Trova oggettie](../blocks/#trova-oggetti).
73+
74+
### cat_follower
75+
76+
Programma completo per far muovere CoderBot su una superficie in modo continuo alla ricerca di un gatto (va bene sia un gatto vero che una sua immagine).
77+
78+
Il programma utilizza il blocco [Trova oggetti](../blocks/#trova-oggetti) per determinare la presenza e la distanza di un gatto e cercare di inseguirlo.
79+
80+
Il programma può essere modificato variandone i parametri, cambiando la classe dell'animale riconosciuto (cane) o anche oggetti riconosciuti dal blocco "Trova oggetti".
81+
82+
### colour_seeker
83+
84+
Programma completo per far muovere CoderBot su una superficie in modo continuo alla ricerca di un oggetto di un certo colore.
85+
86+
Il programma utilizza il blocco [Trova distanza da colore](../blocks/#trova-distanza-da-colore) per determinare la presenza e la distanza di un oggetto del colore specificato e cercare di raggiungerlo.
87+
88+
Il programma può essere modificato variandone i parametri, cambiando il colore riconosciuto e il movimento per raggiungere il bersaglio.
89+
90+
Un aspetto critico per il corretto funzionamento del programma è la definizione del colore dell'oggetto che si desidera identificare.
91+
92+
Per ottenere un buon risultato si consiglia di scattare una foto all'oggetto, direttamente con CoderBot, e di rilevare il colore dell'oggetto direttamente dall'immagine, tramite la funzione disponibile nella Galleria delle immagini.
93+
94+
### test_io_ext
95+
96+
Programma di test dei blocchi [Scrivi Digital Output](../blocks/#scrivi-digital-output) e [Leggi input](../blocks/#leggi-input).
97+
98+
### sound_rec_test
99+
100+
Programma di test del blocco [Registra audio](../blocks/#registra-audio).
101+
102+
### find_color
103+
104+
Programma di test del blocco [Trova distanza da colore](../blocks/#trova-distanza-da-colore).
105+
106+
### path_ahead
107+
108+
Programma completo per far muovere CoderBot su una superficie in modo continuo evitando ostacoli.
109+
110+
Il programma utilizza il blocco [Spazio libero](../blocks/#spazio-libero) per determinare se lo spazio davanti al robot è praticabile, e ne caso muoversi al suo interno.
111+
112+
Rispetto ad altri programmi di evitamento ostacoli basati sui sensori sonar a ultrasuoni, questo è basato sulla visione artificiale ed è sensibile anche a cambio di colore dello sfondo, piuttosto che alla presenza di ostacoli solidi.
113+
114+
### face_find
115+
116+
Programma completo per far muovere CoderBot, ruotando sul posto, in modo continuo alla ricerca di un volto.
117+
118+
Il programma utilizza il blocco [Trova faccia](../blocks/#trova-faccia) per determinare la presenza e posizione di un volto davanti a sé, e cercare di portare al centro del suo campo visico il volto tramite rotazioni sul posto.
119+
120+
Se il blocco rileva più di un volto contemporaneamente presente nel campo visivo, viene preso in considerazione il volto più vicino al robot (quello con le dimensioni maggiori).
121+
122+
### hear_test
123+
124+
Programma di test del blocco [Trova oggetti](../blocks/#trova-oggetti).
125+
126+
### line_follower
127+
128+
Programma completo per far muovere CoderBot su una superficia, seguendo un percorso definito da una linea tracciata sulla superficie stessa.
129+
130+
Il programma utilizza il blocco [Trova linea](../blocks/#trova-linea) per determinare la presenza e posizione di una linea e seguirne il percorso.
131+
132+
Il blocco Trova linea utilizza la visione artificiale per determinare la presenza di una linea nella parte inferiore del campo visivo del robot, che è a sua volta diviso in tre settori orizzontali, corrispondenti a tre aree rettangolari ordinate dal basso verso l'alto.
133+
134+
Il programma in oggetto utilizza solo il primo settore, ovvero il più basso corrispondente all'area più vicina al robot, ma è possibile estendere il programma utilizzando anche le altre letture, in modo da migliorare la reattività del robot in caso di curve strette.
135+
136+
### clap_control
137+
138+
Programma dimostrativo del blocco [Ascolta suono](../blocks/#ascolta-suono).
139+
140+
Il programma fa in modo che il robot si muova in rettilinea e giri a destra se "sente" un suono forte e breve (come ad esempio un battito di mani).
141+
142+
### demo_scientist
143+
144+
Programma completo per il "gioco dello scienziato", che ha lo scopo di far muovere CoderBot in base a un algoritmo non banalmente deducibile (idealmente: come fosse un animale che esplora l'ambiente che lo circonda) in modo da poter stimolare l'osservazione del comportamento del robot, e la formulazione di ipotesi circa la natura del robot e del programma stesso.
145+
146+
Il programma fa uso essenzialmente del blocco [Leggi distanza con sonar](../blocks/#leggi-distanza-con-sonar) e i blocchi standard per generare nuomeri casuali in modo da eseguire movimenti in parte ripetititivi e in parte casuali.
147+
148+
### roboetologia
149+
150+
Programma completo per il "gioco dello scienziato" (versione rivista e più articolata rispetto a "demo_scientist"), che ha lo scopo di far muovere CoderBot in base a un algoritmo non banalmente deducibile (idealmente: come fosse un animale che esplora l'ambiente che lo circonda) in modo da poter stimolare l'osservazione del comportamento del robot, e la formulazione di ipotesi circa la natura del robot e del programma stesso.
151+
152+
Il programma fa uso essenzialmente del blocco [Leggi distanza con sonar](../blocks/#leggi-distanza-con-sonar) e i blocchi standard per generare nuomeri casuali in modo da eseguire movimenti in parte ripetititivi e in parte casuali.
153+

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy