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

Preview:

Citation preview

Arduino i Raspberry Pi

11 d'octubre 2018

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

El microcontrolador ArduinoL'Arduino Nano

3

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

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

5

Sensors Actuadors

Lecturad'informació

Escripturad'informació

El microcontrolador ArduinoAutomatització del món físic

6

Sensors Actuadors

Entradad'informació--> Lectura

Sortidad'informació

Escriptura -->

Sortidade sensors

Escriptura -->

Entradad'actuadors--> Lectura

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

7

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

True / FalseHigh / Low

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

El microcontrolador ArduinoLectura de la informació d'un teclat

9

El microcontrolador ArduinoLectura d'informació analògica

10

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

-10..10V

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

11

SPI : Serial Peripheral Interface Bus

I2C : Inter-Integrated Circuit

1-Wire

El microcontrolador ArduinoEscriptura d'estat a un actuador digital

12

LED : Díode emissor de llum

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.

El microcontrolador ArduinoLa placa S4A Programming Learning Board

14

Placa desenvolupada amb l'entorn dedisseny integrat de programari lliure

El microcontrolador ArduinoMake It!

15

http://www.makeit.cat

El microcontrolador ArduinoMake It!

16

http://makeit.cat/cat/

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

S4A Progamming Learning Board

Concepte de relé

18

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

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

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)

El microcontrolador ArduinoPatillatge del PIR

22

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

El microcontrolador ArduinoEntorn de l'S4A

23

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

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

S4A Progamming Learning BoardBotons i leds

25

A4A532

10111213

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

S4A Progamming Learning BoardTeclat de membrana i leds

26

A4

A5

3

2

1011

1213

A4

A5

3

2

S4A Progamming Learning BoardBotons, leds i relés

27

El microcontrolador ArduinoExemple d'ús amb S4A

28

Brunzidor LDR

S4A Progamming Learning BoardBotons i brunzidor

29

A4A532

9

PWM

S4A Progamming Learning BoardPotenciòmetre i brunzidor

30

9

A0

El microcontrolador ArduinoExemple d'ús amb S4A

31

Servo

S4A Progamming Learning BoardPotenciòmetre i servomotor

32

8A0

33

S4A Progamming Learning BoardServo

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

34

S4A Progamming Learning BoardServo

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

35

S4A Progamming Learning BoardServo

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

S4A Progamming Learning BoardPotenciòmetre i servomotor

36

S4A Progamming Learning BoardPotenciòmetre i servomotor

37

S4A Progamming Learning BoardLDR i servomotor

38

S4A Progamming Learning BoardLDR i servomotor

39

S4A Progamming Learning BoardJoystick i servomotors

40

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

S4A Progamming Learning BoardSensor d'infrarojos i brunzidor

41

Per a fer servir el sensor infraroig desconnecteu el joystick

S4A Progamming Learning BoardSensor de temperatura LM35

42

Per a fer servir el sensor de temperatura desconnecteu el joystick

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

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

El microcontrolador ArduinoNivells de tensió

45

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

Maneres de programar un ArduinoSimulació per blocs a TinkerCad

46

https://www.tinkercad.com/

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

47

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

48

Exemples d'entrades / sortides digital i flancs

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

49

Connexió de perifèrics a l'ArduinoSPI

50

Explicació del bus SPI

Connexió de perifèrics a l'ArduinoSPI

51

Vídeo de funcionament

Codis d'Arduino per al mestre i l'esclau

Connexió de perifèrics a l'ArduinoSPI

52

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

Connexió de perifèrics a l'ArduinoSPI

53

Com connectar el mòdul RFID-RC522 a Arduino

Connexió de perifèrics a l'ArduinoSPI

54

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

55

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

56

Connexió de perifèrics a l'ArduinoI2C

57

Connexió de perifèrics a l'ArduinoI2C

58

Connexió de perifèrics a l'ArduinoI2C

59

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

Connexió de perifèrics a l'ArduinoI2C

60

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

Connexió de perifèrics a l'ArduinoI2C

61

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

Connexió de perifèrics a l'ArduinoI2C

62

Codis I2C

Connexió de perifèrics a l'ArduinoI2C

63

I2cScanner.ino

Connexió de perifèrics a l'ArduinoI2C

64

I2cScanner.ino

Connexió de perifèrics a l'ArduinoI2C

65

Codis I2C

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

66

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

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

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

Connexió de perifèrics a l'ArduinoUART

69

Connexió de perifèrics a l'ArduinoUART

70

GN

D

TX

RX

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

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

71

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

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

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

73

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

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

74

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

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.

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

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

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

Comunicació entre l'Arduino i l'ordinador

Ús de pyFirmata

79

https://github.com/tino/pyFirmata

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

81

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

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

83

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

84

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

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

87

Tecnologies creatives a l'aulaPreparant la comunicació BlueTooth

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

88

Tecnologies creatives a l'aulaPreparant la comunicació BlueTooth

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

RS48589

RS42290

RS48591

RS48592

RS48593

RS48594

RS485ModBus RTU

95

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

RS485ModBus RTU

96

Vídeo explicatiu del ModBusRTU i el ModBusTCP

EthernetEthernet – Mòdul ENC28J60

Un altre ús del bus SPI

97

Codi per a Arduino UdpServer01b

EthernetEthernet – Mòdul ENC28J60

98

Biblioteca UIPEthernet per Arduino i ENC28J60

EthernetEthernet – Mòdul ENC28J60

99

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

EthernetEthernet – Mòdul ENC28J60

Recepció de datagrames UDP

100

Codi per a Arduino UdpServer01b

EthernetEthernet – Mòdul ENC28J60Enviament de datagrames UDP

101

Codi per a Arduino UdpServer01b

EthernetEnviament de datagrames UDP en Python

102

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

EthernetModBus - TCP

103

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

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

LoRaMACEncriptació AES

104

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

LoRaWANArduino MKR WAN 1300

105

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

Altres plaques programables des de l'IDE d'Arduino

Família d'Arduinos i Teensy

106

Altres plaques programables des de l'IDE d'Arduino

ESP8266 / ESP32 / STM32 / ...

107

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

ESP8266108

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

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

ESP8266witty

111

Microprogramari client UDP

ESP8266Trametent trames UDP amb l'ESP8266

112

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

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

MQTTAnalogia amb el servei postal

114

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

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

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

Torn de preguntes ...

… i sessió pràctica.

117

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

Correu electrònic de contacte : jordibinefa@electronics.cat

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

Recommended