Un cop hem anat adquirint coneixements de tots els entorns de programació, ara la proposta és fer un projecte on hi intervingui tot el que hem anat aprenent. El repte proposat és incloure Scratch, App Inventor, Arduino i Python en una mateixa pràctica.

L’objectiu d’aquest repte és controlar els comandaments d’un joc de laberint, dissenyat amb Scratch, a través del telèfon mòbil. Els comandaments del mòbil els dissenyarem i programarem a través de l’App Inventor i, la comunicació entre el mòbil i l’ordinador, la farem mitjançant l’Arduino i un component Bluetooth. Quin és el problema? Que aquests llenguatges entre ells no saben com comunicar-se, de manera que necessitem un intèrpret que ens faci de nexe per poder comunicar ambdues tecnologies. Gràcies a Python podrem aconseguir el nostre objectiu.

Material necessari:

  • Un dispositiu mòbil (telèfon o tauleta)
  • 1 Placa Arduino
  • 1 mòdul Bluetooth
  • 1 placa protoboard
  • Connectors
  • 1 ordinador amb connexió a internet

El primer pas que farem serà crear el joc del laberint amb Scratch. Haurem de tenir en compte que haurem de crear un personatge protagonista que serà el que s’anirà movent per intentar sortir del laberint i un altre que simularà la nostra sortida. En el meu cas, he triat un ratolí que busca la poma a través del laberint:

Si ens fixem en la programació del ratolí, aquest es mou a través de les tecles W, per anar cap amunt, S per anar cap avall, D per anar cap a la dreta i A per anar cap a l’esquerra. Si el ratolí toca una paret del laberint, és a dir, si toca el color negre, automàticament, torna a la posició d’inici i quan trobi la poma, haurà assolit l’objectiu del joc, s’amagarà i canviarà el fons de la pantalla:

En canvi, la programació de la poma serà només la de canviar el fons de la pantalla quan toqui el ratolí i enviarà un missatge per a que el ratolí i la poma deixin de mostrar-se a la pantalla.

El següent pas serà el disseny i la programació de l’App Inventor. Com que en pràctiques anteriors, ja havíem dissenyat un controlador, aprofitarem el disseny que ja teníem fet. D’aquesta manera només haurem de programar:

El controlador contindrà 4 tecles de moviment, endavant, endarrere, dreta i esquerra, més una cinquena tecla que ens permeti connectar el dispositiu mòbil a l’ordinador a través del Bluetooth.

El programa resultant anterior ens permetrà saber si el dispositiu s’ha connectat bé mitjançant el Bluetooth amb l’aparició del missatge “Connected” i, ens comunica les ordres de les tecles del mòbil amb les lletres de moviment (w, s, d i a) que hem programat amb l’Scratch.

Seguidament, procedirem al muntatge i programació amb l’Arduino. El muntatge serà d’allò més senzill, només necessitarem la placa Arduino i un mòdul Bluetooth que connectarem a través de la placa protoboard i quatre connectors, tal i com es pot veure a la imatge següent:

Si ens fixem bé, veurem que els pins de connexió de la placa només són quatre: els d’alimentació 5V i terra (GND) i els pins 10 i 11 que ens faran de port sèrie. Són els que haurem de tenir en compte a l’hora de programar:

Un cop arribats a aquest punt, només ens farà falta escriure el programa amb el Python per a poder comunicar els diferents entorns entre si:

Un cop tinguem tota la programació feta, només ens faltarà comprovar el funcionament de tot el que hem estat elaborant. Primer connectarem la placa Arduino amb el mòdul Bluetooth al l’ordinador i compilarem el programa:

Després aparellarem el dispositiu mòbil amb la placa Arduino i, posteriorment, executarem el programa de l’App Inventor:

Fixem-nos que quan estigui connectat, ens apareix el missatge, tal i com hem programat. Al mateix temps, també executarem el programa del Python i comprovarem que cada cop que pitgem una tecla del mòbil, aparegui la lletra corresponent programada (w, s, d, a):

Un cop haguem fet totes les comprovacions i tinguem la seguretat que tot funciona bé, ja podrem procedir a comprovar el funcionament final de tot plegat, tal i com es pot veure en el vídeo següent:

Si ens fixem bé, les tecles de control del mòbil funcionen perfectament bé en el nostre laberint però, hi ha un petit error, ja que quan el ratolí toca la poma hauria de canviar de pantalla, un problema