Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El...

108
Arduino i Raspberry Pi 5 de maig 2018

Transcript of Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El...

Page 1: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Arduino i Raspberry Pi

5 de maig 2018

Page 2: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Arduino i Raspberry PiPart d'Arduino (matí)

2

1. El microcontrolador Arduino2. Sensors i actuadors. Exemples pràctics3. Maneres de programar un Arduino:

* Per blocs * Des de l'IDE d'Arduino

4. Connexió de perifèrics a l'Arduino: entrades i sortides digitals, SPI, I2C, UART

5. Comunicació entre l'Arduino i l'ordinador 6. Bluetooth i RS485

Page 3: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoL'Arduino Nano

3

Page 4: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoPlaques complementàries ( shield / hat )

4

La majoria de plaques complementàries venen amb biblioteques i arxius de capçaleraque acceleren el procés de funcionament.

http://arduino.cc/en/pmwiki.php?n=Main/ArduinoShields

Page 5: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoInteracció amb el món físic

5

Sensors Actuadors

Lecturad'informació

Escripturad'informació

Page 6: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoAutomatització del món físic

6

Sensors Actuadors

Entradad'informació--> Lectura

Sortidad'informació

Escriptura -->

Sortidade sensors

Escriptura -->

Entradad'actuadors--> Lectura

Page 7: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoLectura de l'estat d'un sensor digital

7

Cert : 1.8v, 3.3V, 5VFals : 0v

True / FalseHigh / Low

Page 8: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoLectura de l'estat d'un sensor digital

8

uSW : Microrruptor (dip-switch, microswitch)

Pull-up : Connexió d'un resistor a alimentació per assegurar un nivell lògic a una entrada digital

Page 9: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoLectura de la informació d'un teclat

9

Page 10: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoLectura d'informació analògica

10

0..3,3V0..5V0..10V

-10..10V

Page 11: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoProtocols I2C (TWI), SPI i 1-Wire

11

SPI : Serial Peripheral Interface Bus

I2C : Inter-Integrated Circuit

1-Wire

Page 12: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoEscriptura d'estat a un actuador digital

12

LED : Díode emissor de llum

Page 13: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoEscriptura d'estat a un actuador digital

13

Relé : Sistema electromecànic que modifica l'estat d'un commutador. Amb una tensió de control petita s'activa un electroimant podent controlar tensions molt superiors.

Page 14: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoLa placa S4A Programming Learning Board

14

Placa desenvolupada amb l'entorn dedisseny integrat de programari lliure

Page 15: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoMake It!

15

http://www.makeit.cat

Page 16: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoMake It!

16

http://makeit.cat/cat/

Page 17: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoEntorn de l'S4A

17

www.s4a.catCodis d'exemple d'aquesta presentació per a l'S4A

Page 18: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoMicroprogramari de l'S4A

18

El microprogramari és el programari del maquinari

Català Anglès

Programari SoftwareMaquinari HardwareMicroprogramari Firmware

Microprogramari per l'Arduino per funcionar amb l'S4A : http://vps34736.ovh.net/S4A/S4AFirmware16.ino

Arduino Nano

Page 19: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardBotons i leds

19

A4A532

10111213

Codis d'exemple d'aquesta presentació per a l'S4A

Page 20: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardTeclat de membrana i leds

20

A4

A5

3

2

1011

1213

A4

A5

3

2

Page 21: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardBotons, leds i relés

21

Page 22: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning Board

Concepte de relé

22

Page 23: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardBotons i brunzidor

23

A4A532

9

PWM

Page 24: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardPotenciòmetre i brunzidor

24

9

A0

Page 25: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardPotenciòmetre i servomotor

25

8A0

Page 26: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

26

S4A Progamming Learning BoardServo

http://datasheet.sparkgo.com.br/SG90Servo.pdf

Page 27: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

27

S4A Progamming Learning BoardServo

http://datasheet.sparkgo.com.br/SG90Servo.pdf

Page 28: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

28

S4A Progamming Learning BoardServo

http://www.ermicro.com/blog/wp-content/uploads/2009/02/servo_01.jpg

Page 29: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardPotenciòmetre i servomotor

29

Page 30: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardPotenciòmetre i servomotor

