...

Peste e corna su Arduino - Flug

by user

on
Category: Documents
36

views

Report

Comments

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
Fly UP