Your SlideShare is downloading. ×
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Open Hardware: Arduino, un prodotto italiano
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Open Hardware: Arduino, un prodotto italiano

4,550

Published on

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
4,550
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
93
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Riccardo Lemmi Open hardware: Arduino, un prodotto italiano.
  • 2. Riccardo Lemmi Open Hardware Open source hardware is hardware whose design is made publicly available so that anyone can study, modify, distribute, make and sell the design or hardware based on that design. The hardware’s source, the design from which it is made, is available in the preferred format for making modifications to it. Ideally, open source hardware uses readily-available components and materials, standard processes, open infrastructure, unrestricted content, and open-source design tools to maximize the ability of individuals to make and use hardware. Open source hardware gives people the freedom to control their technology while sharing knowledge and encouraging commerce through the open exchange of designs.
  • 3. Riccardo Lemmi Open Hardware ● Il design è disponibile pubblicamente ● Il design può essere studiato, modificato, distribuito, costruito e venduto ● Il design è disponibile in un formato che ne permette la modifica ● Il design dovrebbe basarsi su componenti e materiali facili da trovare, non sottoposti a restrinzioni (copyright o patent) ● I tool utilizzati per la progettazione dovrebbero essere open source.
  • 4. Riccardo Lemmi Open Hardware Apparati elettronici ma non solo Progetti (design) Realizzazioni (how to)
  • 5. Riccardo Lemmi Open Hardware Esempi di OH: BeagleBoard Reprap Openmoko Arduino
  • 6. Riccardo Lemmi Open Hardware BeagleBoard È una scheda a basso costo, senza ventola con performance e espandibilità tipiche del laptop. È basato sul processore ARM Cortex-A8 che gira fino a 600MHz http://beagleboard.org/
  • 7. Riccardo Lemmi Open Hardware Reprap È una stampante 3D di dimensioni contenute. È capace di stampare oggetto in plastica. Grazie al suo design è in grado di produrre le parti per costruire un nuovo RepRap. Progetto simile: MakerBot http://reprap.org/
  • 8. Riccardo Lemmi Open Hardware Openmoko È stato il primo progetto open source e open hardware di cellulare. Il sistema operativo era una distribuzione Linux-based pensata specificatamente per l'uso in piattaforme mobili. http://en.wikipedia.org/wiki/Openmoko
  • 9. Riccardo Lemmi Open Hardware ● Generatore eolico ● Lavatrice ● Pannelli solari ● http://gardenbot.org/ ● http://www.instructables.com/
  • 10. Riccardo Lemmi Arduino ● Arduino Uno è una scheda a microcontrollore basata sul processore ATmega328 ● 14 ingressi/uscite digitali ● 6 PWM ● 6 ingressi analogici ● Il processore gira a 16 MHz ● La scheda è dotata di porta USB utilizzabile per dialogare con un PC ed un firmware che semplifica la procedura di programmazzione.
  • 11. Riccardo Lemmi Arduino Ma per cosa si usa? Arduino viene usato per sviluppare oggetti interattivi. I segnali di ingresso sono presi da interruttori e sensori. I segnali di uscita controllano luci, motori e altri dispositivi Può essere usato da solo o in collaborazione con un PC
  • 12. Riccardo Lemmi Arduino Microcontrollore http://en.wikipedia.org/wiki/Microcontroller Un “microcontrollore” è computer su un unico circuito integrato. Contiene processore, memoria e un insieme programmabile di porte. I programmi possono essere salvati su memoria ROM o Flash ed è disponibile una piccola memoria RAM.
  • 13. Riccardo Lemmi Arduino AVR Atmega ● High Performance, Low Power AVR® 8-Bit Microcontroller – RISC Architecture, 20 MIPS Throughput at 20 MHz ● High Endurance Non-volatile Memory segments – Flash program memory, EEPROM, SRAM ● Peripheral Features – Two 8-bit Timer/Counters , One 16-bit Timer/Counter – Real Time Counter with Separate Oscillator – Six PWM Channels – 8-channel 10-bit ADC in TQFP and QFN/MLF package – 6-channel 10-bit ADC in PDIP Package – Programmable Serial USART – Master/Slave SPI Serial Interface – Byte-oriented 2-wire Serial Interface (Philips I2C compatible) – Programmable Watchdog Timer with Separate On-chip Oscillator – On-chip Analog Comparator – Interrupt and Wake-up on Pin ChangeN/MLF
  • 14. Riccardo Lemmi Arduino
  • 15. Riccardo Lemmi Arduino Digital I/O ● Sono porte bidirezionali con resistenza di pull-up ● Ogni porta è programmabile tramite tre registri di un bit: ● DDxn: controlla la direzione ● PORTxn: controlla la resistenza di pull-up ● PINxn: restituisce il valore in ingresso
  • 16. Riccardo Lemmi Arduino A/D converter ● Risoluzione a 10 bit ● Tempo di conversione da 13 a 260 us ● Interrupt su fine conversione
  • 17. Riccardo Lemmi Arduino Counter ● Contatore/Timer a 8 bit ● Supporto PWM ● Permette di generare forme d'onda
  • 18. Riccardo Lemmi Arduino 2-wire serial ● Comunicazioni seriali a 2 fili ● Gestisce il protocollo (master/slave, arbitration) ● Protocollo I2C
  • 19. Riccardo Lemmi Arduino Linguaggio di programmazione Arduino si programma usando un linguaggio la cui sintassi è simile al C/C++ con alcune semplificazioni e modifiche.
  • 20. Riccardo Lemmi Arduino void setup () { //... setup pins } void loop () { //... main loop }
  • 21. Riccardo Lemmi Arduino /* SOSOSOS... */ int ledPin = 13; // LED connected to digital pin 13 /* dot and line defs */ void setup() { // run once, when the sketch starts pinMode(ledPin, OUTPUT); // sets the digital pin as output } void loop() { // run over and over again dot(); dot(); dot(); line(); line(); line(); }
  • 22. Riccardo Lemmi Arduino void dot() { digitalWrite(ledPin, HIGH); // sets the LED on delay(500); // waits for a second digitalWrite(ledPin, LOW); // sets the LED off delay(200); // waits for a second } void line() { digitalWrite(ledPin, HIGH); // sets the LED on delay(1500); // waits for a second digitalWrite(ledPin, LOW); // sets the LED off delay(200); // waits for a second }
  • 23. Riccardo Lemmi Arduino Digital output/input pinMode(pin, OUTPUT); digitalWrite(pin, LOW); digitalWrite(pin, HIGH); pinMode(s, INPUT); if (digitalRead(s) == LOW) { p++; } else { p--; }
  • 24. Riccardo Lemmi Arduino Analog input/output int v = analogRead(pin); // value between 0 and 1023 analogWrite(a, v); // set analog out pin a to value 0 to 255
  • 25. Riccardo Lemmi Arduino Interrupt attachInterrupt(interrupt, function, mode) mode per dichiarare come viene lanciata l'interruzione LOW: quando il pin va in stato logico basso CHANGE: quando il pin cambia stato RISING : quando il pin passa da livello logico basso ad alto FALLING: quando il pin passa da livello logico alto a basso 0 per il pin 2 e 1 per il pin 3
  • 26. Riccardo Lemmi Arduino Interrupt int pin = 13; volatile int state = LOW; void setup() { pinMode(pin, OUTPUT); attachInterrupt(0, blink, CHANGE); } void loop() { digitalWrite(pin, state); } void blink() { state = !state; }
  • 27. Riccardo Lemmi Arduino Librerie ● Comunicazione seriale ● Driver LCD ● Eeprom ● Servo motori ● Motori passo=passo ● Accellerometri ● GPS ● Firmata (!) ● ... (vedi arduino-00XX/hardware/libraries/)
  • 28. Riccardo Lemmi Arduino Arduino IDE Integrated Developing Environment Basata sulla IDE di Processing http://www.processing.org/ http://wiring.org.co/
  • 29. Riccardo Lemmi Arduino Fritzing È un software open-source per disegnare i protipi di sistemi basati su Arduino. La filosofia dietro il progetto è quella di aiutare gli utenti a documentare i propri progetti, a condividerli con gli altri, a insegnare l'elettronica e a creare i circuiti stampati.
  • 30. Riccardo Lemmi Arduino Esempi di interfacciamento http://wiring.org.co/learning/basics/
  • 31. Riccardo Lemmi Arduino Pulsante Si rileva la caduta di tensione sulla resistenza v = digitalRead(pin)
  • 32. Riccardo Lemmi Arduino LED La scrittura di uno stato alto accende il LED digitalWrite(pin, LOW);
  • 33. Riccardo Lemmi Arduino Potenziometro v = analogRead(pin)
  • 34. Riccardo Lemmi Arduino Relè digitalWrite(pin, LOW);
  • 35. Riccardo Lemmi Arduino Motore digitalWrite(pin, LOW); analogWrite(pin, value);
  • 36. Riccardo Lemmi Arduino Sensore di temperatura LM35 v = analogRead(pin)
  • 37. Riccardo Lemmi Arduino Domande
  • 38. Riccardo Lemmi Riferimenti http://blog.makezine.com/ http://blog.craftzine.com/ http://en.wikipedia.org/wiki/Open_hardware http://en.wikipedia.org/wiki/List_of_open_source_hardware_projects http://www.openhardwaresummit.org/ Atmel AVR Atmega datasheet http://arduino.cc/en/Main/ArduinoBoardUno http://en.wikipedia.org/wiki/Arduino http://www.maartenlamers.com/ThisIsWiring/ http://www.wiring.org.co/ http://www.processing.org/ http://fritzing.org/welcome/ http://www.oswash.org/ http://www.instructables.com/

×