30

Page 31: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardLDR i servomotor

31

Page 32: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardLDR i servomotor

32

Page 33: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardJoystick i servomotors

33

Per a fer servir el joystick desconnecteu el sensor de temperatura i el sensor infraroig

Page 34: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardSensor d'infrarojos i brunzidor

34

Per a fer servir el sensor infraroig desconnecteu el joystick

Page 35: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

S4A Progamming Learning BoardSensor de temperatura LM35

35

Per a fer servir el sensor de temperatura desconnecteu el joystick

Page 36: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador Arduino36

BUS : Sistema digital que transfereix dades entre dispositius electrònics

eCat System : Dues tipologies de BUS, dades (8 bits) i comunicacions

Cable pla 5x2 a 5x2 (0104A)

http://electronics.cat/php/common/index.php?lang=ca&page=044

Page 37: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador Arduino37

nano-eCat

http://electronics.cat/php/common/index.php?lang=ca&page=101

Placa 0101 v4

Placa convertidora de l'Arduino Nano al sistema de bus lliure eCat System

Page 38: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

El microcontrolador ArduinoNivells de tensió

38

http://electronics.cat/php/common/index.php?lang=ca&page=508

Page 39: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Maneres de programar un ArduinoSimulació per blocs a TinkerCad

39

https://www.tinkercad.com/

Page 40: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Maneres de programar un ArduinoDes de l'IDE d'Arduino

40

Page 41: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoEntrades i sortides digitals

41

Exemples d'entrades / sortides digital i flancs

Page 42: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoSPI, I2C, UART

42

Page 43: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoSPI

43

Explicació del bus SPI

Page 44: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoSPI

44

Vídeo de funcionament

Codis d'Arduino per al mestre i l'esclau

Page 45: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoSPI

45

Vídeo de funcionamentCodis d'Arduino per al mestre i l'esclau

Page 46: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoSPI

46

Com connectar el mòdul RFID-RC522 a Arduino

Page 47: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoSPI

47

Page 48: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoAfegint biblioteques a l'IDE d'Arduino

48

Page 49: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoBME 280 funcionant amb SPI

49

Page 50: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoI2C

50

Page 51: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoI2C

51

Page 52: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoI2C

52

http://electronics.cat/php/common/index.php?lang=ca&page=105

Page 53: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoI2C

53

http://electronics.cat/php/common/index.php?lang=ca&page=303

Page 54: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoI2C

54

http://electronics.cat/php/common/index.php?lang=ca&page=508

Page 55: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoI2C

55

Codis I2C

Page 56: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoI2C

56

I2cScanner.ino

Page 57: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoI2C

57

I2cScanner.ino

Page 58: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoI2C

58

Codis I2C

Page 59: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoBME 280 funcionant amb I2C

59

https://binefa.cat/training/s4a/i2c_scanner.zip

Page 60: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoUART

60

Page 61: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoUART

61

GN

D

TX

RX

El pont pot estar a 3,3V o a 5V

Page 62: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoUART virtual / Biblioteca SoftwareSerial

62

https://binefa.cat/training/s4a/virtualSerial/virtualSerial.ino

Page 63: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoUART virtual / Biblioteca SoftwareSerial

63

https://binefa.cat/training/s4a/virtualSerial/virtualSerial.ino

Page 64: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Connexió de perifèrics a l'ArduinoUART virtual / Biblioteca SoftwareSerial

64

https://binefa.cat/training/s4a/virtualSerial/virtualSerial.ino

Page 65: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Comunicació entre l'Arduino i l'ordinador

Càrrega del protocol Firmata a l'Arduino

65

