====== Corso GWL "Arduino Esperto" - a.s. 2016/17 ====== ===== Lezione 1 ===== ==== Raspberry Pi ==== **[[https://www.raspberrypi.org/|RaspberryPi.org]]** * [[https://en.wikipedia.org/wiki/ARM_architecture|Pagina di Wikipedia dedicata all'architettura ARM]]; in particolare si noti la [[https://en.wikipedia.org/wiki/List_of_ARM_microarchitectures|complessa numerazione di famiglie e architetture]] * [[http://community.wolfram.com/content?curTag=raspberry%20pi|Community di Mathematica disponibile gratuitamente per RPi]] ==== Arduino ==== **[[http://arduino.org/|Arduino.org]] e/o [[https://www.arduino.cc/|Arduino.cc]]** * [[https://www.arduino.cc/en/main/boards|Panoramica sulle diverse board Arduino]] //N.B. in particolare notare Arduino Uno (la versione più diffusa), Arduino Mega (con molti pin), Arduino Nano (molto compatta) e Arduino Mini (piccola e senza USB)// * [[https://goo.gl/ymWqVt|Arduino Pinout]] //(stampa consigliata)// * [[http://archive.fabacademy.org/archives/2017/opendot/students/225/exercise08.html|Far lampeggiare un led con un microcontroller ATMega usando diversi linguaggi]] * [[https://www.arduino.cc/en/Main/Software|L'ambiente di programmazione (da scaricare e installare)]] * [[https://www.arduino.cc/en/Reference/HomePage|Reference per le funzioni/librerie principali del linguaggio di programmazione (derivato da Wiring)]] * [[https://github.com/liffiton/Arduino-Cheat-Sheet/raw/master/Arduino%20Cheat%20Sheet.pdf|Cheatsheet di riassunto del linguaggio]] //(stampa consigliata)// * [[https://www.arduino.cc/en/tutorial/blink|Il programma Blink per far lampeggiare il led]] === Per casa === * Caricare su Arduino il codice Blink per far lampeggiare il led built-in connesso al pin 13 ===== Lezione 2 ===== ==== Arduino: input e output ==== * [[http://0.30000000000000004.com/|Matematica in virgola mobile (ovvero 0.1 + 0.2 non fa 0.3)]] * [[https://www.arduino.cc/en/reference/map|funzione map()]] * [[https://www.arduino.cc/en/reference/millis|funzione millis()]] * [[https://www.arduino.cc/en/reference/serial|classe Serial()]] === LDR === * Fotoresistenza / Light-Dependent Resistor - [[https://it.wikipedia.org/wiki/Fotoresistenza|IT]] | [[https://en.wikipedia.org/wiki/Photoresistor|EN]] * [[https://it.wikipedia.org/wiki/Partitore_di_tensione|Partitore di tensione]] === LED === * [[https://en.wikipedia.org/wiki/LED_circuit|Circuito di pilotaggio del LED]] per limitare la corrente * [[http://dangerousprototypes.com/docs/Basic_Light_Emitting_Diode_guide#Voltage_drop_or_forward_voltage|Tabella contenente i valori indicativi di voltage drop in base al colore]] * [[http://led.linear1.org/1led.wiz|Calcolatore dei valori della resistenza in serie al LED]] * [[http://www.digikey.com/en/resources/conversion-calculators/conversion-calculator-resistor-color-code-4-band|Convertitore per il codice colori delle resistenze]] === Esempi === * {{:arducourse:esercizi.pdf|Circuiti realizzati in aula}} * {{:arducourse:led_onoff.zip|Codice di controllo del LED ON/OFF}} * {{:arducourse:led_pwm.zip|Codice di controllo del LED con PWM}} * {{:arducourse:ldr_serial.zip|Codice di lettura del LDR}} === Per casa === * Realizzare nuovamente i circuiti su breadboard e disegnarli con il software libero [[http://fritzing.org/home/|Fritzing]] ===== Lezione 3 ===== ==== Arduino e Python su Raspberry Pi ==== === Circuito con potenziometro === * [[https://www.arduino.cc/en/Tutorial/PWM|Il controllo in PWM]] * [[https://en.wikipedia.org/wiki/Potentiometer|Potenziometro]] * {{:arducourse:esercizi2.pdf|Circuito di lettura del potenziometro}} * {{:arducourse:potenziometro.zip|Codice di lettura del potenziometro e controllo LED in PWM}} === Librerie Python utili === * [[https://pythonhosted.org/pyserial/|pyserial]] - libreria per l'utilizzo della seriale/usb con python * [[https://docs.scipy.org/doc/numpy-dev/user/quickstart.html|numpy]] - potente libreria matematica per python * [[http://matplotlib.org/api/pyplot_api.html|pyplot]] - modulo per il plotting in stile MATLAB (è parte della potente libreria grafica 2D Matplotlib) === Codici Python per usare la seriale === * {{:arducourse:serial_reader.zip|Lettura Arduino da porta seriale}} * {{:arducourse:random_plot.zip|Plot realtime di dati random}} * {{:arducourse:plot_reader.zip|Plot realtime di dati letti da Arduino}}