# 7. IA Hardware educable

# SmartCamera - Qué es

Esta cámara se vende como accesorio de los robots de Makeblock por unos [140€ ,](https://www.robotix.es/es/smart-camera)

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

<p class="callout warning">ATENCIÓN, ESTE SENSOR NO SE SUMINISTRA CON EL KIT DE PRÉSTAMO DE CATEDU</p>

<p class="callout danger">Atención ESTA ESPECIALMENTE DISEÑADO PARA **mBot1,** no esta muy bien ajustado para mBot2</p>

Por dentro es un PIXCAM [https://pixycam.com/](https://pixycam.com/) que tiene integrado un firmware que puede trabajar de dos formas :

- **Modo reconocer colores.** 
    - Reconoce con IA hasta 7 colores distintos
    - Salida I2C que facilita las coordenadas X e Y con respecto a un punto determinado (suele ser el centro) y por lo tanto servos o motores pueden realizar el seguimiento de color reconocido.
- **Modo seguimiento de líneas/barras**
    - Reconocimiento de líneas
    - Con IA toma decisiones de rumbo en las intersecciones
    - Modo lectura códigos de barras Reconoce 15 códigos de barras verticales definidos de fábrica

Se ve mejor con un video:

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/EcCbEWiyiQY" width="560"></iframe>

El kit para Makeblock es la misma cámara pero encapsulado, y se añade

- batería
- cables de conexión para mbot1
- cable de conexión para mbo2
- pelotas de colores
- los códigos de barras que hemos comentado

[![2024-03-16 10_35_58-Tutorial Smart Camera de Makeblock.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/2024-03-16-10-35-58-tutorial-smart-camera-de-makeblock.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/2024-03-16-10-35-58-tutorial-smart-camera-de-makeblock.png)

##### <span style="color: rgb(22, 145, 121);">**NO ES LA ÚNICA:** </span>

##### <span style="color: rgb(22, 145, 121);">**HUSKYLENS**</span>

Se puede poner al robot **Maqueen Plus** de Microbit [https://libros.catedu.es/books/microbit-car/page/cars-para-microbit](https://libros.catedu.es/books/microbit-car/page/cars-para-microbit)

[![2024-05-06 19_04_45-micromaqueen-plus-v2-advanced-stem-education-robot-18650-battery-version-7_600x..png](https://libros.catedu.es/uploads/images/gallery/2024-05/scaled-1680-/2024-05-06-19-04-45-micromaqueen-plus-v2-advanced-stem-education-robot-18650-battery-version-7-600x.png)](https://libros.catedu.es/uploads/images/gallery/2024-05/2024-05-06-19-04-45-micromaqueen-plus-v2-advanced-stem-education-robot-18650-battery-version-7-600x.png)

- Es barata aprox [55€](https://tienda.bricogeek.com/sensores-imagen/1410-huskylens-camara-de-vision-artificial.html?search_query=HuskyLens&results=4)
- Tiene más funciones, como reconocimiento facial
- Tiene una pantalla pequeña de 2 pulgadas OLED integrada para visualizar su funcionamiento.
- Su utilización es muy similar, entrar en el modo de operación que se desee (reconocimiento color, líneas, facial....) y dar al botón cuando es el objeto que se desea [ver](https://edu.dfrobot.com/makelog-308564.html)
- Necesita una placa complemento para la microbit (Robot Maqueen Plux o una[ tarjeta IO expansión...](https://tienda.bricogeek.com/microbit/1668-io-expansion-para-microbit.html?search_query=IO+Expansion+para+Micro%3Abit&results=32))
- <span style="background-color: rgb(255, 255, 255);">Debido a su consumo 320mA necesitan una alimentación externa </span>**<span style="background-color: rgb(251, 238, 184);">HAY QUE RECHAZAR TODA ALIMENTACIÓN CON LAS BATERÍAS 1860 QUE ESTEN ACCESIBLES</span> [ver peligros](https://libros.catedu.es/books/rover-marciano-alphabot-rasbperry-y-python/page/121-ojo-con-las-baterias-18650)**
- [![2024-05-06 19_39_01-Robot Maqueen Plus V2 para Micro_bit.png](https://libros.catedu.es/uploads/images/gallery/2024-05/scaled-1680-/2024-05-06-19-39-01-robot-maqueen-plus-v2-para-micro-bit.png)](https://libros.catedu.es/uploads/images/gallery/2024-05/2024-05-06-19-39-01-robot-maqueen-plus-v2-para-micro-bit.png)
    - Hay que descartar las 18650 modelos [https://www.dfrobot.com/search-maqueen%20plus.html](https://www.dfrobot.com/search-maqueen%20plus.html)
    - Hay modelos con baterías AAA NiMh recargables[ aprox 105€ ](https://www.dfrobot.com/product-2027.html)

Ver ejemplo de uso :

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/PPCDj8t5hdc?t=17s" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Smart AI Lens kit** </span><span style="color: rgb(22, 145, 121);">**ELECFREAKS**</span>

<span style="color: rgb(0, 0, 0);">Ver ejemplos de uso Microbit+cutebot + AI LENS en [https://libros.catedu.es/books/microbit-car/page/ai-lens-elecfreak](https://libros.catedu.es/books/microbit-car/page/ai-lens-elecfreak)</span>

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/YLxeKgtaUCU?t=13s" width="560"></iframe>

# SmartCamera - conexión con mBot

### <span style="color: rgb(22, 145, 121);">**Hardware**</span>

Para conectarlo con mBot1 **hace falta la batería** que se suministra en el pack, con su cable de conexión (punto 3 al 4 de la figura( y el cable de conexión del puerto I2C (punto 2) al RJ45 (punto 1).

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

*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,   
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

Una propuesta de montaje es este:

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

*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón, Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

Otra podría ser esta, utilizando también la misma pieza para que SmartCam tenga más visión :

[![2024-04-01 12_46_55-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2024-04/scaled-1680-/2024-04-01-12-46-55-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2024-04/2024-04-01-12-46-55-whatsapp.png)

##### <span style="color: rgb(22, 145, 121);">**En mBot2**</span>

<span style="color: rgb(0, 0, 0);">En este robot, no tenemos puertos con clavija RJ45 pero sí puertos I2C que permiten comunicación de los diferentes módulos de sensores y actuadores en serie, en la figura vemos como se conectan el sensor sigue líneas con el sensor distancia ultrasonidos en serie.</span>

<span style="color: rgb(0, 0, 0);">[![smartcamera7.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera7.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera7.png)</span>

<span style="color: rgb(0, 0, 0);">Podemos no perder el sensor a distancia de ultrasonidos y conectarlo desde este sensor (1) al smartcamera (2) con el cable I2C que se suministra en el pack de smart cámera.</span>

<span style="color: rgb(0, 0, 0);">[![smartcamera6.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera6.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera6.png)</span>

<span style="color: rgb(0, 0, 0);">Por supuesto puedes prescindir el sensor de distancia de ultrasonidos y conectarlo al sensor sigue líneas. O incluso directamente a la placa y prescindir también del sigue líneas.</span>

<p class="callout success"><span style="color: rgb(0, 0, 0);">Con mBot2 **NO hace falta conectar la batería.** Smart cámera ya se alimenta a través del cable I2C. Pero si se pone no pasa nada, internamente las masas están conectadas.</span></p>

## <span style="color: rgb(22, 145, 121);">**Software**</span>

##### <span style="color: rgb(22, 145, 121);">**En mBlock**</span>

<span style="color: rgb(0, 0, 0);">Tenemos que ir a bloques e instalar la **extensión SMART CAMERA**</span>

<span style="color: rgb(22, 145, 121);">**[![smartcamera8.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera8.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera8.png)**</span>

# Smart camera - seguimiento color - sencillo

### <span style="color: rgb(22, 145, 121);">**Configuración reconocimiento de color**</span>

##### <span style="color: rgb(22, 145, 121);">**Método por software (recomendado)**</span>

Una forma de configurar la cámara en este modo, es insertar estas instrucciones al inicio del programa

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

La explicación es :

- Encenderemos el led para ser un poco independientes de la luz ambiental, esto es optativo.
- Iniciar smart cámera **en el modo de seguimiento de color**
- Luego le diremos a la cámara que aprenda el color. Para ello ponemos la pelota que queramos ENFRENTE DE LA CÁMARA, LO MOVEREMOS SUAVMENTE HASTA QUE EL LED TENGA EL MISMO COLOR QUE LA PELOTA. En ese momento pulsamos el botón LEARN.

[![smartcamera10.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera10.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera10.png)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

Se ve mejor con un vídeo

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/5Yw_t9rR5Ys" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**Método por hardware**</span>

Otro método es:

- pulsar en el botón de LEARN Y <span style="text-decoration: underline;">NO SOLTARLO</span>
- el led empieza a parpadear en diferentes clores
- el led pregunta qué color quieres que aprenda, el código es el siguiente

[![smartcamera22.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera22.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera22.jpg)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

- Ojo: *NO SIGNIFICA QUE HAY QUE PONER ESOS COLORES* es decir, si el led está en rojo, no significa que tienes que poner una pelota roja, sino que pregunta por el color 1
- Cuando está en el color que deseas (por ejemplo, queremos grabar el color número 1, entonces esperamos a que el led se ponga rojo) entonces en ese momento <span style="text-decoration: underline;">LO SOLTAMOS</span>
- Ahora igual que antes: 
    - Ponemos la pelota del color que deseamos que aprenda, y cuando coincide hacemos una pulsación corta en LEARN

### <span style="color: rgb(22, 145, 121);">**Programa en mBlock**</span>

El programa es sencillo

- Si el color se detecta arriba, avanza
- Si el color se detecta abajo, retrocede
- Si el color se detecta a la izquierda, gira a la izquierda
- Si el color se detecta a la derecha, gira a la derecha

[![smartcamera21.jpg](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera21.jpg)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera21.jpg)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

Lo añadimos en un bucle junto con el script anterior de configuración de la cámara, y se añaden unos avisadores de led para saber en qué estado está la cámara

El programa lo tienes aquí [https://planet.mblock.cc/project/3664760](https://planet.mblock.cc/project/3664760)

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

Si no quieres poner lo accesorio [https://planet.mblock.cc/project/3719420](https://planet.mblock.cc/project/3719420)

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

<p class="callout success">**Aclárate** ¿Qué potencia le doy? 50% o 90%?  
R: Pues el que quieras, cuanto menos potencia, lo sigue mejor, pero si la bola va deprisa, lo "pierde"  
Si la das más potencia, no lo sigue tan bién, hay a veces "oscilaciones" que no se estabilizan. Ver este vídeo</p>

<p class="callout success"><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/ntxRP3fOz3M" title="18 March 2024" width="445"></iframe>

</p>

# 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)

# Smart camera Piximon

##### <span style="color: rgb(22, 145, 121);">**INSTALACIÓN DE PYXMON V2**</span>

<span style="color: rgb(0, 0, 0);">No es un software obligatorio, pero viene muy bien qué está pasando y qué esta viendo la cámara. Además nos permite opciones avanzadas y configurar con más detalle sus posibilidades.</span>

<span style="color: rgb(0, 0, 0);">El software está en la página de [https://pixycam.com/](https://pixycam.com/)</span>

<span style="color: rgb(0, 0, 0);">[![smartcamera9.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera9.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera9.png)</span>

<p class="callout danger"><span style="color: rgb(0, 0, 0);">**ATENCIÓN** NO CONECTAR LA CAMARA CON EL CABLE USB ANTES DE LA INSTALACIÓN DE PIXIMON</span></p>

<span style="color: rgb(0, 0, 0);">Pues Windows instalará unos drivers erróneos o dejará marcado como desconocido la cámara. Instalaremos PixyMon v2 y **después** conectaremos el cable USB del ordenador a l a cámara.</span>

<span style="color: rgb(0, 0, 0);">En el caso de que hayamos metido la pata, ir a Windows-Administrador de dispositivos, quitar a cámara, instalar PixyMon y conectar la cámara.</span>

##### <span style="color: rgb(22, 145, 121);">**PARA QUE NOS SIRVE PIXIMON: PARA SABER QUÉ OCURRE EN LA DETECCIÓN DE COLOR**</span>

<span style="color: rgb(0, 0, 0);">Si algo falla, podemos conectar la Smart Camera al ordenador y Piximon nos enseña qué ve y cómo lo hace, por ejemplo el siguiente vídeo se ve que está en modo de detección de color, y vemos que ha detectado el verde</span>

<p class="callout info"><span style="color: rgb(0, 0, 0);">Conecta el cable USB a la cámara</span></p>

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="567" src="https://www.youtube.com/embed/PWXYGdNGolA" title="smartcam piximon" width="319"></iframe>

Más información

- En inglés [https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:pixymon\_index](https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:pixymon_index)
- En español [https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf](https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf)

##### <span style="color: rgb(22, 145, 121);">**PARA QUE NOS SIRVE PIXIMON: CONFIGURAR EL SIGUE-LINEAS**</span>

<span style="color: rgb(0, 0, 0);">Podemos entrar en configuración y determinar el grosor de la línea, brillo, contraste...</span>

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

Para más información de la configuración del sigue líneas

- En inglés [https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:line\_pixymon](https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:line_pixymon)
- En español [https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf](https://juegosrobotica.es/descargas/Tutorial-Smart-Camera-de-Makeblock.pdf)

# Smart Camera Código de barras

En el modo de detección de código de barras, puede detectar 15 códigos de barras ya definidas.

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

Las puedes descargar aquí [https://drive.google.com/file/d/1K28cD6o5csGg1\_h7cnmsZ5Box02NTdUC/view?usp=sharing](https://drive.google.com/file/d/1K28cD6o5csGg1_h7cnmsZ5Box02NTdUC/view?usp=sharing)

[![smarcamera50.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smarcamera50.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smarcamera50.png)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

Y las tiene que detectar en la posición correcta, excepto la 15 que es simétrica, el resto no son invariantes bajo rotación

[![smartcamera51.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/smartcamera51.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/smartcamera51.png)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

En mBlock las detecta desde el número 1 al 15. Pero observa que del 1 al 9 tiene ya unos nombres predefinidos

<p class="callout warning">**Esto no quiere decir que estés obligado a ejecutar la acción acorde al nombre de la etiqueta**, puedes elegir perfectamente que si detecta la etiqueta 5(parar) que haga girar</p>

<p class="callout info">Si quieres cambiar de nombres, dentro del software Piximon puedes renombrar estas etiquetas en Configure-Barcode labels</p>

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

Un programa ejemplo sería

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

*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

También puede detectar dada una posición, por ejemplo este programa

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

*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

##### <span style="color: rgb(22, 145, 121);">**Proyectos con Cyberpi**</span>

<span style="text-decoration: underline;"><span style="color: rgb(0, 0, 0); text-decoration: underline;">Caja registradora</span></span>

<span style="color: rgb(0, 0, 0);">El programa lo tenemos en [este tutorial ](https://aprender.tdrobotica.co/courses/smart-camera/lecci%c3%b3n/proyecto-1-5/)(hay que registrarse para verlo) </span>

<span style="color: rgb(0, 0, 0);"><iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/lNP9A2G3abo?t=51s" width="560"></iframe>

</span>

<span style="color: rgb(0, 0, 0);">Color traductor.[ Aquí el tutorial](https://aprender.tdrobotica.co/courses/smart-camera/lecci%c3%b3n/proyecto-2-4/) (hay que registrarse)</span>

<span style="color: rgb(0, 0, 0);"><iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/0CcMS0qkBJY" width="560"></iframe>

</span>

# SmartCamera - sigue líneas

mBot ya tiene un sigue-lineas [https://libros.catedu.es/books/robotica-educativa-con-mbot/page/siguelineas](https://libros.catedu.es/books/robotica-educativa-con-mbot/page/siguelineas) pero no trabaja la inteligencia artificial. Es un sensor que nos detecta el brillo del suelo y sobre esa respuesta programamos la potencia de los motores para que sigan la línea.

Pero en este caso será la cámara la que detectará la línea y tomará la decisión de qué rumbo tomar, para ello montaremos la cámara con una visión horizontal utilizando la pieza de ángulo recto:

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

Y conectaremos la batería con la SmartCam y el puerto I2C con el Puerto 4 por ejemplo.

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

En este modo, la SmartCam reconoce las líneas que ve, y con el programa Piximon las marca con diferentes colores y decide de forma óptima el camino a seguir. El color rojo marca la decisión

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

Si el fondo,, contraste o grosor de las líneas no es el adecuado, con el programa PixiMon podemos cambiar la configuración para que lo detecte correctamente:

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

Si cargamos el programa siguiente[ https://planet.mblock.cc/project/3715899](https://planet.mblock.cc/project/3715899)

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

El resultado es :

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/DYFDHD9mQhc" width="560"></iframe>

Explicado paso a paso

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/nAg6oHnR6aI" width="560"></iframe>

##### <span style="color: rgb(22, 145, 121);">**La decisión en una intersección con programación**</span>

Si queremos que no decida automáticamente, sino que por ejemplo el ángulo del cruce es menor de 45 que gire a la derecha, el código sería

[https://planet.mblock.cc/project/3716895](https://planet.mblock.cc/project/3716895)

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

También podríamos hacer la decisión en función si el cruce está más a la derecha o más a la izquierda, recuerda que las coordenadas x van desde el extremo izquierdo 0 al extremo derecho 320. Una opción sería :

[![siguelineas68.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/siguelineas68.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/siguelineas68.png)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

##### **<span style="color: rgb(22, 145, 121);">La decisión de una intersección por código de barras</span>**

El modo sigue-lineas **es también** modo de etiquetas :

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

Esto nos permite que podemos utilizar las etiquetas para las decisiones de las intersecciones

[![image.png](https://libros.catedu.es/uploads/images/gallery/2024-03/scaled-1680-/3pXimage.png)](https://libros.catedu.es/uploads/images/gallery/2024-03/3pXimage.png)  
*Extraído del Tutorial Smart Camera de Makeblock”, creada por Susana Oubiña Falcón,  
Licencia CC-BY-NC [https://juegosrobotica.es/smart-camera-makeblock/](https://juegosrobotica.es/smart-camera-makeblock/)*

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="315" src="https://www.youtube.com/embed/rumXx31SgkI?si=ZD0YjocYGx1pD3Ef&start=684" title="YouTube video player" width="560"></iframe>

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

Extraído de [https://arduiblog.com/2022/05/01/smart-camera-de-makeblock/](https://arduiblog.com/2022/05/01/smart-camera-de-makeblock/) autor JCQuetin, licencia BY-NC-SA 3.0