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 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
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'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
85
Tecnologies creatives a l'aulaPreparant la comunicació BlueTooth
http://electronics.cat/doc/hc06/bluetooth04.ino
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
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
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
110
Microprogramari de verificació
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 : [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