Recull de pràctiques de 2n de DAM. Curs 2025-2026
Contingut
A06 - POO amb C++ i Qt
A06.00
Instal·lació de la versió educativa del QtCreator
A06.01 - Ginys encastats
- a0601a. Feu una interfície gràfica (GUI) amb dos botons (+ i -) i una etiqueta numèrica.
- a0601b. Feu una interfície gràfica (GUI) amb una barra lliscant (slider) i un giny LCD de dos números. La barra lliscant controla l'LCD.
- a0601c. Feu una interfície gràfica (GUI) que integri els dos projectes anteriors. La botonera també controla la barra lliscant i l'LCD. La barra lliscant també controla el valor de l'etiqueta numèrica.
Exercici A06.01. (Heu de desar a la carpeta A06 un document 2526-DAM-A06.01-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2526-DAM-A06.01-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user).
A06.02 - Interfícies gràfiques
Exercici A06.02. (Heu de desar a la carpeta un document 2526-DAM-A06.02-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2526-DAM-A06.02-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user si ho feu amb qmake o el .txt.user si ho feu amb CMake).
A06.03
Exercici A06.03. (Heu de desar a la carpeta un document 2526-DAM-A06.02-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2526-DAM-A06.02-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .txt.user).
A07 - Introducció a la placa IoT-02, Wokwi i protocols de comunicació
A07.01 - Introducció al control de la placa Iot-02 mitjançant NodeRed
Exercici A07.01 (Heu de desar a la carpeta A07 un document 2526-DAM-A07.01-1rCognom2nCognomNom.pdf amb l'explicació del procés de resolució de la pràctica, incloent-hi captures de pantalla i fotografies.
A07.01.0
Explicació de com connectar la placa IoT-02, mitjançant MQTT, a Node-RED i a Snap!
A07.01.1
Feu un codi emprant el panell de control (Dashboard) de NodeRed que surtin quatre interruptors que controlin els quatre leds de la placa IoT-02, mitjançant comunicació MQTT.
A07.01.2
Feu un codi emprant el panell de control (Dashboard) de NodeRed que mostri l'estat dels tres botons de la placa IoT-02, mitjançant comunicació MQTT.
A07.01.3
Agrupeu a una sola pestanya A07.01.1 i A07.01.2.
A07.02 - Punt multicolor al NodeRED i variables de flux
Feu una visualització d'un punt que representa un led multicolor. A la placa IoT-02:
- Quan el botó IO0 sigui premut incorpora el color vermell al punt multicolor representat al panell de control del NodeRED
- Quan el botó IO0 no sigui premut traieu el color vermell al punt multicolor representat al panell de control del NodeRED
- Quan el botó I34 sigui premut incorpora el color verd al punt multicolor representat al panell de control del NodeRED
- Quan el botó I34 no sigui premut traieu el color verd al punt multicolor representat al panell de control del NodeRED
- Quan el botó I35 sigui premut incorpora el color blau al punt multicolor representat al panell de control del NodeRED
- Quan el botó I35 no sigui premut traieu el color blau al punt multicolor representat al panell de control del NodeRED
A07.03 - Visualització amb un giny rellotge del nivell de llum
Feu una visualització d'un giny rellotge que indiqui el nivell de llum a la LDR de la placa IoT-02.
A08 - QML, connexió a rerefons Qt i PureQML
A08.00
Feu un document explicant com fer un projecte emprant PureQML i llur migració a QML.
A08.01
Feu un programa en QML que al principi hi surti un quadrat vermell centrat. Al prémer la tecla B hi sortirà de color blau, al prémer la tecla G hi sortirà de color verd i al prémer la tecla R torna a ser vermell.
A08.02
Feu un programa en QML a on hi aparegui centrat, horitzontalment i vertical, ben gros i en negreta el nom Escola del Clot. Al prémer la tecla + la lletra es farà més grossa. I al prémer la tecla - la lletra es farà més petita.
A08.03
Feu un programa que hi surti el text, centrat a la finestra, "Comptador: 0" de color vermell. Al prémer el botó + incrementarà el valor del comptador, i al prémer el botó '-' es decrementarà. Al prémer la tecla N el text serà de color negre i al prémer V tornarà a ser de color vermell.
A08.04
Desenvolupeu un joc de pedra, paper, tisora.
A08.04.1
Feu servir lletres.
A08.04.2
Feu servir imatges. (Una idea del joc)
A08.04.3
Afegiu un botó de configuració que porti a una altra pantalla (feu servir SwipeView i PageIndicator) que:
- Permeti seleccionar mode dia o mode nit.
- Digui quantes partides ha guanyat l'usuari i quants l'aplicació (feus servir QSettings per a la persistència de dades).
- Un botó que torni a zero el nombre de partides guanyades i perdudes.
- Un botó per tornar al joc
A12 - Qt
A12.01 - ginyMqtt amb CMake
L'objectiu d'aquest exercici és fer una aplicació en Qt capaç de comunicar-se bidireccionalment amb la Placa IoT-02. El funcionament és exactament igual que a l'exercici anterior que heu fet emprant qmake, en aquest heu de fer servir CMake.
Suggeriment d'arxiu de projecte emprant CMake:
Afegiu Network i Mqtt a find_package():
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Network Mqtt)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Network Mqtt)
Afegiu Qt${QT_VERSION_MAJOR}::Network i Qt${QT_VERSION_MAJOR}::Mqtt a target_link_libraries():
target_link_libraries(ginyMqtt04_cmake PUBLIC Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Network Qt${QT_VERSION_MAJOR}::Mqtt)
Exercici A12.01 (Heu de desar al Drive el document 2526-DAM-A12.01-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2526-DAM-A12.01-1rCognom2nCognomNom.zip amb els codis comprimits, sense el CMakeLists.txt.user).
A12.02 Mqtt_IoT02
Desenvolupeu un projecte en Qt, capaç d'interaccionar amb la Placa IoT-02, amb aquest aspecte:
- A12.02-1)
Prenent com a base els arxius 00_botonsToggle05.zip i 00_botonsToggle06.zip del recull, desenvolupeu el projecte 02_indicadorLed_00 per a que tingui aquest comportament:
- A12.02-2)
Basant-vos en 02_indicadorLed_00 i 01_json_00.zip del recull, desenvolupeu el projecte 03_indicadorLed_01 per a que tingui aquest aspecte (els valors dels led R, G i B donen valors 0 i 1. Els valors del led W són true i false):
- A12.02-3)
Basant-vos en 04_indicadorBotons00.zip del recull, desenvolupeu el projecte 05_indicadorBotons_01 per a que tingui aquest aspecte:
- A12.02-4)
Basant-vos en 03_indicadorLed_01, desenvolupeu 03_indicadorLed_01_mqtt que controli els quatre leds de la placa IoT-02.
Mqtt_IoT02::Mqtt_IoT02(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Mqtt_IoT02)
{
ui->setupUi(this);
mqttBasic = new MqttBasic;
indicadorLed = new IndicadorLed;
indicadorBotons = new IndicadorGrupBotonsEt;
ui->hlAmunt->addWidget(mqttBasic);
ui->hlCentre->addWidget(indicadorLed);
ui->hlAvall->addWidget(indicadorBotons);
connect(mqttBasic,SIGNAL(vSignalMqttConnected()),this,SLOT(vMqttConnectat()));
connect(mqttBasic,SIGNAL(vSignalMqttDisconnected()),this,SLOT(vMqttDesconnectat()));
connect(indicadorLed,SIGNAL(vTrametJsonLeds(QString)),this,SLOT(vTrametJsonLeds(QString)));
indicadorBotons->vSetJsonText("");
//showMaximized();
}
- A12.02-5)
Basant-vos en 05_indicadorBotons_01, desenvolupeu 05_indicadorBotons_01_mqtt que llegeixi els tres botons de la placa IoT-02.
- A12.02-6)
Feu l'integració per a que l'aspecte sigui semblant a la captura d'inici de l'activitat A12.02. Haureu d'afegir un QTimer per anar demanant periòdicament el JSON que conté el valor de l'LDR.








