# Pico Bricks

Pico Bricks es una placa con sensores y actuares básicos integrados para hacer proyectos maker

# Introducción

# Objetivos y contenidos

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

- Conocer las posibilidades didácticas del kit Picobricks Pico
- Ser capaz de realizar proyectos dando opción a programar en bloques o en código, dependiendo de la etapa educativa que imparte el docente.
- Sentar las bases para realizar proyectos STEAM con este kit

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

<p class="callout warning"><span style="color: rgb(22, 145, 121);">**<span style="color: rgb(0, 0, 0);">SOLO SE EXIGIRÁ EL DOMINIO DE UN LENGUAJE DE LOS CUATRO MOSTRADOS</span>** </span></p>

<span style="color: rgb(22, 145, 121);">**DOS LENGUAJES DE BLOQUES GRÁFICO (PicoBlocky y Microblocks) Y DOS LENGUAJES DE CÓDIGO (Python y Arduino IDE)**</span>

- **Introducción**
    - ¿Qué es Pico Bricks?
    - Proyectos a realizar 
        - PROYECTO BLINK
        - PROYECTO ACTION-REACTION
        - PROYECTO Autonomous Lighting
        - PROYECTO Thermometer
        - PROYECTO Graphic Monitor
        - PROYECTO Dominate the Rhythm
        - PROYECTO Show Your Reaction
        - PROYECTO My Timer
        - PROYECTO Alarm Clock
        - PROYECTO Know Your Color
- **PicoBlocky**
    - Interface
    - Conexión
    - Dos formas de ejecutar los programas
    - Proyectos
    - Algo diferente PROYECTO IR
- **Microblocks**
    - Instalación
    - Proyectos
    - Aldo diferente Data Graph
- **Micropython con Thonny**
    - Instalación
    - Algo diferente: Apagar y encender por Wifi
- **Arduino IDE**
    - Conexión con Arduino IDE
    - Proyectos
    - Proyectos con Wifi

# ¿Qué es Pico Bricks?

Pico Bricks pertenece a las placas electrónicas con sensores y actuadores básicos integrados, pero también preparado para poner externos y así poder hacer proyectos maker.

