Arxiu de la categoria: Bloc 2

Seqüenciador

Reprodueix ritmes i canvia’n la seqüència en temps real, és a dir: allò bàsic per convertir-te en un artista del Hip Hop. Et caldrien també habilitats de raper, però això pertany a un altre tipus de curs.

Materials

  • 1 placa Arduino
  • 1 Shield Bàsica Educativa
  • 4 resistències de 680 ohm
  • 1 resistència de 220 ohm
  • 1 resistència de 470 ohm
  • 1 resistència de 1.2K ohm
  • 1 altaveu de 8 ohm
  • 1 targeta micro SD
  • 4 cables solts negres
  • 4 cables solts de colors
  • 1 cable connector negre
  • 7 cables de colors
  • 1 kit Seqüenciador

 

Instruccions

  1. Connecta la Shield per la part superior de l’Arduino.
  2. Introdueix l’extrem d’un cable negre pelat a través dels forats d’un dels costats de cada cor. Utilitzant un cable de color prèviament pelat, fes el mateix per l’altre forat de cada cor.
  3. Munta la taula del Seqüenciador.
  4. Col·loca una resistència a cada peça en forma de cor (220Ω, 470Ω, 680Ω, 1.2KΩ) i usa la peça superior per subjectar-la al seu lloc.
  5. Connecta tres resistències de 680 ohm a través del pont de la breadboard.
  6. Connecta un dels extrems de les resistències a 5V.
  7. Connecta l’altre extrem de la resistència als Pins analògics A1 i A3. El Pin analògic A4 té una resistència integrada a la Shield; per això no necessitem connectar una resistència aquí.
  8. Connecta tres cables de colors de la taula del seqüenciador a la breadboard a A1, A2 i A3, i el quart directament a A4.
  9. Connecta els cables negres de la taula del seqüenciador a GND.
  10. Mou els arxius de so anomenats seq0.wav, seq1.wav, seq2.wav, seq3.wav, seq4.wav al directori arrel de la targeta SD.
  11. Connecta l’altaveu al connector d’àudio.
  12. Col·loca la targeta SD al lector SD de la Shield.
  13. Connecta la placa Arduino a l’ordinador i puja l’exemple Sequencer.

Codi

Pots trobar el codi a Arxiu -> Exemples -> Educació Bàsica -> Màgia -> Sequencer

Com funciona

Cada forat amb forma de cor està connectat a un Pin analògic i a terra (GND). Cada cor té una resistència de diferent valor que, en ser situada als forats, connecta els cables als forats. Com que cada cor té una resistència diferent, té també una única lectura. Això significa que podem distingir quin cor està connectat a cada forat. 

Al programa, usem analogRead() per llegir el valor analògic d’un Pin. Comprovem quin cor està connectat a getSeq(), és a dir, quina resistència està sent utilitzada. Si és la resistència de 220 ohm, la funció retornarà un ’1′, de tal manera que sequence serà igual a ’1′. Usem aquest valor per decidir quin arxiu reproduir: en aquest cas, “seq1.wav”. Si cap cor està connectat al forat, es reprodueix l’arxiu silenciós “seq0.wav”. 

El procés es repeteix 4 vegades, una per cada Pin analògic que estem utilitzant. Un cop finalitzat, es repeteix de nou.

No funciona?

  1. Revisa les il·lustracions i comprova totes les teves connexions. Assegura’t que els cables estan fortament connectats.
  2. Tens problemes reproduint els arxius de so? Mira la referència per corregir el reproductor de sons.
  3. Assegura’t que estàs utilitzant les resistències correctes. Mira la referència de resistències per saber com fer-ho.