Connecteu la Raspberry Pi a la placa nano-eCat (la que conté l'Arduino Nano) mitjançant el cable USB-A a miniUSB.

A la Raspberry Pi aneu a Menú / Electrònica / Arduino IDE.

A l'Arduino IDE aneu a Fitxer / Exemples / Firmata / Standard Firmata.

Un cop l'Arduino IDE té carregat el programa Standard Firmata, premeu a la icona de la fletxa que apunta a la dreta (quan passeu el ratolí per sobre hi sortirà el text ”Puja” a la seva dreta).

Un cop hi surti el text ”Pujada enllestida” de color negre sobre fons verd a la part de sota de l'IDE, ja està preparat l'Arduino Nano per establir comunicacions seguint el protocol Firmata.

Page 66: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Comunicació entre l'Arduino i l'ordinador

Prova del protocol Firmata entre l'Arduino i la Raspberry Pi

66

A la Raspberry Pi aneu a Menú / Accessoris / LXTerminal i escriviu el següent :

Us sortirà la finestra de la dreta amb diverses caselles deselecció. Seleccioneu i deseleccioneu la casella corresponent a Led Bit 7 i observeu com canvia d'estat (il·luminat / apagat) el led integrat a l'Arduino.

http://binefa.cat/blog/?p=109

Page 67: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Comunicació entre l'Arduino i l'ordinador

Raspberry Pi amb pyfirmatai Arduino amb Firmata estàndard

67

Codi per a la Raspberry Pi (qtgui03.py)

Cal tenir instal·lada la biblioteca pyfirmata:

sudo pip install pyfirmata

Més informació : http://binefa.cat/blog/?p=102Vídeo: https://youtu.be/2kSSPvfXqug

Page 68: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Comunicació entre l'Arduino i l'ordinador

Protocol Firmata estàndard

68

http://firmata.org/wiki/V2.3ProtocolDetails

Vídeo de com funciona firmata : https://youtu.be/l4jFQIoY9ZY

Page 69: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Comunicació entre l'Arduino i l'ordinador

Ús de pyFirmata

69

https://github.com/tino/pyFirmata

Page 70: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

70

Tecnologies creatives a l'aulaBiblioteca ecat.h per a l'IDE d'Arduino

http://www.electronics.cat/doc/arduinoLib/ecat.zip

Explicació : http://www.binefa.cat/php/doc/lib-eCat01/ http://www.binefa.cat/php/doc/lib-eCat02/ http://www.binefa.cat/php/doc/lib-eCat03/

http://binefa.cat/blog/?p=140

Page 71: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

71

S4A Progamming Learning BoardÚs de la biblioteca ecat.h

Page 72: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

72

http://electronics.cat/downloads/code/robot08.ino

Tecnologies creatives a l'aulaBiblioteca ecat.h per a l'IDE d'Arduino

http

://w

ww

.ele

c tro

nics

.cat

/doc

/ard

uin o

Lib/

ecat

.zip

Exp

licac

ió :

htt

p://

ww

w.b

inef

a.ca

t/php

/doc

/lib-

eCat

01/

htt

p://

ww

w.b

inef

a.ca

t/ph

p/do

c/lib

-eC

at02

/

ht

tp:/

/ww

w.b

inef

a.ca

t/php

/doc

/lib-

eCat

03/

http

://b

inef

a.ca

t/blo

g/?p

=14

0

Page 73: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

73

S4A Progamming Learning BoardÚs de la biblioteca ecat.h

Page 74: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

74

Tecnologies creatives a l'aulaModulació per amplada de pols PWM

Page 76: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

76

Tecnologies creatives a l'aulaCom trobar pel terminal el número ID del

BlueTooth

$ hcitool scanScanning ...

98:D3:31:30:2C:0D HC-06

Page 77: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

77

Tecnologies creatives a l'aulaPreparant la comunicació BlueTooth

http://electronics.cat/doc/hc06/bluetooth04.ino

Page 78: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

78

Tecnologies creatives a l'aulaPreparant la comunicació BlueTooth

http://electronics.cat/doc/hc06/bluetooth04.ino

Page 79: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

RS48579

Page 80: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

RS42280

Page 81: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

RS48581

Page 82: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

RS48582

Page 83: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

RS48583

Page 84: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

RS48584

Page 85: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

RS485ModBus RTU

85

ModBus RTU sobre RS485 emprant Arduino i pyQtModbus dobre USB emprant Arduino i pyQtModbus RTU sobre un mòdul industrial

Page 86: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

RS485ModBus RTU

86

Vídeo explicatiu del ModBusRTU i el ModBusTCP

Page 87: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

EthernetEthernet – Mòdul ENC28J60

Un altre ús del bus SPI

87

Codi per a Arduino UdpServer01b

Page 88: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

EthernetEthernet – Mòdul ENC28J60

88

Biblioteca UIPEthernet per Arduino i ENC28J60

Page 89: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

EthernetEthernet – Mòdul ENC28J60

89

http://electronics.cat/php/common/index.php?lang=ca&page=517

Page 90: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

EthernetEthernet – Mòdul ENC28J60

Recepció de datagrames UDP

90

Codi per a Arduino UdpServer01b

Page 91: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

EthernetEthernet – Mòdul ENC28J60Enviament de datagrames UDP

91

Codi per a Arduino UdpServer01b

Page 92: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

EthernetEnviament de datagrames UDP en Python

92

Codis font dels codis d'enviament de datagrames UDP en Python

Page 93: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

EthernetModBus - TCP

93

http://www.binefa.cat/php/doc/modbus/

Vídeo: https://www.youtube.com/embed/j-1f-dV7ohQ

Page 94: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

LoRaMACEncriptació AES

94

http://binefa.cat/blog/?p=327

Page 95: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

LoRaWANArduino MKR WAN 1300

95

Ús i configuració: http://tinkerman.cat/arduino-mkr-wan-1300/

Page 96: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Altres plaques programables des de l'IDE d'Arduino

Família d'Arduinos i Teensy

96

Page 97: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Altres plaques programables des de l'IDE d'Arduino

ESP8266 / ESP32 / STM32 / ...

97

https://binefa.cat/blog/?s=esp8266

Page 98: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

ESP826698

Entreu aquesta adreça a ”Additional Boards Manager URLs”:http://arduino.esp8266.com/stable/package_esp8266com_index.json

Page 99: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

ESP8266

99

Tools → Board: “current” → Boards Manager ...

Click install ESP8266 (It is about 450 MB to download) :

Una altra manera de fer la instal·lació de l'IDE d'Arduino per a ESP8266:https://libraries.io/github/adafruit/ESP8266-Arduino

Page 101: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

ESP8266witty

101

Microprogramari client UDP

Page 102: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

ESP8266Trametent trames UDP amb l'ESP8266

102

http://binefa.cat/php/esp8266/codis/arduinoIDE/UDPClientMAC02/UDPClientMAC02.ino

Page 103: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

MQTT103

MQTT és una forma de comunicar dispositius d'Internet de les Coses (IdC / IoT) entre si. És un protocol lleuger i molt versàtil que es pot fer servir des d'un Arduino, una Rasperry Pi, un PC multinucli fins als serveis d'Amazon Web Services.

https://www.baldengineer.com/mqtt-introduction.htmlhttp://binefa.cat/php/dam/m09uf3/20170224/2017024_mqtt_00.pdf

Page 104: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

MQTTAnalogia amb el servei postal

104

https://www.baldengineer.com/mqtt-introduction.html

Page 105: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

MQTTPerquè no fer servir HTTP (o REST)

105

HTTP requereix de múltiples accions POST per a distribuir un missatge a més d'un client. L'objectiu del sistema de missatgeria intermediària és que l'intermediari distribueixi el missatge, tan sols als clients interessats. La funcionalitat del MQTT és trametre d'un a molts.

https://www.baldengineer.com/mqtt-introduction.html

Page 106: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

MQTTESP8266 sobre l'IDE d'Arduino - MQTT

106

http://www.jerome-bernard.com/blog/2015/10/04/wifi-temperature-sensor-with-nodemcu-esp8266/

https://binefa.cat/telecos/ESP8266/esp8266_03.pdf

Page 107: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Torn de preguntes ...

… i sessió pràctica.

107

Page 108: Arduino i Raspberry Pi2018/05/02  · Arduino i Raspberry Pi Part d'Arduino (matí) 2 1. El microcontrolador Arduino 2. Sensors i actuadors. Exemples pràctics 3. Maneres de programar

Presentació descarregable a : https://binefa.cat/blog/

Correu electrònic de contacte : [email protected]

https://twitter.com/JordiBinefa

http://es.linkedin.com/pub/jordi-binefa/13/717/90b

Moltes gràcies per la vostra atenció

108

https://twitter.com/electronicscat

http://www.electronics.cat

http://www.makeit.cat

Arduino i Raspberry Pi

https://wiki.binefa.cat