Nota

Ciao, benvenuto nella Community di SunFounder per appassionati di Raspberry Pi, Arduino ed ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti?

  • Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime Esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime speciali.

  • Sconti Speciali: Godi di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni e Omaggi Festivi: Partecipa a omaggi e promozioni festive.

👉 Pronto a esplorare e creare con noi? Clicca su [qui] e unisciti oggi stesso!

6.1 Pianoforte di Frutta

Hai mai desiderato suonare il pianoforte ma non potevi permettertelo? O forse vuoi solo divertirti a creare un pianoforte di frutta fai-da-te? Bene, questo progetto fa per te!

Con solo alcuni sensori tattili sulla scheda ESP32, ora puoi suonare i tuoi brani preferiti e goderti l’esperienza di suonare il pianoforte senza spendere una fortuna.

Componenti Necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

È sicuramente conveniente acquistare un intero kit, ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK

Kit di Partenza ESP32

320+

ESP32 Starter Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE AI COMPONENTI

LINK DI ACQUISTO

ESP32 Scheda

ACQUISTA

Estensione Fotocamera ESP32

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

Cicalino (Buzzer)

ACQUISTA

Transistor

ACQUISTA

Informazioni sui Pin Touch

Il microcontrollore ESP32 dispone di funzionalità touch integrata, che ti consente di utilizzare alcuni pin della scheda come ingressi sensibili al tocco. Il sensore touch funziona misurando le variazioni di capacità sui pin touch, causate dalle proprietà elettriche del corpo umano.

Ecco alcune caratteristiche principali del sensore touch sull’ESP32:

  • Numero di pin touch

    L’ESP32 ha fino a 10 pin touch, a seconda della scheda specifica. I pin touch sono generalmente etichettati con una «T» seguita da un numero.

    • GPIO4: TOUCH0

    • GPIO0:TOUCH1

    • GPIO2: TOUCH2

    • GPIO15: TOUCH3

    • GPIO13: TOUCH4

    • GPIO12: TOUCH5

    • GPIO14: TOUCH6

    • GPIO27: TOUCH7

    • GPIO33: TOUCH8

    • GPIO32: TOUCH9

    Nota

    I pin GPIO0 e GPIO2 sono utilizzati rispettivamente per il bootstrapping e il flashing del firmware sull’ESP32. Questi pin sono anche collegati al LED e al pulsante integrati. Pertanto, non è generalmente consigliato utilizzare questi pin per altri scopi, poiché potrebbe interferire con il normale funzionamento della scheda.

  • Sensibilità

    Il sensore touch sull’ESP32 è molto sensibile e può rilevare anche piccoli cambiamenti di capacità. La sensibilità può essere regolata tramite impostazioni software.

  • Protezione ESD

    I pin touch sull’ESP32 hanno una protezione ESD (Electrostatic Discharge) integrata, che aiuta a prevenire danni alla scheda dovuti all’elettricità statica.

  • Multitouch

    Il sensore touch sull’ESP32 supporta il multitouch, il che significa che puoi rilevare più eventi di tocco contemporaneamente.

Schema Elettrico

../../_images/circuit_6.1_fruit_piano.png

L’idea alla base di questo progetto è utilizzare i sensori touch per rilevare quando un utente tocca un pin specifico. Ogni pin touch è associato a una nota specifica e, quando l’utente tocca un pin, la nota corrispondente viene riprodotta sul buzzer passivo. Il risultato è un modo semplice ed economico per godersi l’esperienza di suonare il pianoforte.

Cablaggio

../../_images/6.1_fruit_piano_bb.png

In questo progetto, è necessario rimuovere l’ESP32 scheda dalla scheda di espansione e inserirlo nella breadboard. Questo perché alcuni pin sulla scheda di espansione sono collegati a resistori, il che influirà sulla capacità dei pin.

Codice

Nota

  • Apri il file 6.1_fruit_piano.py situato nel percorso esp32-starter-kit-main\micropython\codes, oppure copia e incolla il codice in Thonny. Poi, clicca su «Esegui Script Corrente» o premi F5 per eseguirlo.

  • Assicurati di selezionare l’interprete «MicroPython (ESP32).COMxx» nell’angolo in basso a destra.

from machine import Pin, PWM, TouchPad
import time

# Definisci i pin touch e le loro note corrispondenti
touch_pins = [4, 15, 13, 12, 14, 27, 33, 32]  # Usa pin validi con capacità touch
notes = [262, 294, 330, 349, 392, 440, 494, 523]

# Inizializza i sensori touch
touch_sensors = [TouchPad(Pin(pin)) for pin in touch_pins]

# Inizializza il buzzer
buzzer = PWM(Pin(25), duty=0)

# Funzione per riprodurre un tono
def play_tone(frequency, duration):
    buzzer.freq(frequency)
    buzzer.duty(512)
    time.sleep_ms(duration)
    buzzer.duty(0)

touch_threshold = 200

# Loop principale per controllare gli input touch e riprodurre la nota corrispondente
while True:
    for i, touch_sensor in enumerate(touch_sensors):
        value = touch_sensor.read()
        print(i,value)
        if value < touch_threshold:
            play_tone(notes[i], 100)
            time.sleep_ms(50)
        time.sleep(0.01)

Puoi collegare frutti a questi pin ESP32: 4, 15, 13, 12, 14, 27, 33, 32.

Quando lo script è in esecuzione, toccando questi frutti verranno riprodotte le note C, D, E, F, G, A, B e C5.

Nota

Touch_threshold deve essere regolato in base alla conduttività dei diversi frutti.

Puoi eseguire prima lo script per vedere i valori stampati dalla shell.

0 884
1 801
2 856
3 964
4 991
5 989
6 1072
7 1058

Dopo aver toccato i frutti sui pin 12, 14 e 27, i valori stampati sono i seguenti. Pertanto, ho impostato touch_threshold a 200, il che significa che quando viene rilevato un valore inferiore a 200, si considera che sia stato toccato, e il buzzer emetterà note diverse.

0 882
1 810
2 799
3 109
4 122
5 156
6 1068
7 1055