Continua experimentant!

  • Grava 5 sons wav propis i anomena’ls “seq0.wav”, “seq1.wav”, “seq2.wav”, “seq3.wav” i “seq4.wav”.  Per obtenir un millor resultat, tots han de tenir la mateixa durada i “seq0.wav” ha de ser silenciós. Pots utilitzar Audacity (http://audacity.sourceforge.net/) per gravar sons compatibles amb l’Arduino. Mira la referència per preparar sons Wav per saber-ne més detalls.

Dau digital

Utilitza aquest dau digital la propera vegada que juguis a un joc de taula.

“Llances” el dau sacsejant el sensor Tilt. Els LEDs mostraran diferents números, canviant cada vegada més lentament, fins que s’aturin en un número específic. No pensis abans d’hora que s’ha aturat al teu número preferit, perquè et podries decebre.

Simó diu

Posa a prova la teva memòria amb aquest joc!

Els LEDs parpellejaran seguint una seqüència que hauràs de recordar i repetir. Si ho vas fent correctament, el joc esdevindrà cada vegada més desafiant.

Esports

Aquesta setmana construirem alguns projectes relacionats amb els esports. Fareu grups i construireu petits jocs electrònics que simularan diferents esports. Al final de la setmana, us reunireu tots i fareu les Electrolimpíades, on haureu de competir per veure qui és el millor en les diferents disciplines.

Abans de començar, però, necessitarem saber algunes coses sobre les eines que utilitzarem. Vegem breument què és Arduino i alguns conceptes bàsics sobre tecnologia digital.

Què és Arduino?

Les plaques Arduino són petits ordinadors amb els quals pots llegir informació de diferents sensors, així com controlar llums, motors i moltes altres coses. La gran majoria dels sistemes que ens envolten són ordinadors de diferents mides. Els ordinadors no necessiten tenir teclat ni pantalla. Hi ha ordinadors al microones de la cuina, dins els ascensors per detectar quin botó prems i, als cotxes, hi ha més de 70 ordinadors semblants a Arduino… hi ha ordinadors per tot arreu.

Com que Arduino, a diferència de l’ordinador que utilitzes normalment, no té pantalla ni teclat, es necessita un programa extern executat en un altre ordinador per poder escriure programes per la placa Arduino. Aquest software és el que anomenem Arduino IDE. IDE significa “Integrated Development Environment” (Entorn de Desenvolupament Integrat), i és un terme comú per referir-nos a aquest tipus de desenvolupament de software. Escrius el teu programa a l’IDE, el carregues a l’Arduino i el programa s’executa a la placa.

L’IDE d’Arduino és molt clar i semblant a Processing. Hi ha una senzilla barra d’eines que pots utilitzar per:

  •  Verificar si el teu programa funcionarà.
  •  Carregar el programa a la placa d’Arduino.
  •  Crear un programa nou.
  •  Obrir un programa.
  •  Guardar el programa al disc dur de l’ordinador.
  •  (a la part dreta de la barra d’eines es troba el Monitor Serial) Obrir una finestra de comunicació amb la placa Arduino.

Les plaques Arduino es connecten al teu ordinador utilitzant un cable USB, com qualsevol altre perifèric, com la impressora, el teclat o fins i tot un comandament de videojocs. Arduino necessita estar connectat a l’ordinador a través del cable USB per carregar un programa. El cable USB serveix també per a subministrar energia a la placa, però també la pots alimentar utilitzant una font d’energia externa, com una bateria o un transformador adient.

Quan programis el teu Arduino, t’hauràs d’assegurar que l’IDE està configurat correctament per a la placa que estàs utilitzant. Comprova-ho al menú ‘Eines → Port Serial’ per veure que el port està configurat correctament, i a ‘Eines → Targeta’ per comprovar que està assignat ‘Arduino U’.

Nota: per saber a quin Port Serial està connectat al teu Arduino, segueix aquests passos:
  1. Desconnecta Arduino de l’ordinador.
  2. Comprova ‘Eines → Port Serial’ per veure si està disponible.
  3. Connecta Arduino a l’ordinador.
  4. Entra altra vegada a ‘Eines → Port Serial’ i veuràs un port nou: aquest és el teu Arduino.
  5. Selecciona aquest port.

Entrades digitals

De la mateixa manera que pots assignar ’0′ o ’1′ a un Pin a l’Arduino, pots llegir el valor generat per un sensor que hi estigui connectat. En treballar amb Pins digitals, utilitzarem sensors que només poden estar ON i OFF.

Continua llegint

Beep

Juguem una mica amb sons. Com provablement ja saps, els sons són vibracions. El so d’una guitarra, per exemple, es produeix per les vibracions de les cordes. Per tant, per produir so amb Arduino necessitem alguna cosa que generi vibracions. A l’experiment següent farem això mitjançant un brunzidor piezoelèctric que piti.

Blink

Al llarg de la introducció a la programació, vam veure com fer petits programes i animacions amb l’ordinador. Enceníem i apagàvem els píxels a la pantalla de l’ordinador. Com saps, la placa Arduino no té pantalla, però té un LED, una petita làmpada que es pot encendre i apagar fàcilment usant un programa. Es pot dir que Ardunio té una pantalla d’un sol píxel.

Continua llegint

Compta en binari

El sistema decimal, el més utilitzat pels éssers humans, té un total de 10 símbols per representar els números: del 0 al 9. Combinant-los, podem representar qualsevol número: 13, 648, 2015, etc. De la mateixa manera, com dèiem, qualsevol cosa a l’univers pot ser representada per uns i zeros. Només es necessita un sistema per combinar-los.

Imagina quatre interruptors que poden estar encesos o apagats. Cada interruptor té el seu propi valor: ’8′, ’4′, ’2′ i ’1′. Quan tots estan apagats, representen ’0′ – 0000. Per representar el número u, simplement encenem l’interruptor ’1′ – 0001. Per representar el número dos, encenem l’interruptor del ’2′ – 0010. Ara pensa detingudament en la següent pregunta: com puc representar el número tres? N’hi ha prou amb encendre l’interruptor de l’1 i el del ’2′ – 0011, ja que 2 més 1 són 3.

Comences a entendre el funcionament que hi ha rere el sistema binari? Intentem obtenir el número set. Encenem els interruptors ’4′, ’2′ i ’1′ – 0111. I pel número 11? Encenem els interruptors ’8′, ’2′ i ’1′ – 1011.

Observa la següent taula per entendre’n encara millor el funcionament:

Senyals digitals

L’alfabet català consta de 26 lletres pel cap baix, amb els seus corresponents símbols per les majúscules, i utilitzem a més 10 símbols pels números. A diferència dels humans, els ordinadors treballen i es comuniquen amb només dos símbols: ’1′ i ’0′. Això és el que anomenem senyals digitals. Utilitzant una combinació d’aquests símbols, les màquines digitals poden representar tot allò que hi ha a l’univers.

Arduino representa un ’1′ amb 5 Volts, i un ’0′ amb 0 Volts. Quan dissenyem un programa per Arduino, representem un ’1′ escrivint HIGH i ’0′ escrivint LOW. Quan compiles el codi, el que realment succeeix és que allò que has escrit amb símbols humans es tradueix a uns i zeros, el llenguatge que els ordinadors entenen.

Quan parlem de senyals digitals i Arduino, parlem d’entrades i sortides. Una entrada digital significa que Arduino està rebent dades digitals d’un sensor, per exemple, un botó. Quan està llegint des d’un botó Arduino rebrà o bé 5V, HIGH o bé 0V, LOW, segons si el botó està premut o no ho està. Una sortida digital significa que Arduino està enviant dades digitals a un actuador, com per exemple un LED. Per encendre un LED, Arduino envia 5V, HIGH; i per apagar-lo, envia 0V, LOW.

Lògica binària

Una altra característica comuna a tots els ordinadors és que utilitzen lògica binària. Lògica binària significa que només hi ha dues possibilitats. Com que un ordinador usa només dos símbols, ’0′ i ’1′, diem que ells també fan servir la lògica binària. En aquest cas, ’1′ representa TRUE, mentre que ’0′ representa FALSE. Això és així perquè la lògica binària també pot ser usada per fer preguntes com ara ‘¿Ha arribat a una temperatura de 20 graus?’. La resposta és o bé certa o bé falsa i, per tant, pot ser representada per ’0′ o ’1′.

 

Pong

Juga a una versió simplificada del clàssic joc arcade Pong!

En aquest joc, un “pong” es mourà a través de cinc LEDs (VU-meter). A mesura que els jugadors vagin prement el botó, rebotarà d’una banda a l’altra. Els jugadors han de prémer el botó en el moment precís amb l’objectiu de retornar el pong.

Esgrima

Comprova el teu temps de reacció desafiant un oponent!

En aquest joc, els jugadors subjectaran les seves espases amb sensors Tilt. Guanyarà el primer que giri l’esquena quan el LED verd s’encengui aleatòriament.

Bàsquet

Prova d’encistellar!

En aquest joc, els participants intentaran fer botar una pilota de ping-pong i encistellar-la utilitzant un vas. Per guanyar, has de fer cinc punts. La puntuació es registrarà utilitzant un LDR, Light Dependent Resistor (resistència que depèn de la llum).

Reacciona

Posa a prova la teva capacitat de reacció! En aquest joc, un dels tres LEDs s’il·luminarà aleatòriament. Has de colpejar el sensor capacitatiu corresponent dins el temps de reacció. Si no ho aconsegueixes, el joc finalitza.

Curses

Corre amb els teus dits tan ràpid com puguis!

En aquest joc, el corredor ha de colpejar dos sensors repetidament amb l’objectiu de completar voltes. Per cada volta, s’encendrà un LED. Quan totes les voltes s’hagin completat, els LEDs parpellejaran per celebrar la victòria.