Comments
Description
Transcript
Peste e corna su Arduino - Flug
Peste e corna su Arduino Lapo Pieri Firenze Linux User Group - FLUG LinuxDay - 26/10/2013 S O N R A D I O T E K S O N R A D I O T E K S O N R A D I O T E K S O N R A D I O T E K S O N R A D I O T E K S O N R A D I O T E K Da Wikipedia (IT): “Arduino comprende una piattaforma hardware per il physical computing sviluppata presso l’Interaction Design Institute, un istituto di formazione post-dottorale con sede a Ivrea, fondato da Olivetti e Telecom Italia. Il nome della scheda deriva da quello di un bar di Ivrea (che richiama a sua volta il nome di Arduino d’Ivrea, Re d’Italia nel 1002) frequentato da alcuni dei fondatori del progetto.” S O N R A D I O T E K S O N R A D I O T E K arduino.acredine++; S O N R A D I O T E K Il 2013-04-29 22:47 asbesto ha scritto: > Stiamo cercando questa schedina: > > http://upload.wikimedia.org/wikipedia/commons/f/f8/Arduino_001.jpeg > Una scheda di sviluppo Atmel ben antecedente potrebbe farne le feci? Cioè, quest’Arduino ha scassato il cazzo mica poco. E’ un successo dovuto al marketing e non alla sostanza. E’ per i pigri, che se non erano pigri avrebbero fatto le stesse cose nel 78 con un Amico 2000. E’ antipatico a causa della moltitudine che ritiene di trovarsi di fronte ad una svolta epocale, a qualcosa di estremamente potente ed unico, un prodigio che ad ogni lettore di Wired Italia permetterà di di creare opere struggenti e/o di salvare bimbi negri, in entrambi i casi a colpi di LED lampeggianti. Io lascerei perdere. _______________________________________________ Hackmeeting mailing list [email protected] https://www.autistici.org/mailman/listinfo/hackmeeting S O N R A D I O T E K Cos’è, veramente, questo Arduino, dal punto di vista tecnico: • È una scheda di sviluppo basata su un microcontrollore molto diffuso con -di base- pochi componenti su di essa • È un pezzo di hw pronto da acquistare S O N R A D I O T E K Cos’è, veramente, questo Arduino, dal punto di vista tecnico: • È una scheda di sviluppo basata su un microcontrollore molto diffuso con -di base- pochi componenti su di essa • È un pezzo di hw pronto da acquistare S O N R A D I O T E K Arduino Severino (DIY) S O N R A D I O T E K Arduino Nano S O N R A D I O T E K Arduino Mega 2560 8 7 6 5 4 3 2 1 ADC15 ADC14 ADC13 ADC12 ADC11 ADC10 ADC9 ADC8 VIN TXD3 RXD3 POWER 8x1F-H8.5 pwm pwm pwm pwm PH6 PH5 PH4 PH3 TXD2 RXD2 79 69 68 67 66 65 64 63 27 18 17 16 15 14 13 12 (CLKO/ICP3/INT7)PE7 (T3/INT6)PE6 (OC3C/INT5)PE5 (OC3B/INT4)PE4 (OC3A/AIN1)PE3 (XCK0/AIN0)PE2 (TXD0)PE1 (RXD0/PCIN8)PE0 PJ7 PJ6(PCINT15) PJ5(PCINT14) PJ4(PCINT13) PJ3(PCINT12) PJ2(XCK3/PCINT11) PJ1(TXD3/PCINT10) PJ0(RXD3/PCINT9) PH7(T4) PH6(OC2B) PH5(OC4C) PH4(OC4B) PH3(OC4A) PH2(XCK2) PH1(TXD2) PH0(RXD2) (ADC7/TDI)PF7 (ADC6/TDO)PF6 (ADC5/TMS)PF5 (ADC4/TCK)PF4 (ADC3)PF3 (ADC2)PF2 (ADC1)PF1 (ADC0)PF0 90 91 92 93 94 95 96 97 (OC0B)PG5 (TOSC1)PG4 (TOSC2)PG3 (ALE)PG2 (RD)PG1 (WR)PG0 1 29 28 70 52 51 PE5 PE4 PE3 pwm pwm pwm PE1 PE0 (TX0) (RX0) 7 6 3 RN1B 10K RN1C 10K 8PB7 8PB6 2 7 COMMUNICATION RN2B 22R PWML 1k RN3C ADCL RN1A 10K 3 6 RN2C 22R 6 1 2 3 4 3 1u C10 100n C9 +5V 4 8 5 XTAL2(PC0) 1 XTAL1 32 AVCC 4 3 VCC GND 3 1 4 2 2 RESET C7 DTR XT1 VUCAP USBVCC RDRD+ UGND 27 31 30 29 28 33 1 GND 1 21 20 19 18 17 MISO2 16 MOSI2 15 SCK2 14 (PCINT7/OC0A/OC1C)PB7 (PCINT6)PB6 (PCINT5)PB5 (T1/PCINT4)PB4 (PD0/MISO/PCINT3)PB3 (PDI/MOSI/PCINT2)PB2 (SCLK/PCINT1)PB1 (SS/PCINT0)PB0 RESET(PC1/DW) 2 100n 10K 7 RN5B 2 D2 C15 22p BLM21 1 RESET-EN IC4 24 XT2 R2 1M 1 USBVCC 22R RN2A 1 MF-MSMF050-2 500mA 8 DRDD+ RD+ 22R 5 RN2D 4 L1 CD1206-S01575 MOSI2 GND RESET2 C8 100n F1 XVCC Y2 2 4 6 16MHz 8x1F-H8.5 8 14 7 15 6 16 5 17 4 18 3 19 2 20 1 21 8x1F-H8.5 PH4 pwm 8 7 PH3 pwm 7 6 pwm PE3 6 5 PG5 pwm 5 4 pwm PE5 4 3 pwm PE4 3 2 PE1 2 1 PE0 1 0 8x1F-H8.5 ADC7 8 ADC6 7 ADC5 6 ADC4 5 ADC3 4 ADC2 3 ADC1 2 ADC0 1 TXD3 RXD3 TXD2 RXD2 TXD1 RXD1 1 3 5 3x2M USB-B_TH X2 50 PD7 49 48 47 46 45 SDA 44 SCL 43 9 8 7 6 5 4 3 2 ICSP1 MISO2 SCK2 RESET2 GND GND PK7(ADC15/PCINT23) PK6(ADC14/PCINT22) PK5(ADC13/PCINT21) PK4(ADC12/PCINT20) PK3(ADC11/PCINT19) PK2(ADC10/PCINT18) PK1(ADC9/PCINT17) PK0(ADC8/PCINT16) +5V 13 12 11 10 9 8 10x1F-H8.5 2 82 83 84 85 86 87 88 89 pwm pwm 2 UCAP UVCC DD+ UGND PAD 22 23 25 26 5 (INT4/ICP1/CLK0)PC7 (OC1A/PCINT8)PC6 (PCINT9/OC1B)PC5 (PCINT10)PC4 (AIN2/PCINT11)PC2 USB boot En 8x1F-H8.5 (T0)PD7 (T1)PD6 (XCK1)PD5 (ICP1)PD4 (TXD1/INT3)PD3 (RXD1/INT2)PD2 (SDA/INT1)PD1 (SCL/INT0)PD0 PH6 PH5 C14 22p pwm pwm pwm +5V+3V3 GND PL7 PL6 PL5(OC5C) PL4(OC5B) PL3(OC5A) PL2(T5) PL1(ICP5) PL0(ICP4) 60 PC7 59 PC6 58 PC5 57 PC4 56 PC3 55 PC2 54 PC1 53 PC0 1 2 3 4 5 6 7 8 9 10 UGND PL7 PL6 PL5 PL4 PL3 PL2 PL1 PL0 ADCH 1 2 3 4 5 6 7 8 42 41 40 39 38 37 36 35 (A15)PC7 (A14)PC6 (A13)PC5 (A12)PC4 (A11)PC3 (A10)PC2 (A9)PC1 (A8)PC0 GND +5V XIO VCC VCC VCC VCC GND GND GND GND SCL SDA AREF GND USB 52 50 PL1 48 PL3 46 PL5 44 PL7 42 PG1 40 PD7 38 PC1 36 PC3 34 PC5 32 PC7 30 PA6 28 PA4 26 PA2 24 PA0 22 GND JP6 26 PB7 pwm 25 PB6 pwm 24 PB5 pwm 23 PB4 pwm 22 PB3 (MISO) 21 PB2 (MOSI) 20 PB1 (SCK) 19 PB0 P$2 P$1 GND (SCK) PB1 (MISO) PB3 (OC0A/OC1C/PCINT7)PB7 (OC1B/PCINT6)PB6 (OC1A/PCINT5)PB5 (OC2A/PCINT4)PB4 (MISO/PCINT3)PB3 (MOSI/PCINT2)PB2 (SCK/PCINT1)PB1 (SS/PCINT0)PB0 10 31 61 80 11 32 62 81 71 PA7 72 PA6 73 PA5 74 PA4 75 PA3 76 PA2 77 PA1 78 PA0 P$1 C6 100n (AD7)PA7 (AD6)PA6 (AD5)PA5 (AD4)PA4 (AD3)PA3 (AD2)PA2 (AD1)PA1 (AD0)PA0 Z2 AREF AVCC AGND Z1 XTAL1 98 100 99 CG0603MLC-05E C5 100n (MOSI) CG0603MLC-05E GND C4 100n SCL SDA PB2 USHIELD P$2 RESET XTAL2 34 AREF GND 53 PB0 (SS) 51 PB2 (MOSI) 49 PL0 47 PL2 45 PL4 43 PL6 41 PG0 39 PG2 37 PC0 35 PC2 33 PC4 31 PC6 29 PA7 27 PA5 25 PA3 23 PA1 2 3x2M 30 33 XTAL1 XTAL2 100n 35 33 31 29 27 25 23 21 19 17 15 13 11 9 7 5 3 1 2 4 6 IC3 RESET +5V 18x2F-H8.5 D3 GND GND XTAL1 16MHZ CSTCE16M0V53-R0 AREF C3 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 1 3 5 JP5 GND Y1 R1 1M +5V +5V ICSP PB3 PB1 RESET (MISO) (SCK) GND 2x2M - NM 2 8PB5 8PB4 7 L13 13 12 11 TXL 10 RXL 9 M8RXD 8 M8TXD 7 6 (CTS/HWB/AIN6/TO/INT7)PD7 (RTS/AIN5/INT6)PD6 (XCK/AIN4/PCINT12)PD5 (INT5/AIN3)PD4 (TXD1/INT3)PD3 (RXD1/AIN1/INT2)PD2 (AIN0/INT1)PD1 (OC0B/INT0)PD0 5 1 LMV358IDGKR GND GND 1 8 IC7A 2 C1 22p 4 3 PC2 47u GREEN ON 1k RN3D C2 100n 8 GND 1 RN3A 1k YELLOW L 1k RN3B GND 4 2 + + IN OUT 1 PWRIN 3 RESET +5V IC1 NCP1117ST50T3G VIN D1 M7 PC1 47u RN5A 10K +5V 3 2 2 1 1 3 CD1206-S01575 +5V TM Arduino MEGA 2560 X1 POWERSUPPLY_DC21MMX GND 3 6 +5V RN4C 1k TX YELLOW ATMEGA16U2-MU GROUND GND 4 PE0 2 7 1 8 RN4B 1k M8RXD 5 RX RN4D 1k YELLOW RN1D 10K M8TXD PE1 PG5 pwm RN4A 1k PG2 PG1 PG0 RESET 4 3 GND ATMEGA2560-16AU 5 2 1 TS42031-160R-TR-7260 RESET 5 IC7B 7 +3V3 GATE_CMD 6 OUT 5 3 1 ON/OFF 2 GND NC/FB 4 IN LMV358IDGKR Reference Designs ARE PROVIDED "AS IS" AND "WITH ALL FAULTS. Arduino DISCLAIMS ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, REGARDING PRODUCTS, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Arduino may make changes to specifications and product descriptions at any time, without notice. The Customer must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Arduino reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The product information on the Web Site or Materials is subject to change without notice. Do not finalize a design with this information. ARDUINO is a registered trademark. 1u 8 3 5 4 4 C11 100n GND CMP RN5D 10K RN5C 10K 6 VIN C13+3V3 +3V3 +5V +5V C12 100n +5V GND GND GND USBVCC +5V T1 FDN340P S O N R A D I O T E K HW DIY?! S O N R A D I O T E K Cos’è, veramente, questo Arduino, dal punto di vista tecnico: • Ha un sistema di sviluppo sw tutto suo S O N R A D I O T E K const int buttonPin = 2; const int ledPin = 13; // the number of the pushbutton pin // the number of the LED pin // variables will change: int buttonState = 0; // variable for reading the pushbutton status void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); } void loop(){ // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); // turn LED on } else { digitalWrite(ledPin, LOW); // turn LED off } } S O N R A D I O T E K Ma un bel $ avr-gcc --mmcu=atmega328 blink.c -o blink non basterebbe?! S O N R A D I O T E K E allora perché ha tanto successo?! Due motivi S O N R A D I O T E K IT’S COOL (o almeno cosı̀ ha detto qualcuno) S O N R A D I O T E K S O N R A D I O T E K VOGLIO FARE TUTTO SENZA CAPIRE NULLA (o almeno il meno possibile) S O N R A D I O T E K S O N R A D I O T E K La pubbllicita‘ del Microsoft Office negli anni novanta diceva (più o meno): “(senza studiare il manuale) in pochi attimi puoi gia‘ fare tutto! Wow!” S O N R A D I O T E K Luke: ma allora il lato oscuro è più forte? Yoda: no, non più forte! Più facile, più rapido, più seducente. . . S O N R A D I O T E K S O N R A D I O T E K Larga la foglia, stretta la via, dite la vostra ch’io ho detto la mia. . . lapoCHIOCCIOLINAinventati.org S O N R A D I O T E K