Étape 4: Código
En este ejemplo, vamos a crear un montón de caminadores aleatorios. Fils de Côme partículas que caminan en cualquier dirección. Para crear aleatoriedad utilizamos la función random(), y como verán por el resultado, fr Arduino es bastante mala, pero simples d’aplicaciones para, fonctionne bien. TODO lenguaje de programación tiene algún tipo de une fonction aléatoire, dado que esta función es fondamentales para muchos aspectos de cálculo, simulaciones y desarrollo de matériel y logiciel en général.
Para hacer un caminador aleatorio, debemos mantener posiciones x, y de varias « partículas », y para eso usamos dos telles, posX [] y [bouquet], para guardar x, y respectivamente. Estas coordonnées las vamos cambiando por cada ciclo del Aduino, y vamos dibujando ONU círculo utilizando estas posiciones en boucle.
Veamos varias cosas del código. De las líneas 2 a la 4, se Carpentier las librerías que vamos a utilizar para la pantalla OLED. Pueden ir un este instructable para la explicación de estas librerías y su utilización.
En las líneas 6 a 8, creamos dos telles de enteros :
const int num = 10; int posX[num] ; int posY[num];
Vean que la primera línea de ese código utilizamos « const », esto lo indica que es que la variable num, es una constante, es decir, Qué aucun cambiará su valor en ninguna parte del proagrama. Si pas le agregan « const », les daría el siguiente erreur :
IntroC_For:7: error: array bound is not an integer constant before ']' token int posX[num];
Esto es porque este tipo de telles fils estáticos, es decir, se construyen y el micro-controlador asigna de inmediato el espacio de memoria y aucun se puede cambiar su tamaño en ningún momento después de creados. « num » debe ser necesariamente una constante, y por eso esto se corrige indicando que es una constante agregando « const » al inicio de la declaración.
Los telles posX [num] y bouquet [num], almacenan valores de tipo entéro, y como definicmos num que mer igual a 10, entonces, habrá 10 « gavetas » en cada arreglo.
Fr la función setup(), las líneas 16 a 19, inicializamos cada variable fr el arreglo, para colocarlos en el centro de la pantalla,
for (int i = 0; i < num; i++) { posX[i] = 64; posY[i] = 32; }
ACÁ utilizamos el ciclo de, para ir por cada elemento del arreglo y asignarle el valor inicial del centro de pantalla en posición x, y. Noten como el iterador je, se utiliza para indicar que elemento del arreglo vamos un asignar, y el ciclo se encarga de cambiar je, desde 0 a 5.
En la sección loop(),
for (int i = 0; i < num; i++) { posX[i] = constrain(posX[i] + random(-3, 3),1,127); posY[i] = constrain(posY[i] + random(-3, 3),1,63); display.fillCircle(posX[i], posY[i], 1, WHITE); display.display(); }
Volvemos a utilizar un ciclo de, para cambiar los valores de posición x, y. En la línea,
posX[i] = constrain(posX[i] + random(-3, 3),1,127);
Se utilizan varias cosas. Veamoslo de adentro hacia afuera. Lo primero es la función random(-3,3). Esta función lo que hace es generar ONU número aleatorio entre -3 et 3. Una vez creado el número, esta se la sumamos la posX [i], que era la posición en la que estaba antes. Luego utilizamos la función contraindre (posX [i] + aléatoire (-3, 3), 1, 127);, esta lo que hace es asegurar que el cualquiera que sea el resultado, este nunca sea menos Qué 1 o maire que 127. Pueden ver la de fr de su uso referencia de Arduino. Hacemos lo mismo con bouquet [i].
Una vez re-calculada la nueva posición, dibujamos ONU círculo condisplay.fillCircle (posX [i], posY [i], 1, blanc), y luego actualizamos el affichage con display.display();
ESO es todo. ahora verlo funcionando.