<span style="color: rgb(22, 145, 121);">**[![2024-12-26 09_23_28-Pico Bricks IDE book - PDF-XChange Viewer.png](https://maker.robotistan.com/wp-content/uploads/2023/01/picobricks-2.gif)](https://maker.robotistan.com/wp-content/uploads/2023/01/picobricks-2.gif)**</span>

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

<span style="color: rgb(22, 145, 121);">[![2024-12-29 08_23_06-Picobricks Raspberry Pi Pico W Starter Kit.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-29-08-23-06-picobricks-raspberry-pi-pico-w-starter-kit.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-29-08-23-06-picobricks-raspberry-pi-pico-w-starter-kit.png)</span>

- <span style="color: rgb(0, 0, 0);">**Placa microcontroladora**: Raspberry pi Pico W.</span>
- <span style="color: rgb(0, 0, 0);">Sensores o **entradas**</span>
    - <span style="color: rgb(0, 0, 0);">Botón</span>
    - <span style="color: rgb(0, 0, 0);">Sensor Temperatura y Humedad</span>
    - <span style="color: rgb(0, 0, 0);">Potenciómetro</span>
    - <span style="color: rgb(0, 0, 0);">Sensor IR con mando</span>
    - <span style="color: rgb(0, 0, 0);">LDR</span>
- <span style="color: rgb(0, 0, 0);">Actuadores o **salidas**</span>
    - <span style="color: rgb(0, 0, 0);">OLED Screen</span>
    - <span style="color: rgb(0, 0, 0);">Led rojo</span>
    - <span style="color: rgb(0, 0, 0);">RGB Led</span>
    - <span style="color: rgb(0, 0, 0);">Relé</span>
    - <span style="color: rgb(0, 0, 0);">Driver motor</span>
    - <span style="color: rgb(0, 0, 0);">Buzzer</span>

##### <span style="color: rgb(0, 0, 0);"><span style="color: rgb(22, 145, 121);">**¿Qué es la Raspberry Pi Pico W?**</span></span>

<span style="color: rgb(0, 0, 0);">Es una placa controladora con las siguientes características: ( *adaptado de [Bricogeek](https://lab.bricogeek.com/tutorial/como-programar-raspberry-pi-pico-con-arduino/configurar-ide-de-arduino-para-raspberry-pi-pico) Licencia CC-BY )*</span>

- <span style="color: rgb(0, 0, 0);">**Chip RP2040:** Un microcontrolador con un procesador ARM Cortex-M0 de doble núcleo funcionando a 133 MHz. Este es el corazón de la placa y le da su potencia.</span>
- <span style="color: rgb(0, 0, 0);">**Memoria**: 264 KB de RAM SRAM y 2 MB de memoria Flash. Aunque no es tanto como un Raspberry Pi tradicional, es más que suficiente para la mayoría de los proyectos de microcontroladores.</span>
- <span style="color: rgb(0, 0, 0);">**Conectividad**: 2.4GHz Wifi 802.11n</span>
- <span style="color: rgb(0, 0, 0);">**Pines**: 26 pines GPIO (General Purpose Input Output), de los cuales muchos son multifunción, incluyendo UART, SPI, I2C, PWM, y pines analógicos (ADC).</span>
- <span style="color: rgb(0, 0, 0);">**Alimentación**: Puede funcionar con una fuente de alimentación de entre 1.8V y 5.5V, lo que la hace versátil para distintas fuentes de energía, como baterías o conexiones USB.</span>
- <span style="color: rgb(0, 0, 0);">**Interfaz de programación:** Puedes programarla usando C/C , MicroPython, o el Arduino IDE, lo que la hace- extremadamente accesible para la comunidad de makers.</span>*<span style="color: rgb(0, 0, 0);"> </span>*

**P: ¿Qué diferencia tiene con respecto a otros microcontroladores?** R: Con respecto al de las placas Arduino UNO y similares (Atmegaxxx...) es más potente, permite la programación MicroPython, y sobre todo **tiene wifi incorporado  
P: ¿Igual que el ESP32?** R: No, el ESP32 tiene el Bluetooh y el Raspberry Pi Pico W **NO.   
P: Entonces... ¿Cuál es mejor?¿el ESP32 o Raspberry Pi Pico W?** R: Pues si tus proyectos no necesitan Bluetooth, ni sensores de tacto que tiene el ESP32, el Raspberry Pi Pico W es muy buena opción pues sólo cuesta 8€, además Raspberry tiene PIO (Programable Input/Output) que permite visualizar en pantallas VGA [+info](https://dronebotworkshop.com/picow-arduino/)

<p class="callout warning">**Importante**: Tienes que localizar el botón **BOOTSEL** que lo hablaremos en este curso[![2024-12-26 09_39_18-Raspberry Pi Pico W Datasheet_ An RP2040-based microcontroller board with wirele.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-09-39-18-raspberry-pi-pico-w-datasheet-an-rp2040-based-microcontroller-board-with-wirele.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-09-39-18-raspberry-pi-pico-w-datasheet-an-rp2040-based-microcontroller-board-with-wirele.png)  
Fuente Datasheet Pico W [https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pdf](https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pdf)</p>

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

<span style="color: rgb(0, 0, 0);">Intentamos que los proyectos que se muestran no necesites componentes externos, con los que hay en Picobricks sobra. Pero enseñamos algún proyecto que con un componente externo barato y fácilmente conseguible, que nos parece interesante. Para conectar estos componentes, es necesario que sepas los pines GP, la alimentación y la masa dónde están :</span>

<span style="color: rgb(22, 145, 121);">**[![2025-01-10 12_31_41-Pico-series Microcontrollers - Raspberry Pi Documentation.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-10-12-31-41-pico-series-microcontrollers-raspberry-pi-documentation.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-10-12-31-41-pico-series-microcontrollers-raspberry-pi-documentation.png)**</span>

<span style="color: rgb(0, 0, 0);">Fuente CC-BY [https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html)</span>

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

Puede programarse con multitud de plataformas de código o de bloques gráficos

[![2024-12-26 09_48_05-Picobricks Raspberry Pi Pico W Starter Kit.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-09-48-05-picobricks-raspberry-pi-pico-w-starter-kit.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-09-48-05-picobricks-raspberry-pi-pico-w-starter-kit.png)  
Fuente [https://picobricks.com/products/raspberry-pi-pico-w-kit](https://picobricks.com/products/raspberry-pi-pico-w-kit)

##### <span style="color: rgb(22, 145, 121);">**¿Qué software se va a utilizar en este curso?**</span>

Vamos a ver cuatro programas pertenecientes a dos formas de programar :

- <span style="text-decoration: underline; color: rgb(186, 55, 42);">**PROGRAMACIÓN POR BLOQUES** </span>adecuado para primaria y primeros cursos de secundaria 
    - **PICOBLOCKLY** perteneciente a los 4 programas de Pico Bricks IDE
    - **MICROBLOCKS** de software libre, multi tarjeta y popularmente extendido
- <span style="text-decoration: underline;"><span style="color: rgb(186, 55, 42); text-decoration: underline;">**PROGRAMACIÓN POR CÓDIGO**</span> </span>adecuado para secundaria 
    - **THONNY IDE** con el lenguaje micropython
    - **ARDUINO IDE** con el lenguaje de código Arduino (C++)

##### <span style="color: rgb(22, 145, 121);">**¿Cuál es el recomendable?**</span>

Para programación con bloques: **PICOBLOCKLY** de **Pico Bricks IDE** que es un software propio y tiene unos tutoriales muy cómodos (en inglés), aunque si ya trabajas con **Microblocks**, sigue con él, pues es muy potente

[![2024-12-26 09_54_28-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-09-54-28-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-09-54-28-picobricks-blocks.png)

si quieres trabajar con código, el que quieras:

- Si estas acostumbrado al Python, **MicroPython con Thonny,**
- Si ya trabajas con **ArduinoIde** puedes seguir trabajando con PicoBricks

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

<span style="color: rgb(22, 145, 121);">**[![2024-12-26 09_23_28-Pico Bricks IDE book - PDF-XChange Viewer.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-09-23-28-pico-bricks-ide-book-pdf-xchange-viewer.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-09-23-28-pico-bricks-ide-book-pdf-xchange-viewer.png)** <span style="color: rgb(0, 0, 0);">*Fuente Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)* ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)</span></span>

<span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">Picobricks se venden en muchas tiendas y con muchas opciones y accesorios. Tienes que tener en cuenta que :</span></span>

- **<span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">👌 Lo más barato es ...</span></span>**
    - <span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">Pack básico imprescindible: </span></span>
        - [<span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">Ultra-lab 57</span></span>](https://ultra-lab.net/producto/kit-picobricks-kit-de-base/)€
        - [Kubii 50€](https://www.kubii.com/es/microcontroladores/3937-1717-kit-picobricks-raspberry-pi-3272496314214.html#/version_picobricks-kit_basico)
        - <span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">comprar **solo la placa** unos [35€](https://picobricks.com/products/raspberry-pi-pico-w-kit)</span></span>
        - <span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">Curiosamente en la web sale la foto sin el microcontrolador Raspberry Pi Pico W. En Catedu lo hemos comprado y han venido con el microcontrolador correctamente. 😕 </span></span>
        - <span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">No obstante comprar sólo el microcontrolador **Raspbery Pico W** aparte cuesta unos <span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);"><span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">[8.60€](https://www.raspipc.es/2051)</span></span></span></span> si buscas en otros sitios, lo puedes encontrar más barato pero ojo **que este soldado** los pines para poderlos insertar en el socket de la placa Picobrkicks</span></span>
        - <span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">OJO No viene con cable. Vale un cable de datos de USB de móvil micro USB, [unos 2€ el cable](https://www.amazon.es/gp/product/B00WMAQKS2/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&th=1)</span></span>
        - <span style="color: rgb(0, 0, 0);">Si le añades un sensor distancia HC-SR04 </span>[2€](https://www.turibot.es/medidor-de-distancias-por-ultrasonidos-hc-sr04-para-arduino)<span style="color: rgb(0, 0, 0);"> y un servo </span>[2.20€](https://www.turibot.es/mini-servo-para-rc)<span style="color: rgb(0, 0, 0);"> y </span>mando IR, unos [2€](https://www.turibot.es/modulo-infrarrojos-con-mando-para-arduino) y<span style="color: rgb(0, 0, 0);">a tienes un kit completísimo 😍</span><span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);"> </span></span>
            - <span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">Y si le añades el kit de coche pues permite la conexión de dos motores [11€](https://www.turibot.es/kit-coche-3wd-chasis-sin-electronica) ya es el novamás ❤️❤️❤️❤️</span></span>
- **<span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">😒Lo más cómodo es ....</span></span>**
    - <span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">Comprar kits ya hechos ver [https://picobricks.com/collections](https://picobricks.com/collections)</span></span>

<span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">En el caso de que te venga sin el microcontrolador Rasperry Pi Pico W, es muy fácil conectarlo :</span></span>

<span style="color: rgb(22, 145, 121);"><span style="color: rgb(0, 0, 0);">[![2025-01-24 11_56_45-EchidnaML.png](https://wiki.microblocks.fun/extension_libraries/picobricks/picobricks_cpuusb_original.gif)](https://wiki.microblocks.fun/extension_libraries/picobricks/picobricks_cpuusb_original.gif)  
Fuentte[ Microblocks Wiki](https://wiki.microblocks.fun/en/picobricks/rpboard)</span></span>

# Proyectos

Vamos a ver los siguientes proyectos y vamos a ver que se pueden desarrollar de cuatro formas diferentes:

{{@12666#bkmrk-programaci%C3%93n-por-blo}}

Los proyectos son

- PROYECTO **BLINK**
    - [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Blink](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Blink)
- PROYECTO **ACTION-REACTION**  
    
    - [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Action-Reaction](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Action-Reaction)
- PROYECTO **Autonomous Lighting**
    - [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Autonomous%20Lighting](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Autonomous%20Lighting)
- PROYECTO **Thermometer**  
    
    - [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Thermometer](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Thermometer)
- PROYECTO **Graphic Monitor**  
    
    - [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Graphic%20Monitor](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Graphic%20Monitor)
- PROYECTO **Dominate the Rhythm**  
    
    - [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Dominate%20the%20Rhythm](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Dominate%20the%20Rhythm)
- PROYECTO **Show Your Reaction**  
    
    - [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Show%20Your%20Reaction](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Show%20Your%20Reaction)
- PROYECTO **My Timer**  
    
    - [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/My%20Timer](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/My%20Timer)
- PROYECTO **Alarm Clock**  
    
    - [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Alarm%20Clock](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Alarm%20Clock)
- PROYECTO **Know Your Color**
    - [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Know%20Your%20Color](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Know%20Your%20Color)
- PROYECTO **Buzz Wire Game**
    - [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Buzz%20Wire%20Game](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Buzz%20Wire%20Game)

Además de algún proyecto que creemos que completa la formación en este robot.

Hay más proyectos en [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities) pero implican usar actuadores y sensores externos pero interesantes y fáciles de conseguir y baratos, por ejemplo un servo, un sensor de distancia ultrasónico, etc..

<p class="callout info">*Mentirijilla*: el proyecto[ Buzz Wire Game](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Buzz%20Wire%20Game "Heading Link") haría falta unos simples cables</p>

El mismo repositorio facilita los proyectos ordenándolos de **más fácil a más dificil dificultad,** marcamos los que vamos a dar en este curso

1. <span style="background-color: rgb(241, 196, 15);">[- Blink](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Blink "Heading Link")</span>[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--blink)
2. <span style="background-color: rgb(241, 196, 15);">[- Action-Reaction](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Action-Reaction "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--action-reaction)</span>
3. <span style="background-color: rgb(241, 196, 15);">[- Autonomous Lighting](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Autonomous%20Lighting "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--autonomous-lighting)</span>
4. <span style="background-color: rgb(241, 196, 15);">[- Thermometer](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Thermometer "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--thermometer)</span>
5. <span style="background-color: rgb(241, 196, 15);">[- Graphic Monitor](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Graphic%20Monitor "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--graphic-monitor)</span>
6. <span style="background-color: rgb(241, 196, 15);">[- Dominate the Rhythm](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Dominate%20the%20Rhythm "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--dominate-the-rhythm)</span>
7. <span style="background-color: rgb(241, 196, 15);">[- Show Your Reaction](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Show%20Your%20Reaction "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--show-your-reaction)</span>
8. <span style="background-color: rgb(241, 196, 15);">[- My Timer](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/My%20Timer "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--my-timer)</span>
9. <span style="background-color: rgb(241, 196, 15);">[- Alarm Clock](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Alarm%20Clock "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--alarm-clock)</span>
10. <span style="background-color: rgb(241, 196, 15);">[- Know Your Color](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Know%20Your%20Color "Heading Link")</span>[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--know-your-color)
11. [- Magic Lamp](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Magic%20Lamp "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--magic-lamp)
12. [- Smart Cooler](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Smart%20Cooler "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--smart-cooler)
13. [<span style="background-color: rgb(241, 196, 15);">- Buzz Wire Game</span>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Buzz%20Wire%20Game "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--buzz-wire-game)
14. [- Dinosaur Game](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Dinosaur%20Game "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--dinosaur-game)
15. [- Night and Day](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Night%20and%20Day "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--night-and-day)
16. [- Voice Controlled Robot Car](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Voice%20Controlled%20Robot%20Car "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--voice-controlled-robot-car)
17. [- Two Axis Robot Arm](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Two%20Axis%20Robot%20Arm "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--two-axis-robot-arm)
18. [- Smart House](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Smart%20House "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--smart-house)
19. [- Piggy Bank](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Piggy%20Bank "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--piggy-bank)
20. [- RFID Smart Door](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/RFID%20Smart%20Door "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--rfid-smart-door)
21. [- Automatic Trash Bin](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Automatic%20Trash%20Bin "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--automatic-trash-bin)
22. [- Digital Ruler](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Digital%20Ruler "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--digital-ruler)
23. [-Air Piano](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Air%20Piano "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--air-piano)
24. [- Maze Solver Robot](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Maze%20Solver%20Robot "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--maze-solver-robot)
25. [- Smart Greenhouse](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Smart%20Greenhouse "Heading Link")

# Libros

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

Un libro completo (en inglés) que lo puedes conseguir aquí [https://picobricks.com/pages/projectbook](https://picobricks.com/pages/projectbook) que pena que no tiene licencia CC

<iframe allow="autoplay" height="480" src="https://drive.google.com/file/d/1PDql_GYyxcz68JqmQAGOLs0YE6SXgPCm/preview" width="640"></iframe>

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

Este libro esta especializado en realizar proyectos con el software PICOBRICKS IDE lo puedes conseguir aquí [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook) y sí que tiene licencia CC

<iframe allow="autoplay" height="480" src="https://drive.google.com/file/d/1plad6bjn87FcgHb3cpd1vI-B_A25rnfF/preview" width="640"></iframe>

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

Con 20 actividades STEM, [https://picobricks.com/pages/education](https://picobricks.com/pages/education)

No es descargable, pero puedes solicitarlo gratis en contacto [https://picobricks.com/pages/contact-information-picobricks](https://picobricks.com/pages/contact-information-picobricks)

# Pensamiento computacional

¿Dónde encaja Picobricks dentro de la oferta de equipos robóticos para la educación? Cómo puedes ver entra tanto en primaria como secundaria gracias a sus dos modos de programación:

- Programación en bloques (Primaria)
- Programación en código (Secundaria)

Unido al bajo precio y a las prestaciones que tiene con actuadores y sensores, es un buen producto con buena relación calidad/precio

{{@4518}}

# Lenguaje de programación

El Picobricks se puede programar

- Por bloques
- Por código

{{@13859}}

# PicoBlockly

# Cuatro programas a elegir

Si entramos en[ http://rbt.ist/ide ](http://rbt.ist/ide)podemos ver cuatro opciones

[![2024-12-26 11_38_17-BricksIDE_ Best Python IDE for Raspberry Pi – Picobricks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-11-38-17-brickside-best-python-ide-for-raspberry-pi-picobricks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-11-38-17-brickside-best-python-ide-for-raspberry-pi-picobricks.png)

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

Pensado para programar Picobriks con bloques para etapas de 8 a 10 años con un **mínimo de instrucciones**

[![2024-12-26 11_40_37-Pico Bricks IDE book - PDF-XChange Viewer.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-11-40-37-pico-bricks-ide-book-pdf-xchange-viewer.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-11-40-37-pico-bricks-ide-book-pdf-xchange-viewer.png)

*Fuente Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook) ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)*

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

Es la opción más recomendada para la mayoría de las etapas

[![2024-12-26 11_43_20-Pico Bricks IDE book - PDF-XChange Viewer.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-11-43-20-pico-bricks-ide-book-pdf-xchange-viewer.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-11-43-20-pico-bricks-ide-book-pdf-xchange-viewer.png)

*Fuente Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook) ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)*

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

<span style="color: rgb(0, 0, 0);">Para poder editar en Python, no lo intentes por aquí, no va. Para trabajar con Python se trabaja con Thommy que lo trataremos en este curso.</span>

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

<span style="color: rgb(0, 0, 0);">Es un [simulador online](https://ide.picobricks.com/verticalsimulator.html?_ga=2.232196503.946201499.1699876362-666138695.1699876362) que permite realizar proyectos sin tener físicamente la Pico bricks</span>

<span style="color: rgb(0, 0, 0);">[![2024-12-26 09_51_08-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-09-51-08-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-09-51-08-picobricks-blocks.png)</span>

<p class="callout warning">Ojo el simulador no permite gestión de ficheros, es decir, no puedes ni grabar proyectos ni abrirlos, cuando cierras el navegador se pierde todo</p>

# Interface

Cuando abrimos Picoblockly tenemos la siguiente ventana:

[![2024-12-26 11_49_53-Pico Bricks IDE book - PDF-XChange Viewer.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-11-49-53-pico-bricks-ide-book-pdf-xchange-viewer.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-11-49-53-pico-bricks-ide-book-pdf-xchange-viewer.png)

*Fuente Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook) ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)*

1. Donde encontramos las diferentes instrucciones ordenadas por categorías
2. La paleta de instrucciones preparados para elegir y arrastrar a 7
3. Herramienta de zoom, borrar
4. Menú de fichero para grabar los proyectos o abrirlos (todo localmente)
5. Panel operaciones 
    1. Botón de conectar, por cable (recomendado) o bluetooh
    2. Botón de proyectos ya preinstalados
    3. Vista de código Python (también en 6 hay una pestaña para pasar a esta vista)
6. Menú de configuración para descargar los firmwares necesarios para la conexión
7. Área donde programamos
8. Start stop tu programa
9. Área del puerto serie donde podemos ver los valores que desemos

# Conexión

Lo primero que tenemos que hacer es poner el firmware para podernos conectar con Picobriks

<p class="callout info">{{@7552#bkmrk-p%3A-%C2%BFqu%C3%A9-es-eso-de-%22f}}</p>

Entramos en el menú y descargamos el firmware

[![2024-12-26 11_57_38-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-11-57-38-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-11-57-38-picobricks-blocks.png)

<p class="callout warning">**ATENCIÓN, poner PicoBricks en modo Bootloader** 1.-Desconectamos PicoBricks de nuestro ordenador  
2.- Apretamos el botón BOOTSEL **mientras** lo volvemos a conectar al puerto USB  
[![2024-12-27 08_35_34-¿Qué es Pico Bricks_ _ Librería CATEDU.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-27-08-35-34-que-es-pico-bricks-libreria-catedu.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-27-08-35-34-que-es-pico-bricks-libreria-catedu.png)  
3.- Automáticamente aparecerá una nueva unidad de disco en nuestro ordenador (ya puedes soltar BOOTSEL)</p>

[![2024-12-26 12_08_52-Este equipo - Explorador de archivos.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-12-08-52-este-equipo-explorador-de-archivos.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-12-08-52-este-equipo-explorador-de-archivos.png)

Descargamos el correspondiente al **<span style="background-color: rgb(241, 196, 15);">PicoW </span>Y LO GRABAMOS EN LA UNIDAD NUEVA** en mi caso RPI-RP2 (D:)

[![2024-12-26 12_05_49-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-12-05-49-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-12-05-49-picobricks-blocks.png)

[![2024-12-26 12_10_42-Pico Bricks IDE book - PDF-XChange Viewer.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-12-10-42-pico-bricks-ide-book-pdf-xchange-viewer.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-12-10-42-pico-bricks-ide-book-pdf-xchange-viewer.png)  
*Fuente Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)* ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)

Una vez grabado el firmware, esperamos a que nos salga un mensaje: *<span style="background-color: rgb(206, 212, 217);">Please conect to the board</span>*

Entonces dar a conectar y seleccionar la placa

[![2024-12-26 12_12_37-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-12-12-37-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-12-12-37-picobricks-blocks.png)

Una vez conectado, descargamos las librerías en el PicoBricks para poder usar todas las funciones

[![2024-12-26 12_19_07-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-12-19-07-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-12-19-07-picobricks-blocks.png)

<p class="callout warning">YA ESTA, esto lo tienes que hacer **SOLO UNA VEZ** mientras uses PicoBlockly, si te pasas a otro programa y te cargas su firmware, tendrás que volverlo a poner.</p>

# Dos formas de ejecutar los programas

Picrobriks permite dos formas de trabajar:

{{@7552#bkmrk-}}

La forma más fácil de trabajar es **EN VIVO** es decir, que los programas se ejecuten **desde nuestro ordenador** es la más rápida y para ello necesita que el PicoBricks tenga el Firmware correspondiente dentro (tal y como hemos visto)

La otra forma de trabajar es **EN CARGA** es decir que los programas se ejecutan **desde dentro de PicoBricks** tiene la ventaja que el programa funciona si necesidad de ordenador. Eso sí, hay que alimentar Picobriks por el cable USB (usando un Powerbank o un cargador de móvil por ejemplo)

<p class="callout warning">**ATENCIÓN** si trabajamos EN CARGA nos "cargamos" el Firmware, por lo que si queremos volver a trabajar EN VIVO tenemos que volverlo a poner tal y como hemos visto</p>

<p class="callout success">Recomendamos EN VIVO por la rapidez y sencillez. Sólo es aconsejable EN CARGA cuando sean proyectos que precisen que el ordenador no esté. Por ejemplo en el [PICO COCHE https://libros.catedu.es/books/pico-bricks/page/pico-coche](https://libros.catedu.es/books/pico-bricks/page/pico-coche)</p>

- Para trabajar **EN VIVO** tenemos que estar **conectados** (1) y darle al **Run** (2) (recuadros amarillos)
- Para trabajar **EN CARGA** entramos en archivo y cargamos el programa dentro de Picobricks (recuadro verde) **Upload Python File to Board**

[![2024-12-26 13_34_03-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-13-34-03-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-13-34-03-picobricks-blocks.png)

# PROYECTO BLINK

<p class="callout info">Extraido de *Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)* ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)</p>

Vamos a realizar nuestro primer proyecto, parpadear el led rojo

Como es un programa predeterminado, lo más cómodo es ir los tutoriales que lo explican bien

[![2024-12-26 12_34_33-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-12-34-33-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-12-34-33-picobricks-blocks.png)

Vamos al código y si apretamos en este botón, nos aparece en nuestro panel **si necesidad de hacerlo** pero ojo que a veces está escondido tras la ventana, usar el zoom y navegar

[![2024-12-26 12_38_26-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-12-38-26-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-12-38-26-picobricks-blocks.png)

al dar a **RUN** tenemos  
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="599" src="https://www.youtube.com/embed/nYPWAC_SHWA" title="blink picobricks con picoblockly" width="337"></iframe>

# PROYECTO ACTION-REACTION

<p class="callout info">Extraido de *Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)* ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)</p>

Ahora será con la interacción del botón. Repetimos los pasos pero con este proyecto:

[![2024-12-26 13_01_28-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-13-01-28-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-13-01-28-picobricks-blocks.png)

Resultado

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="599" src="https://www.youtube.com/embed/6cZ-Hk3dnJ8" title="action reaction picobricks" width="337"></iframe>

# PROYECTO  Autonomous Lighting

<p class="callout info">Extraido de *Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)* ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)</p>

Lo mismo con el siguiente proyecto

[![2024-12-26 13_08_55-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-13-08-55-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-13-08-55-picobricks-blocks.png)  
Resultado  
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="599" src="https://www.youtube.com/embed/sN8Y3boBPAg" title="PROYECTO  Autonomous Lighting" width="337"></iframe>

# PROYECTO Thermometer

<p class="callout info">Extraído de *Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)* ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)</p>

[![2024-12-26 13_14_48-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-13-14-48-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-13-14-48-picobricks-blocks.png)  
Si soplamos el aliento sobre el sensor podemos ver como sube la temperatura

[![2024-12-26 13_17_34-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-13-17-34-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-13-17-34-whatsapp.png)

<p class="callout success">Recomendamos este proyecto cargarlo en el PicoBricks y así funciona autónomo sin necesidad de PC, con lo que se puede colocar en el exterior y ver la temperatura que hace simplemente alimentandolo con un PowerBank en el cable USB</p>

<p class="callout success">P: ¿No sabes cómo se carga el programa en PicoBricks?  
R: Porque no te has leído [https://libros.catedu.es/books/pico-bricks/page/dos-formas-de-ejecutar-los-programas](https://libros.catedu.es/books/pico-bricks/page/dos-formas-de-ejecutar-los-programas)</p>

# PROYECTO  Graphic Monitor

<p class="callout info">Extraido de *Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)* ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)</p>

[![2024-12-26 13_26_32-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-13-26-32-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-13-26-32-picobricks-blocks.png)  
Resultado  
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="599" src="https://www.youtube.com/embed/NqovcB6RImA" title="PROYECTO  Graphic Monitor" width="337"></iframe>

# PROYECTO  Dominate the Rhythm

<p class="callout info">Extraído de *Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)* ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)</p>

Este proyecto ya es más complejo y recomendamos importarlo desde el tutorial como siempre pues es más largo

[![2024-12-26 13_42_09-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-13-42-09-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-13-42-09-picobricks-blocks.png)

Implica la utilización de FUNCIONES

[![2024-12-26 13_44_10-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-13-44-10-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-13-44-10-picobricks-blocks.png)

Y recomendamos leer el tutorial, esta bien explicado en el libro en la página 34;

<iframe allow="autoplay" height="480" src="https://drive.google.com/file/d/1plad6bjn87FcgHb3cpd1vI-B_A25rnfF/preview" width="640"></iframe>

Como se puede ver en el resultado, la primera vez suena la música a un ritmo número 4 pero en la segunda vez subimos con el potenciómetro al ritmo máximo 7 y la música suena más deprisa

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="599" src="https://www.youtube.com/embed/WynkqehvWuw" title="PROYECTO  Dominate the Rhythm" width="337"></iframe>

# PROYECTO Show Your Reaction

<p class="callout info">Extraido de *Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)* ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)</p>

Cuando nuestro proyecto comience a funcionar, mostraremos un mensaje de bienvenida en el OLED pantalla. A continuación imprimiremos en la pantalla lo que el usuario tiene que hacer para iniciar el juego. Para comenzar el juego, le pediremos al jugador que se prepare contando hacia atrás desde 3 en la pantalla después de presionar el botón. Después del final de la cuenta regresiva, el El LED rojo se encenderá en un tiempo aleatorio entre 2 y 10 segundos. Reiniciaremos el temporizador inmediatamente después se enciende el LED rojo. Mediremos el temporizador tan pronto como el se vuelve a pulsar el botón. Este valor que obtengamos estará en milisegundos. Mostraremos esto en la pantalla como el tiempo de reacción del jugador.

[![2024-12-26 13_56_57-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-13-56-57-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-13-56-57-picobricks-blocks.png)

Aquí he ganado pues sólo he tardado 1ms en pulsar el botón

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="599" src="https://www.youtube.com/embed/CLEUZPzl2vI" title="PROYECTO Show Your Reaction" width="337"></iframe>

# PROYECTO  My Timer

<p class="callout info">Extraído de *Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)* ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)</p>

El clásico cuenta atrás pero con la pecularidad que es fácil de programar con el potenciómetro, hasta las horas !

[![2024-12-26 14_03_55-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-14-03-55-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-14-03-55-picobricks-blocks.png)

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="599" src="https://www.youtube.com/embed/QA7Oe8KibCo" title="PROYECTO  My Timer" width="337"></iframe>

# PROYECTO Alarm Clock

<p class="callout info">Extraído de *Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)* ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)</p>

[![2024-12-26 14_10_36-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-14-10-36-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-14-10-36-picobricks-blocks.png)

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="599" src="https://www.youtube.com/embed/8Drcl_YEsFs" title="PROYECTO Alarm Clock" width="337"></iframe>

# PROYECTO Know Your Color

<p class="callout info">Extraido de *Pico Bricks IDE Book CC-BY-SA [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)* ver [créditos](https://libros.catedu.es/books/pico-bricks/page/creditos)</p>

El juego que construiremos en el proyecto se construirá en base a que el usuario conozca los colores correcta o incorrectamente. Uno de los colores rojo, verde, azul y blanco se iluminará aleatoriamente en el LED RGB de Picobricks, y el nombre de uno de estos cuatro colores se escribirá aleatoriamente en la pantalla OLED al mismo tiempo. El usuario debe pulsar el botón de Picobricks en 1,5 segundos para utilizar el derecho de réplica.

- El juego se repetirá 10 veces, cada repetición obtendrá 
    - 10 puntos si el usuario presiona el botón cuando los colores coinciden
    - -10 puntos si no coinciden

Después de diez repeticiones, la puntuación del usuario se mostrará en el OLED pantalla. Si el usuario lo desea, no podrá hacer uso de su derecho de réplica no pulsando el botón botón.

[![2024-12-26 14_17_16-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-14-17-16-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-14-17-16-picobricks-blocks.png)

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="599" src="https://www.youtube.com/embed/Tv9z8krs26g" title="PROYECTO Know Your Color" width="337"></iframe>

# PROYECTO BUZZ WIRE GAME

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

<p class="callout info">Este juego es el típico de pasar una arandela por un cable y si toca, suena la alarma</p>

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

<span style="color: rgb(0, 0, 0);">Preparamos :</span>

- <span style="color: rgb(0, 0, 0);">un cable pelado, rígido pero fino, conectado en el GP1 (segundo agujero por arriba izquierda) y GND (tercer agujero abajo derecha)</span>
- <span style="color: rgb(0, 0, 0);">un cable normal dupond</span>
- <span style="color: rgb(0, 0, 0);">un clip unido al cable normal dupond por una regleta pequeña como en la foto.</span>

<span style="color: rgb(0, 0, 0);">[![2025-01-09 21_45_02-.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-21-45-02.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-21-45-02.png)</span>

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

<span style="color: rgb(0, 0, 0);">El programa lo tienes en los tutoriales Buzz Wire Game</span>

<span style="color: rgb(0, 0, 0);">[![2025-01-09 21_54_53-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-21-54-53-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-21-54-53-picobricks-blocks.png)</span>

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

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="669" src="https://www.youtube.com/embed/CzDTe3UoNcA" title="PROYECTO BUZZ WIRE GAME PICOBRICKS" width="376"></iframe>

Este proyecto no funciona muy bien con los otros lenguajes de programación, no sé por qué

# Algo diferente PROYECTO IR

No hay en los tutoriales ningún proyecto para usar el mando IR, luego este proyecto no pertenece a ninguno de los tutoriales que predetermina PicoBricks. Proponemos el siguiente enunciado

<p class="callout info">Realizar un programa que:  
-si se aprieta un botón del mando IR que visualice por la pantalla OLED que ha recibido un código   
- visualizará por el puerto serie el código recibido  
- si la tecla es OK se encenderá el led rojo</p>

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

[![2024-12-26 21_54_56-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-21-54-56-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-21-54-56-picobricks-blocks.png)

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

Por el puerto serie van apareciendo los códigos de las teclas apretadas en el mando IR

[![2024-12-26 22_01_51-.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-22-01-51.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-22-01-51.png)

y en la pantalla OLED se visualizaba que se había recibido un código y si era OK se enciende el led rojo:

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="599" src="https://www.youtube.com/embed/6kSRjpbTSDg" title="PROYECTO IR" width="337"></iframe>

# PICO COCHE

Podemos comprar en cualquier tienda de electrónica por unos 10€ un kit de coche, por ejemplo [aquí](https://www.turibot.es/kit-coche-3wd-chasis-sin-electronica)

[![2025-01-09 12_45_59-Amazon.es_ DollaTek Smart Motor Robot Car Battery Box Kit de Chasis Speed ​​Enco.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-12-45-59-amazon-es-dollatek-smart-motor-robot-car-battery-box-kit-de-chasis-speed-enco.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-12-45-59-amazon-es-dollatek-smart-motor-robot-car-battery-box-kit-de-chasis-speed-enco.png)

En Picobrkicks creamos un programa similar al anterior de Infrarrojos

<p class="callout warning">Precaución: No utilizar la instrucción señalada, bloquea nuestra Raspberry Pi Pico W, sospechamos que es para otra versión. Por lo tanto no puede dar marcha atrás</p>

<p class="callout info">Consejo: Grabarlo en la placa, y así es independiente</p>

[![2025-01-09 12_50_44-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-12-50-44-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-12-50-44-picobricks-blocks.png)

Una vez cargado el programa en la placa Raspberry Pi pico W,

[![2025-01-09 20_06_35-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-20-06-35-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-20-06-35-picobricks-blocks.png)

 lo montamos en el coche:

1. Ponemos alguna sujeción, en este caso he puesto una pinza, pero puede ser una goma elástica.
2. Conectamos los cables de los motores en los terminales verdes 
    1. Si por alguna razón va al revés algún motor, intercambiar los cables
3. Conectamos alimentación 
    1. Puede ser también con el cable usb y un powerbank
4. Apretamos el botón reset
5. A jugar

[![2025-01-09 12_56_17-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-12-56-17-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-12-56-17-whatsapp.png)

<p class="callout warning">Detalle de conexión, asegúrate que los jumpers están colocados en modo DCMOTOR, es decir GP21 y GP22 tienen que estar conectados con DCMOTOR1 y DCMOTOR2</p>

[![2025-01-09 13_04_34-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-13-04-34-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-13-04-34-whatsapp.png)

😒las pilas estaban algo gastadas ...

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="849" src="https://www.youtube.com/embed/G1snag4AK9M" title="9 de enero de 2025" width="478"></iframe>

# Mapeo

{{@12749}}

# Servo

{{@12708#bkmrk-una-de-las-aplicacio}}

{{@12708#bkmrk-el-servomotor-que-po}}

{{@12708#bkmrk-por-defecto-cuando-s}}

##### <span style="color: rgb(22, 145, 121);">**{{@12708#bkmrk-servomotores}}**</span>

![](https://libros.catedu.es/uploads/images/gallery/2022-02/embedded-image-aizawsea.png)

{{@12708#bkmrk-los-servos-son-un-ti}}

{{@12708#bkmrk-el-hardware-interno-}}

{{@12708#bkmrk-hay-muchos-modelos%2C-}}

{{@12708#bkmrk-si-quieres-saber-m%C3%A1s-1}}

{{@11506#bkmrk-ejemplos-de-uso-de-s}}

{{@11506#bkmrk-curso-arduino-con-c%C3%B3}}

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

Vamos a aprovechar el concepto de **mapeo** con el siguiente enunciado

<p class="callout info">Queremos que se mueva un servo motor (ángulo de 0º a 180º) en función del potenciómetro, conectado a GP27 por lo tanto sus valores van de 0 a 65535 (que es 2 elevado a 16)</p>

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

1. Conectamos un servo en el slot correspondiente <p class="callout warning">Ojo, fíjate que tienes que conectar el pin - con el marrón. Mira la foto</p>
2. Movemos el Jumper a la posición que conecte GP21 con Servo

[![2025-01-09 13_38_03-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-13-38-03-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-13-38-03-whatsapp.png)

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

Utilizaremos la situación G de **mapeo** [https://libros.catedu.es/books/pico-bricks/page/mapeo](https://libros.catedu.es/books/pico-bricks/page/mapeo)  
por lo tanto dividiremos la posición del potenciómetro por 364

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

El programa es el siguiente:

[![2025-01-09 13_44_34-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-13-44-34-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-13-44-34-picobricks-blocks.png)

<p class="callout warning">No utilizar esta instrucción [![2025-01-09 13_45_20-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-13-45-20-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-13-45-20-picobricks-blocks.png)</p>

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

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="849" src="https://www.youtube.com/embed/zspyvn8PN4g" title="Servo controlado por potenciómetro con Picobriks" width="478"></iframe>

<p class="callout success">**Te atreves a...** manejar dos servos, por ejemplo con el mando a distancia de IR</p>

# Relé

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

<p class="callout info"><span style="color: rgb(0, 0, 0);">Buscamos un circuito que cuando haya luz, se encienda y cuando hay oscuridad se apaga.  
Es al revés de una **luz crepuscular** es decir, que cuando sea de noche se encienda y si es de día que se apague automáticamente</span></p>

<span style="color: rgb(0, 0, 0);">P: **¿Por qué lo hacemos al revés?.**  
R: Por que nos evitamos **retroalimentaciones** es decir, si hay oscuridad, se enciende pero como se enciende es de día, por lo que se apaga pero como es de noche se enciende, ... etc... y comienza a hacer clack, clack, clack, clack, clack, clack, clack, clack,...  
P **¿Pero entonces cómo se soluciona en las luces públicas?**  
R: El sensor LDR no se dirige a las luces a encender, o incluso con una pantalla que haga sombra.</span>

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

{{@11506#bkmrk-un-rel%C3%A9%C2%A0}}

<span style="color: rgb(0, 0, 0);">[![2025-01-09 18_42_34-Simple Relay with bulb - Simulador De Circuito On Línea _ DCACLab.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-18-42-34-simple-relay-with-bulb-simulador-de-circuito-on-linea-dcaclab.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-18-42-34-simple-relay-with-bulb-simulador-de-circuito-on-linea-dcaclab.png)</span>

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

<p class="callout danger"><span style="color: rgb(0, 0, 0);">**ATENCIÓN**,  
-NO RECOMENDABLE PARA PRIMARIA.   
-NO DEJAR A LOS ALUMNOS SOLOS CON ESTE CIRCUITO.   
-SE UTILIZAN TENSIONES DE 220V  
-EL CONECTOR VERDE DEL RELÉ ES MUY PEQUEÑO:  
 - los dos bordes están muy próximos, NO UTILIZAR CABLE CON HILOS peligro de que algún hilo cortocircuite  
 - no utilizar potencias superiores a 20W</span></p>

<p class="callout success"><span style="text-decoration: underline;">Si no quieres estos peligros</span>, sustituye el enchufe por una pila y la bombilla doméstica por una pequeña de maquetas :[![2025-01-09 19_37_26-bombilla pequeña maqueta - Buscar con Google.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-19-37-26-bombilla-pequena-maqueta-buscar-con-google.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-19-37-26-bombilla-pequena-maqueta-buscar-con-google.png)</p>

El circuito que se propone es utilizar el relé para que cierre un circuito que encienda una bombilla. El circuito con los cables rojos estarían a 220V, luego **peligro !!!**

<span style="color: rgb(0, 0, 0);">[![2025-01-09 18_54_06-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-18-54-06-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-18-54-06-picobricks-blocks.png)</span>

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

<span style="color: rgb(0, 0, 0);">El programa lee la intensidad luminosa y lo visualiza por la pantalla OLED. Si es inferior a 20.000 eso quiere decir que hay luz, por lo tanto que cierre el circuito.</span>

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

<span style="color: rgb(0, 0, 0);">si quieres hacerlo crepuscular como es en la vida real, cambia el estado del relé pero aleja el sensor de la bombilla o pon una pantalla de sombra</span>

[![2025-01-09 19_30_27-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-09-19-30-27-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-09-19-30-27-picobricks-blocks.png)

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

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="634" src="https://www.youtube.com/embed/7CYORlz7Ze8" title="9 de enero de 2025" width="356"></iframe>

# Sensor de distancia de ultrasonidos

##### <span style="color: rgb(22, 145, 121);">**¿Qué es el sensor de distancia HC-SR04?**</span>

{{@7009#bkmrk-es-un-sensor-de-dist}}

{{@7009#bkmrk-no-es-un-sensor-prec}}

{{@7009#bkmrk-ejemplos-de-uso%3A-0}}

{{@7009#bkmrk-alarma-en-dom%C3%B3tica-c}}

{{@7009#bkmrk-pines-de-conexi%C3%B3n%3A}}

{{@7009#bkmrk-distancia-%3D-%7B%28tiempo}}

[![2022-04-14 08_10_43-PROYECTO 00 CONOCEMOS ARDUINO..pdf - Google Drive.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-14-08-10-43-proyecto-00-conocemos-arduino-pdf-google-drive.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-14-08-10-43-proyecto-00-conocemos-arduino-pdf-google-drive.png)[![2022-04-14 08_11_21-PROYECTO 00 CONOCEMOS ARDUINO..pdf - Google Drive.png](https://libros.catedu.es/uploads/images/gallery/2022-04/scaled-1680-/2022-04-14-08-11-21-proyecto-00-conocemos-arduino-pdf-google-drive.png)](https://libros.catedu.es/uploads/images/gallery/2022-04/2022-04-14-08-11-21-proyecto-00-conocemos-arduino-pdf-google-drive.png)

##### <span style="color: rgb(22, 145, 121);">**Conexión con la Raspberry Pi Pico E**</span>

Si miras [https://libros.catedu.es/books/pico-bricks/page/que-es-pico-bricks](https://libros.catedu.es/books/pico-bricks/page/que-es-pico-bricks) verás el esquema para poder conectar los pines del HC-SR04 con la Raspberry, te lo mostramos aquí

[![2025-01-10 12_35_35-Pico-series Microcontrollers - Raspberry Pi Documentation.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-10-12-35-35-pico-series-microcontrollers-raspberry-pi-documentation.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-10-12-35-35-pico-series-microcontrollers-raspberry-pi-documentation.png)

La conexión de Echo y de Trg es arbritaria, lo hemos puesto en GP14 y GP15 que es la que recomienda el programa Picobricks

[![2025-01-10 12_52_32-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-10-12-52-32-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-10-12-52-32-picobricks-blocks.png)

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

<p class="callout info">Mostrar por la pantalla de OLED la distancia y a la vez que suene un radar como en los asistentes de parking de los coches</p>

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

<span style="color: rgb(0, 0, 0);">Para hacer el pitido intermitente en función de los centímetros del objeto, se utiliza una pausa, como la espera en cm convertirla a segundos es muy grande, se divide por 30, puedes modificar este valor a tu gusto</span>

<span style="color: rgb(22, 145, 121);">**[![2025-01-10 12_53_57-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-10-12-53-57-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-10-12-53-57-picobricks-blocks.png)**</span>

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

<span style="color: rgb(22, 145, 121);">**<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/ZV5cjfkenSE" width="560"></iframe>** </span>

<p class="callout success">**Te atreves a...** Juntar el Pico coche con un sensor de distancia de tal manera que vaya autónomo evitando los obstáculos como un romba</p>

**¿No te atreves?** Pues aquí tienes la solución:

[![2025-01-10 12_57_39-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-10-12-57-39-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-10-12-57-39-picobricks-blocks.png)

# Microblocks

# Conexión con Microblocks

**Microblocks** es un software extendido de uso libre para programar en bloques para diferentes placas. Se puede trabajar online o también descargarse e instalarlo localmente en el ordenador en [https://microblocks.fun/](https://microblocks.fun/)

[![2024-12-26 18_07_13-Download - MicroBlocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-18-07-13-download-microblocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-18-07-13-download-microblocks.png)

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

<p class="callout danger">**ATENCIÓN** al instalar el firmware de MicroBlocks **te cargas** el firmware de PicoBlockly por lo tanto si quiere volver a programar con PicoBlockly tienes que poner su firmware (y viceversa)</p>

Entramos en Micrboblocks y vamos al menú de la **rueda dentada** a **Update firmware on board**

[![2024-12-26 18_25_50-MicroBlocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-18-25-50-microblocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-18-25-50-microblocks.png)

Nos vamos a RP2040 PicoW

[![2024-12-26 18_28_49-MicroBlocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-18-28-49-microblocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-18-28-49-microblocks.png)

<p class="callout warning">{{@12670#bkmrk-atenci%C3%93n-desconectam}}</p>

Y en la siguiente pantalla volvemos a elegir RP2040

[![2024-12-26 18_32_23-MicroBlocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-18-32-23-microblocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-18-32-23-microblocks.png)

Entonces aparecerá CONECTADO el icono del USB

[![2024-12-26 18_34_21-MicroBlocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-18-34-21-microblocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-18-34-21-microblocks.png)

##### <span style="color: rgb(22, 145, 121);">**INSTALACIÓN DE LAS LIBRERÍAS**</span>

Entramos en la siguiente ruta

[![2024-12-26 18_35_54-Editing Page Conexión con Microblocks _ Librería CATEDU.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-18-35-54-editing-page-conexion-con-microblocks-libreria-catedu.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-18-35-54-editing-page-conexion-con-microblocks-libreria-catedu.png)

Y entonces se instala una librería para poder manejar Picobricks

[![2024-12-26 18_38_27-MicroBlocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-18-38-27-microblocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-18-38-27-microblocks.png)

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

Microblocks trabaja en vivo, luego arrastra esta sencilla instrucción y da dos clicks **comprueba que se enciende el led rojo**

**[![2024-12-26 18_39_27-MicroBlocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-18-39-27-microblocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-18-39-27-microblocks.png)**

haz dos clicks con el selector en rojo para apagarlo

[![2024-12-26 18_41_43-MicroBlocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-18-41-43-microblocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-18-41-43-microblocks.png)

# PROYECTOS

Los proyectos vistos con PicoBlockly se pueden hacer igual con Microblocks.

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

[https://wiki.microblocks.fun/en/picobricks](https://wiki.microblocks.fun/en/picobricks)

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

Los tienes todos desarrollados **paso a paso en este libro** (en inglés) que lo puedes conseguir aquí [https://picobricks.com/pages/projectbook](https://picobricks.com/pages/projectbook)

- PROYECTO BLINK ver pag 23
- PROYECTO ACTION-REACTION ver pag 27
- PROYECTO Autonomous Lighting ver pag ver pag 31
- PROYECTO Thermometer ver pag 38
- PROYECTO Graphic Monitor ver pag 44
- PROYECTO Dominate the Rhythm ver pag 49
- PROYECTO Show Your Reaction ver pag 60
- PROYECTO My Timer ver pag 68
- PROYECTO Alarm Clock ver pag 78
- PROYECTO Know Your Color ver pag 85
- PROYECTO Buzz Wire Game ver pag 106

 <iframe allow="autoplay" height="480" src="https://drive.google.com/file/d/1PDql_GYyxcz68JqmQAGOLs0YE6SXgPCm/preview" width="640"></iframe>

Al no tener licencia CC no los podemos reproducir aquí en este tutorial

# Algo diferente: Data Graph

Microblocks tiene algo diferente a PicoBlockly y es la posibilidad de visualizar gráficamente variables

Haz el siguiente programa y pulsa en Graph y verás que puedes visualizar gráficamente los valores del potenciómetro (que van de 0 a 1023)

[![2024-12-26 18_57_12-Edit Page Draft _ Librería CATEDU.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-18-57-12-edit-page-draft-libreria-catedu.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-18-57-12-edit-page-draft-libreria-catedu.png)

# MicroPython con Thonny

# Instalación de micropython

##### <span style="color: rgb(22, 145, 121);">**¿Dónde se instala el Micropython?**</span>

{{@12238#bkmrk-como-puedes-ver-en-e}}

[![2024-07-04 18_44_27-(1) Exploring the Arduino Nano ESP32 _ MicroPython & IoT Cloud - YouTube.png](https://libros.catedu.es/uploads/images/gallery/2024-07/scaled-1680-/2024-07-04-18-44-27-1-exploring-the-arduino-nano-esp32-micropython-iot-cloud-youtube.png)](https://libros.catedu.es/uploads/images/gallery/2024-07/2024-07-04-18-44-27-1-exploring-the-arduino-nano-esp32-micropython-iot-cloud-youtube.png)  
[Fuente vídeo Exploring the Arduino Nano ESP32 | MicroPython &amp; IoT](https://youtu.be/R51tf66es9w?t=1512)

##### <span style="color: rgb(22, 145, 121);">**¿Qué programa vamos a usar?**</span>

Usaremos el Thonny [https://thonny.org/](https://thonny.org/) que lo puedes descargar e instalar de esta página: [https://thonny.org/](https://thonny.org/)

[![2024-12-26 22_31_14-Thonny, Python IDE for beginners.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-22-31-14-thonny-python-ide-for-beginners.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-22-31-14-thonny-python-ide-for-beginners.png)

##### <span style="color: rgb(22, 145, 121);">**¿Cómo se instala micropython con Thonny en Picobricks?**</span>

<span style="color: rgb(0, 0, 0);">Entramos en ejecutar-configurar intérprete</span>

<span style="color: rgb(0, 0, 0);">[![2024-12-26 22_33_05-.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-22-33-05.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-22-33-05.png)</span>

<span style="color: rgb(0, 0, 0);">Seleccionamos en ¿Qué tipo de interprete ...? le decimos que **Rasbperry Pi pico** y el puerto si lo sabemos lo seleccionamos o si no lo sabemos que lo detecte automáticamente</span>

<span style="color: rgb(0, 0, 0);">[![2024-12-26 22_34_50-Thonny  -  _sin nombre_  @  1 _ 1.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-22-34-50-thonny-sin-nombre-at-1-1.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-22-34-50-thonny-sin-nombre-at-1-1.png)  
</span>

<p class="callout warning"><span style="color: rgb(0, 0, 0);">{{@12670#bkmrk-atenci%C3%93n-desconectam}}</span></p>

<span style="color: rgb(0, 0, 0);">Entonces le damos a Instalar y lo instala en la unidad nueva que ha detectado, en el siguiente diálogo seleccionamos v**ariante Raspberry pico W:**</span>

[![2024-12-26 23_51_38-Thonny  -  _sin nombre_  @  1 _ 1.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-26-23-51-38-thonny-sin-nombre-at-1-1.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-26-23-51-38-thonny-sin-nombre-at-1-1.png)

Si visualizamos la ventana de archivos

[![2024-12-27 00_20_16-.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-27-00-20-16.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-27-00-20-16.png)

Podemos ver que a la hora de guardar nos pregunta si lo queremos guardar en el chip de PicoBricks o en tu ordenador

[![2024-12-27 00_23_20-Thonny  -  _sin nombre_  @  9 _ 22.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-27-00-23-20-thonny-sin-nombre-at-9-22.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-27-00-23-20-thonny-sin-nombre-at-9-22.png)

<p class="callout info">**¿SABIAS QUE ...?**  
Si lo grabas en Raspberry Pi Pico con el nombre de **main.py**, entonces cuando enciendas el Picobricks, se ejecutará automáticamente sin necesidad de ningún ordenador</p>

# El primer programa con Python: Blink

El led rojo está en el pin GPI7 tal y como lo indica en la placa

[![2024-12-27 00_17_32-picobricks.png (611×439).png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-27-00-17-32-picobricks-png-611439.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-27-00-17-32-picobricks-png-611439.png)

Luego ponemos en el Thonny el siguiente programa

```
from time import sleep
import machine
import time

led = machine.Pin(7, machine.Pin.OUT)

while True:
    led.on()
    time.sleep((0.5))
    led.off()
    time.sleep((0.5))
```

Ejecutamos con F5

[![2024-12-27 00_03_30-Thonny  -  _sin nombre_  @  1 _ 1.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-27-00-03-30-thonny-sin-nombre-at-1-1.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-27-00-03-30-thonny-sin-nombre-at-1-1.png)

y el led parpadea como estaba previsto

Otra forma de conseguir el programa es con la ventana de Python de PicoBlockly

[![2024-12-27 00_15_08-PicoBricks Blocks.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-27-00-15-08-picobricks-blocks.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-27-00-15-08-picobricks-blocks.png)

Otra manera de ver el mismo programa, está en la página 25 del libro [https://picobricks.com/pages/projectbook](https://picobricks.com/pages/projectbook)

se encuentra el mismo código pero usando la instrucción

```
 led.toggle() 
```

 <iframe allow="autoplay" height="480" src="https://drive.google.com/file/d/1PDql_GYyxcz68JqmQAGOLs0YE6SXgPCm/preview" width="640"></iframe>

# Proyectos

<span style="text-decoration: underline;">Los mismos proyectos </span>vistos con PicoBlockly se pueden hacer igual con código.

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

<span style="color: rgb(0, 0, 0);">[https://ide.picobricks.com/examples/examples.ht](https://ide.picobricks.com/examples/examples.ht)</span>

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

<span style="color: rgb(0, 0, 0);">En la ruta [https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities) los tienes listos los programas para copiar y pegar</span>

1. [- Blink](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Blink "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--blink)
2. [- Action-Reaction](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Action-Reaction "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--action-reaction)
3. [- Autonomous Lighting](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Autonomous%20Lighting "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--autonomous-lighting)
4. [- Thermometer](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Thermometer "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--thermometer)
5. [- Graphic Monitor](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Graphic%20Monitor "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--graphic-monitor)
6. [- Dominate the Rhythm](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Dominate%20the%20Rhythm "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--dominate-the-rhythm)
7. [- Show Your Reaction](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Show%20Your%20Reaction "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--show-your-reaction)
8. [- My Timer](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/My%20Timer "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--my-timer)
9. [- Alarm Clock](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Alarm%20Clock "Heading Link")[<svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg>](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities#--alarm-clock)
10. [- Know Your Color](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Know%20Your%20Color "Heading Link")
11. [Buzz Wire Game](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Buzz%20Wire%20Game)

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

Los tienes en este libro (en inglés) que lo puedes conseguir aquí [https://picobricks.com/pages/projectbook](https://picobricks.com/pages/projectbookNo)

- PROYECTO BLINK ver pag 25
- PROYECTO ACTION-REACTION ver pag 29
- PROYECTO Autonomous Lighting ver pag 35
- PROYECTO Thermometer ver pag 41
- PROYECTO Graphic Monitor ver pag 46
- PROYECTO Dominate the Rhythm ver pag 55
- PROYECTO Show Your Reaction ver pag 63
- PROYECTO My Timer ver pag 71
- PROYECTO Alarm Clock ver pag 81
- PROYECTO Know Your Color ver pag 90
- PROYECTO Buzz Wire Game ver pag 106

<p class="callout warning">A diferencia de Microblocks, no los explica paso a paso, por lo que es mejor copiar y pegar de los repositorios de Github</p>

 <iframe allow="autoplay" height="480" src="https://drive.google.com/file/d/1PDql_GYyxcz68JqmQAGOLs0YE6SXgPCm/preview" width="640"></iframe>

Al no tener licencia CC no los podemos reproducir aquí en este tutorial

# Un proyecto diferente: Encender y apagar led por wifi

En la lista de proyectos que propone PicoBricks sólo hay uno que usa la Wifi [SmartHome](https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Smart%20Greenhouse), pero **no utiliza la wifi de Raspberry Pi** sino que utiliza un módulo wifi ESP8266 auxiliar.

Proponemos uno que no use elementos auxiliares

<p class="callout info">**Enunciado**: Encender y apagar el led rojo conectado en GPI7 a través de una página web puesto en el servidor que se instala en la Raspberry</p>

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

<p class="callout success">La explicación del programa está en [https://peppe8o.com/getting-started-with-wifi-on-raspberry-pi-pico-w-and-micropython/](https://peppe8o.com/getting-started-with-wifi-on-raspberry-pi-pico-w-and-micropython/)  
La fuente del programa en [https://github.com/raspberrypi/pico-micropython-examples/blob/master/wireless/webserver.py](https://github.com/raspberrypi/pico-micropython-examples/blob/master/wireless/webserver.py)</p>

<p class="callout warning">**Recuerda** que tienes que poner los datos de tu wifi en las líneas 35 y 36</p>

```python
import socket
################################33
import network, rp2
import time

def connectWiFi(ssid,password,country):
   rp2.country(country)
   wlan = network.WLAN(network.STA_IF)
   wlan.config(pm = 0xa11140)
   wlan.active(True)
   wlan.connect(ssid, password)
   # Wait for connect or fail
   max_wait = 10
   while max_wait > 0:
      if wlan.status() < 0 or wlan.status() >= 3:
        break
      max_wait -= 1
      print('waiting for connection...')
      time.sleep(1)

   # Handle connection error
   if wlan.status() != 3:
      raise RuntimeError('network connection failed')
   else:
      print('connected')
      status = wlan.ifconfig()
      print( 'ip = ' + status[0] )
   return status
######################################################333
from machine import Pin

led = Pin(7, Pin.OUT)

country = 'ES'
ssid = 'pon aqui el nombre de tu wifi'
password = 'pon aqui el password de tu wifi'

wifi_connection = connectWiFi(ssid,password,country)
#########################################################################33333
html = """
<html>
<head> <title>Pico W</title> </head>
<body> <h1>Pico W</h1>
<p>Current status: %s</p>
<p><a href="http://"""+wifi_connection[0]+"""/light/on">Turn ON</a></p>
<p><a href="http://"""+wifi_connection[0]+"""/light/off">Turn OFF</a></p>
<p>by <a href="https://peppe8o.com">peppe8o.com</a></p>
</body>
</html>
"""
######################################################################


# Open socket
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(1)

print('listening on', addr)

# Initialize LED status
led.value(0)
stateis = "LED is OFF"

# Listen for connections
while True:
  try:
    cl, addr = s.accept()
    print('client connected from', addr)
    request = cl.recv(1024)
    print(request)

    request = str(request)[0:50] # The [0:50] avoids getting the url directory from referer 
    led_status = request.find('GET / HTTP')
    led_on = request.find('/light/on')
    led_off = request.find('/light/off')
    print( 'led on = ' + str(led_on))
    print( 'led off = ' + str(led_off))

    if led_status >0:
      print("LED status request") # No LED action

    if led_on >0:
      print("led on")
      led.value(1)
      stateis = "LED is ON"

    if led_off >0:
      print("led off")
      led.value(0)
      stateis = "LED is OFF"

    response = html % stateis

    cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
    cl.send(response)
    cl.close()

  except OSError as e:
    cl.close()
    s.close()
    print('connection closed')
```

##### <span style="color: rgb(22, 145, 121);">**Ejecución del programa**</span>

Para encender y apagar el led tienes que entrar en la IP de la Raspberry Pi, puedes verlo en la ventana del puerto serie (cónsola) que puedes ver en el programa Thonny:

[![2024-12-28 22_40_50-Thonny  -  C__Users_I5HP_Downloads_wifi.py  @  97 _ 22.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-28-22-40-50-thonny-c-users-i5hp-downloads-wifi-py-at-97-22.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-28-22-40-50-thonny-c-users-i5hp-downloads-wifi-py-at-97-22.png)

Otro truco es ejecutar un programa de rastreo de IPs como el [Wireless Network Watcher](https://www.nirsoft.net/utils/wireless_network_watcher.html) y ver la IP de la Raspberry. O poner una IP estática ver [aquí](https://randomnerdtutorials.com/raspberry-pi-pico-w-wi-fi-micropython/)  
[![2024-12-28 22_45_08-Wireless Network Watcher.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-28-22-45-08-wireless-network-watcher.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-28-22-45-08-wireless-network-watcher.png)

Abrimos un navegador y ponemos la IP de la Raspberry en mi caso 192.168.1.54

[![2024-12-28 22_53_21-Pico W — Mozilla Firefox.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-28-22-53-21-pico-w-mozilla-firefox.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-28-22-53-21-pico-w-mozilla-firefox.png)

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="599" src="https://www.youtube.com/embed/pRtXEg_cCCI" title="encendido apagado led wifi picobricks" width="337"></iframe>

<p class="callout info">Si os sale el error OSError: \[Errno 98\] EADDRINUSE es porque no se ha cerrado bien la conexión, desconectar PicoBrikcs y volverlo a conectar y solucionado</p>

</body></html>

# Envío de mensajes a Telegram

En la anterior página, PicoBricks hacía de servidor, alojaba una página web y desde el exterior, se llamaba a su página web para encender y apagar un led.

¿y al revés? es decir, la llamada de PicoBricks a una web externa, por ejemplo la api de Telegram y así poder enviar temperatura, datos, etc.. de forma muy fácil :

- Primero [creando un bot de Telegram y consiguiendo su Token ](https://libros.catedu.es/books/arduino-alvik/page/crear-bot-en-telegram)
- Segundo [identificar nuestro ID de usuario a donde enviar el mensaje](https://libros.catedu.es/books/arduino-alvik/page/encontrar-tu-id-en-telegram)
- Tercero utilizar la instrucción urequest.get(laurl) de la librería urequests

<p class="callout info">Tienes que poner en la línea 11 los datos de tu wifi</p>

<p class="callout info">Tienes que poner en la url de la línea 16:  
- Donde pone **PONTUBOT** sustitúyelo por el token del bot que has conseguido en [reando un bot de Telegram y consiguiendo su Token ](https://libros.catedu.es/books/arduino-alvik/page/crear-bot-en-telegram)  
- Donde pone **PONTUID** sustitúyelo por el ID de tu usuario a donde hay que enviar el mensaje ver [identificar nuestro ID de usuario a donde enviar el mensaje](https://libros.catedu.es/books/arduino-alvik/page/encontrar-tu-id-en-telegram)</p>

```
## extraido del proyecto action-reaction https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Action-Reaction
from machine import Pin#to acces the hardware picobricks 
led = Pin(7,Pin.OUT)                         #### initialize digital pin as an output for led
push_button = Pin(10,Pin.IN,Pin.PULL_DOWN)   ### initialize digital pin 10 as an input
        
##### extraido de página 21 de https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf
##### Connecttonetwork
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('PONTUWIFI', 'PONTUCONTRASEÑAWIFI')

# Make GET request
import urequests
def mandarmensaje():
    r = urequests.get("http://api.telegram.org/botPONTUBOT/sendMessage?chat_id=PONTUID&text=APRETADO")
    print(r.status_code) # redirectsto https
    #print(r.content)
    r.close() 

#### while loop #######################################    
while True:  
    logic_state = push_button.value();#button on&off status
    if logic_state == True:#check the button and if it is on
        led.value(1)#turn on the led
        mandarmensaje()
    else:
        led.value(0)#turn off the led
#### end while loop ###################################    

        
```

Hay que dejar apretado unos segundos el botón para que funcione:<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="815" src="https://www.youtube.com/embed/cimDJiuisag" title="envio a telegram con picobricks y python" width="458"></iframe>

# Arduino IDE

# Conexión con Arduino IDE

El software Arduino IDE lo puedes descargar en [https://www.arduino.cc/](https://www.arduino.cc/)

[![2024-12-27 08_48_07-Software _ Arduino.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-27-08-48-07-software-arduino.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-27-08-48-07-software-arduino.png)

Una vez instalado vamos a ver cómo podemos programar con el software de Arduino nuestro Picobriks

<p class="callout warning">No sigas las instrucciones de Project Book aquí [https://picobricks.com/pages/projectbook](https://picobricks.com/pages/projectbook) **NO funcionan**.   
Las siguientes instrucciones **sí que funcionan** y son de  ***[Bricogeek](https://lab.bricogeek.com/tutorial/como-programar-raspberry-pi-pico-con-arduino/configurar-ide-de-arduino-para-raspberry-pi-pico)** Licencia CC-BY  
 (hay muchas páginas con las mismas instrucciones pon en un buscador raspberry pico arduino ide )*</p>

Nos vamos a **Archivo-Preferencias** y le decimos que ponga el siguiente directorio para las librerías :

[![2024-12-27 23_43_03-Editing Page Conexión con Arduino IDE _ Librería CATEDU.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-27-23-43-03-editing-page-conexion-con-arduino-ide-libreria-catedu.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-27-23-43-03-editing-page-conexion-con-arduino-ide-libreria-catedu.png)

Esta es la URL que pegar para que cargue placas que no vienen por defecto :

```c
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
```

Una vez puesto nos vamos a **Boards manager**..

[![2024-12-27 08_50_07-sketch_dec27a _ Arduino IDE 2.3.3.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-27-08-50-07-sketch-dec27a-arduino-ide-2-3-3.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-27-08-50-07-sketch-dec27a-arduino-ide-2-3-3.png)

Y ponemos **RP2040** en el buscador, aparecerá este software, **Raspberry Pi Pico/RP2040** Lo instalamos

[![2024-12-27 23_54_30-blink-rasperrypipico _ Arduino IDE 2.3.3.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-27-23-54-30-blink-rasperrypipico-arduino-ide-2-3-3.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-27-23-54-30-blink-rasperrypipico-arduino-ide-2-3-3.png)

<p class="callout warning"><span style="color: rgb(0, 0, 0);">{{@12670#bkmrk-atenci%C3%93n-desconectam}}</span></p>

Una vez puesto en modo Booloader seleccionamos la placa **Raspberry Pi Pico W** (4) y también seleccionamos el puerto (5) **UF2\_Board**

[![2024-12-27 23_57_06-.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-27-23-57-06.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-27-23-57-06.png)

También puede salir otro tipo de puerto como este que dice que es el RP2040 Rasbberry Pi Pico W

[![2024-12-28 00_00_32-.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-28-00-00-32.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-28-00-00-32.png).

En resumen tiene que salir abajo a la derecha que esta conectado

[![2024-12-27 08_59_03-sketch_dec27a _ Arduino IDE 2.3.3.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-27-08-59-03-sketch-dec27a-arduino-ide-2-3-3.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-27-08-59-03-sketch-dec27a-arduino-ide-2-3-3.png)

# El primer programa con Arduino IDE: Blink

Entramos en Arduino IDE configurado según la página anterior (Board: Raspberry Pi y el puerto COM que corresonda) y pegamos el siguiente código:

```c
void setup() {
  // put your setup code here, to run once:
  pinMode(7, OUTPUT); // inicicializamos GPI7 que es donde esta el ledrojo como salida
}
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(7, HIGH); //encendemos led rojo 
  delay(1000); //espera 1 segundo         
  digitalWrite(7, LOW); //apagamos led rojo
  delay(1000); //espera 1 segundo                  
}
```

Ponemos el código en el área **1,** pulsamos **2** para compilar, y finalmente **3** para que lo suba a PicoBricks, cuando aparezca el mensaje **wrote...** en 4 ya podemos ver que el led rojo empieza a parpadear

[![2024-12-28 08_38_02-blink-rasperrypipico _ Arduino IDE 2.3.3.png](https://libros.catedu.es/uploads/images/gallery/2024-12/scaled-1680-/2024-12-28-08-38-02-blink-rasperrypipico-arduino-ide-2-3-3.png)](https://libros.catedu.es/uploads/images/gallery/2024-12/2024-12-28-08-38-02-blink-rasperrypipico-arduino-ide-2-3-3.png)

<p class="callout success">Por cierto, el programa **se queda cargado** pruébalo! desenchúfalo del ordenador, alimenta PicoBricks con un PowerBank o un cargador de móvil con el cabla USB y ¡¡ **sigue funcionando !!!**</p>

# Proyectos

{{@12689}}

# Proyectos con Wifi

##### <span style="color: rgb(22, 145, 121);">**<span class="wp-dark-mode-bg-image"><span class="wp-dark-mode-bg-image">ScanNetworks</span></span><span class="wp-dark-mode-bg-image"> </span>**</span>

Podemos ir a Ejemplos y vamos a ejecutar el **ScanNetworks** que no requiere contraseñas de wifi

[![2025-01-04 20_11_51-.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-04-20-11-51.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-04-20-11-51.png)

Al ejecutarlo nos sale en la ventana de monitor serie las wifis que encuentra

[![2025-01-04 20_13_59-ScanNetworks _ Arduino IDE 2.3.3.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-04-20-13-59-scannetworks-arduino-ide-2-3-3.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-04-20-13-59-scannetworks-arduino-ide-2-3-3.png)

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

Si nos vamos a este ejemplo:

[![2025-01-04 20_31_01-.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-04-20-31-01.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-04-20-31-01.png)

Tenemos que ir a las líneas 9 y 10 para poner nuestra wifi y contraseña:

```c
#define STASSID "aquituwifi"
#define STAPSK "aqui tu contraseña"
```

Al ejecutarlo llama a esta dirección definida en las líneas 16 y 17

```
const char* host = "djxmmx.net";
const uint16_t port = 17;
```

Y sale **la cita del día** cada 5 minutos en el puerto serie

```

WiFi connected
IP address: 
192.168.1.48
connecting to djxmmx.net:17
sending data to server
receiving from remote server
"Thomas wants to get it in quickly, and...Now there's a steal by Bird!
 Underneath to DJ, lays it in!
 1 second left, what a play by Bird!"
	 - 1987 NBA Eastern Conference Finals

closing connection
connecting to djxmmx.net:17
sending data to server
receiving from remote server
"Oh oh oh oh oh ooh, why'd you have to go oh, away from all, me love, why you leave me, w-why you leave me?..."
	 - Sean Kingston (Me Love)

closing connection
connecting to djxmmx.net:17
sending data to server
receiving from remote server
"I wanna run away, with you, cuz baby you're my everything..."
	 - Frankie J. (Run Away)

closing connection
```

##### <span style="color: rgb(22, 145, 121);">**Encender y apagar un led**</span>

De [https://dronebotworkshop.com/picow-arduino/](https://dronebotworkshop.com/picow-arduino/) hemos conseguido este código, donde Raspberry actúa como cliente, pero esta pensado para encender y apagar el led integrado en la Rasberry Pi Pico W, así que le hemos añadido el Led rojo de PicoBrick que esta en GPI7

- En la línea 43 el pin 7 como salida **pinMode(7,OUTPUT);**
- En la línea 97 que encienda el pin 7 también **digitalWrite(7, HIGH);**
- En la línea 102 que apague el pin 7 también **digitalWrite(7, LOW);**
- Acuérdate de poner en las líneas 17 y 18 tu wifi

```c
/*
  Pico W Web Interface Demo
  picow-web-control-demo.ino
  Web Interface & WiFi Connection
  Control the onboard LED with Pico W

  Adapted from ESP32 example by Rui Santos - https://randomnerdtutorials.com

  DroneBot Workshop 2022
  https://dronebotworkshop.com
*/

// Load Wi-Fi library
#include <WiFi.h>

// Replace with your network credentials
const char* ssid = "pontuwifi";
const char* password = "pontucontraseña";

// Set web server port number to 80
WiFiServer server(80);

// Variable to store the HTTP request
String header;

// Variable to store onboard LED state
String picoLEDState = "off";

// Current time
unsigned long currentTime = millis();
// Previous time
unsigned long previousTime = 0;
// Define timeout time in milliseconds (example: 2000ms = 2s)
const long timeoutTime = 2000;

void setup() {

  // Start Serial Monitor
  Serial.begin(115200);

  // Initialize the LED as an output
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(7,OUTPUT);//initialize digital pin 7 as an output

  // Set LED off
  digitalWrite(LED_BUILTIN, LOW);

  // Connect to Wi-Fi network with SSID and password
  WiFi.begin(ssid, password);

  // Display progress on Serial monitor
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  // Print local IP address and start web server
  Serial.println("");
  Serial.print("WiFi connected at IP Address ");
  Serial.println(WiFi.localIP());

  // Start Server
  server.begin();
}

void loop() {

  WiFiClient client = server.available();   // Listen for incoming clients

  if (client) {                             // If a new client connects,
    currentTime = millis();
    previousTime = currentTime;
    Serial.println("New Client.");          // print a message out in the serial port
    String currentLine = "";                // make a String to hold incoming data from the client
    while (client.connected() && currentTime - previousTime <= timeoutTime) {  // loop while the client's connected
      currentTime = millis();
      if (client.available()) {             // if there's bytes to read from the client,
        char c = client.read();             // read a byte, then
        Serial.write(c);                    // print it out the serial monitor
        header += c;
        if (c == '\n') {                    // if the byte is a newline character
          // if the current line is blank, you got two newline characters in a row.
          // that's the end of the client HTTP request, so send a response:
          if (currentLine.length() == 0) {
            // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
            // and a content-type so the client knows what's coming, then a blank line:
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println("Connection: close");
            client.println();

            // Switch the LED on and off
            if (header.indexOf("GET /led/on") >= 0) {
              Serial.println("LED on");
              picoLEDState = "on";
              digitalWrite(LED_BUILTIN, HIGH);
              digitalWrite(7, HIGH);
            } else if (header.indexOf("GET /led/off") >= 0) {
              Serial.println("LED off");
              picoLEDState = "off";
              digitalWrite(LED_BUILTIN, LOW);
              digitalWrite(7, LOW);
            }

            // Display the HTML web page
            client.println("<html>");
            client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
            client.println("<link rel=\"icon\" href=\"data:,\">");

            // CSS to style the on/off buttons
            client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
            client.println(".button { background-color: #4CAF50; border: none; color: white; padding: 16px 40px;");
            client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
            client.println(".button2 {background-color: #F23A3A;}</style></head>");

            // Web Page Heading
            client.println("<body><h1>Pico W LED Control</h1>");

            // Display current state, and ON/OFF buttons for Onboard LED
            client.println("<p>Onboard LED is " + picoLEDState + "</p>");
            
            // Set buttons
            if (picoLEDState == "off") {
              
              //picoLEDState is off, display the ON button
              client.println("<p><a href=\"/led/on\"><button class=\"button\">ON</button></a></p>");
            } else {

              //picoLEDState is on, display the OFF button
              client.println("<p><a href=\"/led/off\"><button class=\"button button2\">OFF</button></a></p>");
            }

            client.println("</body></html>");

            // The HTTP response ends with another blank line
            client.println();
            // Break out of the while loop
            break;
          } else { // if you got a newline, then clear currentLine
            currentLine = "";
          }
        } else if (c != '\r') {  // if you got anything else but a carriage return character,
          currentLine += c;      // add it to the end of the currentLine
        }
      }
    }
    // Clear the header variable
    header = "";
    // Close the connection
    client.stop();
    Serial.println("Client disconnected.");
    Serial.println("");
  }
}

```

Al ejecutarlo, nos aparece por el puerto serie la IP que se ha conectado:

[![2025-01-04 21_41_16-encender-apagar-led-picobricks-wifi _ Arduino IDE 2.3.3.png](https://libros.catedu.es/uploads/images/gallery/2025-01/scaled-1680-/2025-01-04-21-41-16-encender-apagar-led-picobricks-wifi-arduino-ide-2-3-3.png)](https://libros.catedu.es/uploads/images/gallery/2025-01/2025-01-04-21-41-16-encender-apagar-led-picobricks-wifi-arduino-ide-2-3-3.png)

Entramos en un navegador en un ordenador conectado a la misma wifi en la dirección 192.168.1.48 y este es el resultado:

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" frameborder="0" height="634" src="https://www.youtube.com/embed/haE4GdOd4zo" title="encendido apagado led con Raspberry Pi Pico W y Arduino IDE de Picobricks" width="356"></iframe>

##### <span style="color: rgb(22, 145, 121);">**¿Y con un servo?**</span>

Si tienes un servo puedes conectarlo y también puedes utilizar el código que aparece en De [https://dronebotworkshop.com/picow-arduino/](https://dronebotworkshop.com/picow-arduino/) con las conexiones que indican

</body></html>

# Créditos

**Capitulo PicoBlocky Extraido de Pico Bricks IDE Book**

- - <span style="text-decoration: underline;">Propiedad </span>Copyright © 2022 Robotistan
    - <span style="text-decoration: underline;">Licencia </span>CC-BY-SA  
        Except for commercial usage, you can copy, reproduce and edit photos and content in this book by referring
    - <span style="text-decoration: underline;">Autores</span>
        - Contents: Mustafa Kemal Avcı, Abdullah Kaya, Selim Gayretli
        - Translation: Naze Gizem Özer
        - Design: Ahmet Gürsu, Elanur Tokalak
        - Pico Bricks Developer Team 
            - Yasir Çiçek - Project Manager
            - Yusuf Gündoğdu - Software Developer
            - Mehmet Suat Morkan - Chief Developer
            - Mehmet Ali Dağ - Hardware Developer
    - <span style="text-decoration: underline;">Descarga </span>del libro 
        - [https://picobricks.com/pages/idebook](https://picobricks.com/pages/idebook)
        - [https://drive.google.com/file/d/1plad6bjn87FcgHb3cpd1vI-B\_A25rnfF/view](https://drive.google.com/file/d/1plad6bjn87FcgHb3cpd1vI-B_A25rnfF/view)

**Resto de capítulos:** Autor Javier Quintana CATEDU Diciembre 2024 Creative Commons-BY-NC-SA

Cualquier observación o detección de error en [soporte.catedu.es](https://catedu.es/soporte-catedu/)

Los contenidos se distribuyen bajo licencia **Creative Commons** tipo **BY-NC-SA** excepto en los párrafos que se indique lo contrario.

[![image-1648462225402.gif](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648462225402.gif)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648462225402.gif)

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

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