# Smart camera seguimiento color avanzado

##### <span style="color: rgb(22, 145, 121);">**Kp, velocidad diferencial del motor.... ¿Eso qué es?**</span>

En la extensión CAMARA INTELIGENTE ESPECÍFICA PARA EVENTOS

[![smartcam30.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam30.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam30.jpg)

Encontramos estas dos instrucciones

[![smartcam31.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam31.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam31.jpg)

¿Qué significan?

Vamos a definir dos sistemas de coordenadas

- Las **coordenadas del fondo de PixiCam**
- Las **coordenadas de la SmartCam asociadas al evento** (en este caso el seguimiento del color) que en la instrucción se llama *velocidad diferencial* (no puedo llamarlo velocidad pues son coordenadas espaciales, como físico lo siento, no puedo 😫)

Las **coordenadas de fondo de Pixicam** <span style="text-decoration: underline;">son fijas</span>, y van desde 0,0 a 320,240 y se pueden ver en la pantalla de PixiMon moviendo el ratón:

[![smartcam32.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam32.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam32.jpg)

Las otras coordenadas *"**Las coordenadas de la SmartCam asociadas al evento**"* están asociadas al evento y están escalados según el valor de 100\*Kp donde Kp tiene que ser un número de 0 a 1 por lo tanto el máximo es 100 y el centro de coordenadas lo fija el usuario en el número de la siguiente instrucción, ese número está referido a las coordenadas del fondo de Pixicam

[![smartcam33.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam33.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam33.jpg)

Para entendernos mejor, si ponemos

[![smartcam34.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam34.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam34.jpg)

El origen será 160,120, o sea lo normal, el centro del fondo de Pixicam, pero puede interesarte "acercar" la bola al robot por lo tanto ¿subirías y a más de 120 o bajarías de 120?

Para entenderlo mejor un dibujo,:

- Las **coordenadas del fondo de PixiCam** <span style="color: rgb(224, 62, 45);">en rojo</span>
- Las **coordenadas de la SmartCam asociadas al evento**<span style="color: rgb(35, 111, 161);"> en azul</span>

[![smartcam36.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam36.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam36.jpg)

Y para entenderlo mejor, vamos a ejecutar el siguiente programa test **en mBot2** para que se vea en la pantalla del Cyberpi [https://planet.mblock.cc/project/3657404](https://planet.mblock.cc/project/3657404)

[![smartcam37.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcam37.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam37.jpg)

Al ejecutarlo vemos que muestra las coordenadas de la pelota roja (asociada al evento) y como Kp es 0.3 va desde -30 a +30 tanto para X como para Y

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="791" src="https://www.youtube.com/embed/CA84H3AELKM" title="kp SmartWatch camera mbot" width="445"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Kp, velocidad diferencial del motor.... ¿Eso para qué sirve?**</span>

Pues como son las coordenadas de lo que se "separa" la bola de tu origen, puedes darle velocidad a los motores según esas coordenadas

Desde el punto de vista de las Y (avanzar o retroceder) si hay más Y más tienen que ir los dos motores (hacia delante) si la Y es negativa los dos motores tienen que retroceder, luego desde el punto de vista de las Y :

- Velocidad motor izquierdo = Y
- Velocidad motor derecho = Y

Desde el punto de vista de las X (girar) si la X es positiva, tiene que girar a la derecha por lo tanto motor izquierdo avanzar (positiva) y el derecho retroceder (negativo) y si es negativo al revés por lo tanto

- Velocidad motor izquierdo = X
- Velocidad motor derecho = -X

Juntando los dos, tenemos:

- Velocidad motor izquierdo = Y + X
- Velocidad motor derecho = Y - X

##### <span style="color: rgb(22, 145, 121);">**Seguimiento del color utilizando Kp, velocidad diferencial**</span>

Podemos aumentar en un factor de 3 para darle más caña pues el máximo sería 30% al multiplicarlo por 3 conseguimos llegar al 90%. Ese factor de multiplicación de la potencia del motor tendría que ser más o menos 10\*Kp

<p class="callout info">Es decir, Velocidad motor izquierdo = 10 *Kp*  ( Y + X ) Velocidad motor derecho = 10 *Kp*  (Y - X)</p>

Cuánto más Kp, se sigue mejor a la pelota pero se consigue peor estabilización.

El programa [https://planet.mblock.cc/project/3613286](https://planet.mblock.cc/project/3613286)

[![smartcam77.png](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam77.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcam38.jpg)

##### <span style="color: rgb(22, 145, 121);">**¿Por qué el seguimiento del color utilizando Kp, velocidad diferencial es mejor que el simple?**</span>

<span style="color: rgb(0, 0, 0);">Piénsalo bien, cuanto más se aleja, más potencia, mientras que el simple, si la pelota estaba en una zona determinada, va a una potencia fija.</span>

##### <span style="background-color: rgb(255, 255, 255); color: rgb(22, 145, 121);">**+ Información**</span>

En estos PDFs tienes una explicación más formal de Kp y las velocidades diferenciales:

- En Inglés [https://www.a4telechargement.fr/mBot/MB-P1100022\_SmartCamera\_StudentsBookSmartCamera\_ANG.pdf](https://www.a4telechargement.fr/mBot/MB-P1100022_SmartCamera_StudentsBookSmartCamera_ANG.pdf)
- En Español [https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf](https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf)