Arduino i Raspberry Pi · Connexió de perifèrics a l'Arduino: entrades i sortides digitals, SPI,...

118
Arduino i Raspberry Pi 11 d'octubre 2018

Transcript of Arduino i Raspberry Pi · Connexió de perifèrics a l'Arduino: entrades i sortides digitals, SPI,...

Page 1: Arduino i Raspberry Pi · 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 . El

Arduino i Raspberry Pi

11 d'octubre 2018

Page 2: Arduino i Raspberry Pi · 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 . El

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 Pi · 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 . El

El microcontrolador ArduinoL'Arduino Nano

3

Page 4: Arduino i Raspberry Pi · 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 . El

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 Pi · 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 . El

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

5

Sensors Actuadors

Lecturad'informació

Escripturad'informació

Page 6: Arduino i Raspberry Pi · 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 . El

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 Pi · 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 . El

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 Pi · 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 . El

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 Pi · 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 . El

El microcontrolador ArduinoLectura de la informació d'un teclat

9

Page 10: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoLectura d'informació analògica

10

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

-10..10V

Page 11: Arduino i Raspberry Pi · 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 . El

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 Pi · 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 . El

El microcontrolador ArduinoEscriptura d'estat a un actuador digital

12

LED : Díode emissor de llum

Page 13: Arduino i Raspberry Pi · 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 . El

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 Pi · 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 . El

El microcontrolador ArduinoLa placa S4A Programming Learning Board

14

Placa desenvolupada amb l'entorn dedisseny integrat de programari lliure

Page 15: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoMake It!

15

http://www.makeit.cat

Page 16: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoMake It!

16

http://makeit.cat/cat/

Page 17: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoExemple d'ús amb relés

17

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_test/s4a_test.ino

Placa de relés

Page 18: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning Board

Concepte de relé

18

Page 19: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoExemple amb entrades de contacte obert

19

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_test/s4a_test.ino

Teclat demembrana

Microrruptor Relé Reed

Page 20: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoExemple amb entrades analògiques

20

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_test/s4a_test.ino

Potenciòmetre Joystick + SW

Page 21: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoExemple amb entrades actives

21

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_test/s4a_test.ino

IR PIR(patillatge a la següent diapositiva)

Page 22: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoPatillatge del PIR

22

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_test/s4a_test.ino

Page 23: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoEntorn de l'S4A

23

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

Page 24: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoMicroprogramari de l'S4A

24

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 25: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardBotons i leds

25

A4A532

10111213

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

Page 26: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardTeclat de membrana i leds

26

A4

A5

3

2

1011

1213

A4

A5

3

2

Page 27: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardBotons, leds i relés

27

Page 28: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoExemple d'ús amb S4A

28

Brunzidor LDR

Page 29: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardBotons i brunzidor

29

A4A532

9

PWM

Page 30: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardPotenciòmetre i brunzidor

30

9

A0

Page 31: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoExemple d'ús amb S4A

31

Servo

Page 32: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardPotenciòmetre i servomotor

32

8A0

Page 33: Arduino i Raspberry Pi · 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 . El

33

S4A Progamming Learning BoardServo

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

Page 34: Arduino i Raspberry Pi · 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 . El

34

S4A Progamming Learning BoardServo

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

Page 35: Arduino i Raspberry Pi · 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 . El

35

S4A Progamming Learning BoardServo

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

Page 36: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardPotenciòmetre i servomotor

36

Page 37: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardPotenciòmetre i servomotor

37

Page 38: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardLDR i servomotor

38

Page 39: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardLDR i servomotor

39

Page 40: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardJoystick i servomotors

40

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

Page 41: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardSensor d'infrarojos i brunzidor

41

Per a fer servir el sensor infraroig desconnecteu el joystick

Page 42: Arduino i Raspberry Pi · 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 . El

S4A Progamming Learning BoardSensor de temperatura LM35

42

Per a fer servir el sensor de temperatura desconnecteu el joystick

Page 43: Arduino i Raspberry Pi · 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 . El

El microcontrolador Arduino43

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 44: Arduino i Raspberry Pi · 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 . El

El microcontrolador Arduino44

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 45: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoNivells de tensió

45

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

Page 46: Arduino i Raspberry Pi · 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 . El

Maneres de programar un ArduinoSimulació per blocs a TinkerCad

46

https://www.tinkercad.com/

Page 47: Arduino i Raspberry Pi · 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 . El

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

47

Page 48: Arduino i Raspberry Pi · 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 . El

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

48

Exemples d'entrades / sortides digital i flancs

Page 49: Arduino i Raspberry Pi · 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 . El

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

49

Page 50: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoSPI

50

Explicació del bus SPI

Page 51: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoSPI

51

Vídeo de funcionament

Codis d'Arduino per al mestre i l'esclau

Page 52: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoSPI

52

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

Page 53: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoSPI

53

Com connectar el mòdul RFID-RC522 a Arduino

Page 54: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoSPI

54

Page 55: Arduino i Raspberry Pi · 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 . El

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

55

Page 56: Arduino i Raspberry Pi · 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 . El

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

56

Page 57: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoI2C

57

Page 58: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoI2C

58

Page 59: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoI2C

59

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

Page 60: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoI2C

60

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

Page 61: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoI2C

61

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

Page 62: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoI2C

62

Codis I2C

Page 63: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoI2C

63

I2cScanner.ino

Page 64: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoI2C

64

I2cScanner.ino

Page 65: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoI2C

65

Codis I2C

Page 66: Arduino i Raspberry Pi · 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 . El

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

66

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

Page 67: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoExemple d'ús amb I2C

Cerca d'adreces I2C

67

PCF8574 OLED

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_i2c_scanner/s4a_i2c_scanner.ino

Page 68: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoExemple d'ús amb I2C i PWM

68

OLED visualitzant valors i controlantla brillantor d'un led emprant PWM.

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_pwm_01/s4a_pwm_01.ino

Page 69: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoUART

69

Page 70: Arduino i Raspberry Pi · 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 . El

Connexió de perifèrics a l'ArduinoUART

70

GN

D

TX

RX

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

Page 71: Arduino i Raspberry Pi · 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 . El

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

71

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

Page 72: Arduino i Raspberry Pi · 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 . El

El microcontrolador ArduinoExemple d'ús del SoftwareSerial

72

Connexió a una segona UART emprant SoftwareSerial

https://binefa.cat/training/ceic/20181031/material/exemples/s4a_softwareSerial/s4a_softwareSerial.ino

Page 73: Arduino i Raspberry Pi · 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 . El

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

73

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

Page 74: Arduino i Raspberry Pi · 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 . El

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

74

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

Page 75: Arduino i Raspberry Pi · 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 . El

Comunicació entre l'Arduino i l'ordinador

Càrrega del protocol Firmata a l'Arduino

75

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 76: Arduino i Raspberry Pi · 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 . El

Comunicació entre l'Arduino i l'ordinador

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

76

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 77: Arduino i Raspberry Pi · 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 . El

Comunicació entre l'Arduino i l'ordinador

Raspberry Pi amb pyfirmatai Arduino amb Firmata estàndard

77

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 78: Arduino i Raspberry Pi · 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 . El

Comunicació entre l'Arduino i l'ordinador

Protocol Firmata estàndard

78

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

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

Page 79: Arduino i Raspberry Pi · 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 . El

Comunicació entre l'Arduino i l'ordinador

Ús de pyFirmata

79

https://github.com/tino/pyFirmata

Page 80: Arduino i Raspberry Pi · 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 . El

80

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 81: Arduino i Raspberry Pi · 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 . El

81

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

Page 82: Arduino i Raspberry Pi · 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 . El

82

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 83: Arduino i Raspberry Pi · 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 . El

83

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

Page 84: Arduino i Raspberry Pi · 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 . El

84

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

Page 86: Arduino i Raspberry Pi · 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 . El

