Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Like this? Share it with your network

Share

Open Hardware: Arduino, un prodotto italiano

on

  • 5,079 views

 

Statistics

Views

Total Views
5,079
Views on SlideShare
5,074
Embed Views
5

Actions

Likes
0
Downloads
92
Comments
0

2 Embeds 5

http://kadm.ath.cx 4
http://kadm 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Open Hardware: Arduino, un prodotto italiano Presentation Transcript

  • 1. Open hardware: Arduino, un prodotto italiano. Riccardo Lemmi
  • 2. 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. Riccardo Lemmi
  • 3. 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. Riccardo Lemmi
  • 4. Open Hardware Apparati elettronici ma non solo Progetti (design) Realizzazioni (how to) Riccardo Lemmi
  • 5. Open Hardware Esempi di OH: BeagleBoard Reprap Openmoko Arduino Riccardo Lemmi
  • 6. 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/ Riccardo Lemmi
  • 7. 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/ Riccardo Lemmi
  • 8. 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 Riccardo Lemmi
  • 9. Open Hardware ● Generatore eolico ● Lavatrice ● Pannelli solari ● http://gardenbot.org/ ● http://www.instructables.com/ Riccardo Lemmi
  • 10. 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. Riccardo Lemmi
  • 11. 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 Riccardo Lemmi
  • 12. 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. Riccardo Lemmi
  • 13. 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 Riccardo Lemmi
  • 14. Arduino Riccardo Lemmi
  • 15. 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 Riccardo Lemmi
  • 16. Arduino A/D converter ● Risoluzione a 10 bit ● Tempo di conversione da 13 a 260 us ● Interrupt su fine conversione Riccardo Lemmi
  • 17. Arduino Counter ● Contatore/Timer a 8 bit ● Supporto PWM ● Permette di generare forme d'onda Riccardo Lemmi
  • 18. Arduino 2-wire serial ● Comunicazioni seriali a 2 fili ● Gestisce il protocollo (master/slave, arbitration) ● Protocollo I2C Riccardo Lemmi
  • 19. Arduino Linguaggio di programmazione Arduino si programma usando un linguaggio la cui sintassi è simile al C/C++ con alcune semplificazioni e modifiche. Riccardo Lemmi
  • 20. Arduino void setup () { //... setup pins } void loop () { //... main loop } Riccardo Lemmi
  • 21. 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(); } Riccardo Lemmi
  • 22. 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 } Riccardo Lemmi
  • 23. Arduino Digital output/input pinMode(pin, OUTPUT); digitalWrite(pin, LOW); digitalWrite(pin, HIGH); pinMode(s, INPUT); if (digitalRead(s) == LOW) { p++; } else { p--; } Riccardo Lemmi
  • 24. 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 Riccardo Lemmi
  • 25. 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 Riccardo Lemmi
  • 26. 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; } Riccardo Lemmi
  • 27. Arduino Librerie ● Comunicazione seriale ● Driver LCD ● Eeprom ● Servo motori ● Motori passo=passo ● Accellerometri ● GPS ● Firmata (!) ● ... (vedi arduino-00XX/hardware/libraries/) Riccardo Lemmi
  • 28. Arduino Arduino IDE Integrated Developing Environment Basata sulla IDE di Processing http://www.processing.org/ http://wiring.org.co/ Riccardo Lemmi
  • 29. 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. Riccardo Lemmi
  • 30. Arduino Esempi di interfacciamento http://wiring.org.co/learning/basics/ Riccardo Lemmi
  • 31. Arduino Pulsante Si rileva la caduta di tensione sulla resistenza v = digitalRead(pin) Riccardo Lemmi
  • 32. Arduino LED La scrittura di uno stato alto accende il LED digitalWrite(pin, LOW); Riccardo Lemmi
  • 33. Arduino Potenziometro v = analogRead(pin) Riccardo Lemmi
  • 34. Arduino Relè digitalWrite(pin, LOW); Riccardo Lemmi
  • 35. Arduino Motore digitalWrite(pin, LOW); analogWrite(pin, value); Riccardo Lemmi
  • 36. Arduino Sensore di temperatura LM35 v = analogRead(pin) Riccardo Lemmi
  • 37. Arduino Domande Riccardo Lemmi
  • 38. 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/ Riccardo Lemmi http://www.instructables.com/