.. note:: Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati. **Perché unirti a noi?** - **Supporto esperto**: Risolvi i problemi post-vendita e le sfide tecniche con l'aiuto della nostra comunità e del nostro team. - **Impara e Condividi**: Scambia suggerimenti e tutorial per migliorare le tue competenze. - **Anteprime esclusive**: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime esclusive. - **Sconti speciali**: Approfitta di sconti esclusivi sui nostri prodotti più recenti. - **Promozioni festive e omaggi**: Partecipa a omaggi e promozioni durante le festività. 👉 Pronto per esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti oggi stesso! .. _clickable_dot: Punto Cliccabile ===================== Abbiamo già provato a disegnare grafica in movimento, rispondere agli eventi del mouse e controllare il LED. Quindi, perché non combinare queste funzioni e disegnare un punto cliccabile per controllare il LED? .. image:: img/clickable_dot_on.png **Componenti Necessari** In questo progetto, abbiamo bisogno dei seguenti componenti. È sicuramente conveniente acquistare un kit completo, ecco il link: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nome - ELEMENTI IN QUESTO KIT - LINK * - Kit Raphael - 337 - |link_Raphael_kit| Puoi anche acquistarli separatamente dai link qui sotto. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUZIONE AI COMPONENTI - LINK DI ACQUISTO * - :ref:`cpn_gpio_extension_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_led` - |link_led_buy| **Cablatura** .. image:: img/image49.png **Sketch** .. code-block:: arduino import processing.io.*; boolean state = false; int ledPin = 17; void setup() { GPIO.pinMode(ledPin, GPIO.OUTPUT); background(255); } void draw() { if (state == true) { GPIO.digitalWrite(ledPin, GPIO.LOW); fill(255, 0, 0); }else { GPIO.digitalWrite(ledPin, GPIO.HIGH); fill(155); } ellipse(width/2, height/2, width*0.75, height*0.75); } void mouseClicked() { // toggles state: if (2*dist(mouseX,mouseY,width/2, height/2)<=width*0.75) {state = !state;} } **Come funziona?** Questo progetto ha molto in comune con :ref:`blinking_dot`, ma con la differenza che qui lo stato viene alternato nell'evento del mouse. Ciò fa sì che il LED non lampeggi automaticamente, ma si accenda e si spenga con un clic del mouse. Nell'evento ``mouseClicked()``, la funzione ``dist()`` viene utilizzata per determinare la posizione del mouse al momento del clic, e il punto viene considerato cliccato solo se la distanza tra il mouse e il centro del punto è inferiore al raggio.