86

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 87: Arduino i Raspberry Pi · 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 . El

87

Tecnologies creatives a l'aulaPreparant la comunicació BlueTooth

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

Page 88: Arduino i Raspberry Pi · 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 . El

88

Tecnologies creatives a l'aulaPreparant la comunicació BlueTooth

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

Page 89: Arduino i Raspberry Pi · 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 . El

RS48589

Page 90: Arduino i Raspberry Pi · 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 . El

RS42290

Page 91: Arduino i Raspberry Pi · 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 . El

RS48591

Page 92: Arduino i Raspberry Pi · 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 . El

RS48592

Page 93: Arduino i Raspberry Pi · 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 . El

RS48593

Page 94: Arduino i Raspberry Pi · 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 . El

RS48594

Page 95: Arduino i Raspberry Pi · 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 . El

RS485ModBus RTU

95

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

Page 96: Arduino i Raspberry Pi · 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 . El

RS485ModBus RTU

96

Vídeo explicatiu del ModBusRTU i el ModBusTCP

Page 97: Arduino i Raspberry Pi · 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 . El

EthernetEthernet – Mòdul ENC28J60

Un altre ús del bus SPI

97

Codi per a Arduino UdpServer01b

Page 98: Arduino i Raspberry Pi · 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 . El

EthernetEthernet – Mòdul ENC28J60

98

Biblioteca UIPEthernet per Arduino i ENC28J60

Page 99: Arduino i Raspberry Pi · 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 . El

EthernetEthernet – Mòdul ENC28J60

99

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

Page 100: Arduino i Raspberry Pi · 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 . El

EthernetEthernet – Mòdul ENC28J60

Recepció de datagrames UDP

100

Codi per a Arduino UdpServer01b

Page 101: Arduino i Raspberry Pi · 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 . El

EthernetEthernet – Mòdul ENC28J60Enviament de datagrames UDP

101

Codi per a Arduino UdpServer01b

Page 102: Arduino i Raspberry Pi · 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 . El

EthernetEnviament de datagrames UDP en Python

102

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

Page 103: Arduino i Raspberry Pi · 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 . El

EthernetModBus - TCP

103

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

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

Page 104: Arduino i Raspberry Pi · 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 . El

LoRaMACEncriptació AES

104

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

Page 105: Arduino i Raspberry Pi · 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 . El

LoRaWANArduino MKR WAN 1300

105

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

Page 106: Arduino i Raspberry Pi · 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 . El

Altres plaques programables des de l'IDE d'Arduino

Família d'Arduinos i Teensy

106

Page 107: Arduino i Raspberry Pi · 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 . El

Altres plaques programables des de l'IDE d'Arduino

ESP8266 / ESP32 / STM32 / ...

107

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

Page 108: Arduino i Raspberry Pi · 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 . El

ESP8266108

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

Page 109: Arduino i Raspberry Pi · 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 . El

ESP8266

109

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 111: Arduino i Raspberry Pi · 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 . El

ESP8266witty

111

Microprogramari client UDP

Page 112: Arduino i Raspberry Pi · 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 . El

ESP8266Trametent trames UDP amb l'ESP8266

112

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

Page 113: Arduino i Raspberry Pi · 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 . El

MQTT113

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 114: Arduino i Raspberry Pi · 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 . El

MQTTAnalogia amb el servei postal

114

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

Page 115: Arduino i Raspberry Pi · 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 . El

MQTTPerquè no fer servir HTTP (o REST)

115

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 116: Arduino i Raspberry Pi · 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 . El

MQTTESP8266 sobre l'IDE d'Arduino - MQTT

116

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

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

Page 117: Arduino i Raspberry Pi · 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 . El

Torn de preguntes ...

… i sessió pràctica.

117

Page 118: Arduino i Raspberry Pi · 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 . El

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ó

118

https://twitter.com/electronicscat

http://www.electronics.cat

http://www.makeit.cat

Arduino i Raspberry Pi

https://wiki.binefa.cat