Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de...

57
Sessió pràctica de maquinari lliure Jordi Binefa i Martínez Responsable d'R+D+i a Professor de cicles formatius a 11 / 5 / 2013 1

Transcript of Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de...

Page 1: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Jordi Binefa i Martínez Responsable d'R+D+i a

Professor de cicles formatius a

11 / 5 / 2013

1

Page 2: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureÍndex- Introducció

- Ubuntu i maquinari lliure

- Programació de microcontroladors de 8 bits (ATmega8/48/88) en Ubuntu

- Control de sistemes Linux encastats (Embedded Linux) de 32 bits des d'Ubuntu

- Programari lliure emprat per controlar maquinari lliure

- Més plaques perifèriques

- Torn de preguntes

2

Page 3: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Introducció

3

Page 4: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureIntroducció

Definició de maquinari lliure :És un maquinari en que el disseny està a disposició del públic per a que qualsevol ho pugui estudiar, modificar, distribuir, fabricar i vendre.

Font : http://freedomdefined.org/OSHW

4

Page 5: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Ubuntu i maquinari lliure

5

Page 6: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

● Comunicació amb l'exterior:● USB● RS232● Port paral·lel● Bluetooth● Xarxa (Ethernet / WiFi)● TWI (I2C, SMBus)

● Permisos d'accés :● Ús de terminal : gcc / bash● Ús d'interfícies gràfiques d'usuari (GUI) : Qt / GTK+

6

Page 7: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

Comunicacions USB/TTL-I2C Placa set01_05

$ lsusb

7

Page 8: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

Comunicacions USB/TTL-I2C Placa set01_05

8

Page 9: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliureComunicacions USB/TTL-I2C - set01_05

9

Placa set01_04 (leds) + set01_05

Placa set05_02 (relés) + set01_05

Page 10: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

I/O - Placa set01_04

10

Page 11: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

I/O - Placa set01_04

11

Page 12: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

I/O - Placa set05_02

12

Page 13: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

I/O - Placa set05_02

13

Page 14: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

Comunicacions USB/TTL-I2C Placa set01_05

14

Page 15: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

Comunicacions USB/TTL-I2C Placa set01_05

http://www.electronics.cat/code/usbtwi/usbtwi.tar.gz

15

Page 16: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

Comunicacions USB/TTL-I2C Placa set01_05

https://dl.dropboxusercontent.com/u/65254823/oshw20130510/qtUsbTwiADC04.tar.gz

Codi font fent servir un PCF8591 ( http://www.nxp.com/documents/data_sheet/PCF8591.pdf ):

16

Page 17: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

Expansor TWI (I2C) d'entrades/sortides digitals - set03_03

17

http://uc.electronics.cat/set03_03/

Page 18: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

18

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

Expansor TWI (I2C) d'entrades/sortides digitals - set03_03

Page 19: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureUbuntu i maquinari lliure

Trepant / fresadora - qtCnc

- Programari allotjat a sourceforge.net : ( http://sourceforge.net/projects/qtcnc/files/ )

19

Page 20: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Programació de microcontroladors de 8 bits en Ubuntu

Atmega 8/48/88/8535

20

Page 21: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureProgramació de microcontroladors de 8 bits en Ubuntu

uC - Placa set01_01

21

Page 22: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureProgramació de microcontroladors de 8 bits en Ubuntu

uC - Placa set01_01

22

Page 23: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Plaques disponibles Programadors - Placa set03_09

23

Page 24: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

24Sessió pràctica de maquinari lliure

Plaques disponibles Programadors - Placa set03_09

Basada en el disseny d'http://www.fischl.de/usbasp/

Page 25: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Programació de microcontroladors de 8 bits en Ubuntu Metadistribució basada en Ubuntu 10.10

- Nom d'usuari : electronicselectronics- Contrasenya : electronics.catelectronics.cat

25

Page 26: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Programació de microcontroladors de 8 bits en Ubuntu

26

Page 27: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureProgramació de microcontroladors de 8 bits en Ubuntu

27

Page 28: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureProgramació de microcontroladors de 8 bits en Ubuntu

28

Page 29: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureProgramació de microcontroladors de 8 bits en Ubuntu

29

Page 30: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureProgramació de microcontroladors de 8 bits en Ubuntu

30

Page 31: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureProgramació de microcontroladors de 8 bits en Ubuntu

31

Page 32: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureProgramació de microcontroladors de 8 bits en Ubuntu

GtkTerm

32

Page 33: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureProgramació de microcontroladors de 8 bits en Ubuntu

qtTerm

33

http://code.google.com/p/qtterm/

Page 34: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureProgramació de microcontroladors de 8 bits en Ubuntu

Comunicacions sèrie - Placa set01_03

34

Page 35: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureProgramació de microcontroladors de 8 bits en Ubuntu

Comunicacions sèrie - Placa set01_03

35

Page 36: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Control de sistemes Linux encastats (Embedded Linux)

de 32 bits des d'Ubuntu

36

Page 37: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureControl de sistemes Linux encastats (Embedded Linux)

de 32 bits des d'Ubuntu Adaptador mini6410 - Placa set03_02

37

Page 38: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureControl de sistemes Linux encastats (Embedded Linux)

de 32 bits des d'Ubuntu Adaptador mini6410 - Placa set03_02

38

Page 39: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureControl de sistemes Linux encastats (Embedded

Linux) de 32 bits des d'UbuntuI/O – aturaBoard - Placa set05_07

39

Page 40: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureControl de sistemes Linux encastats (Embedded Linux)

de 32 bits des d'UbuntuI/O – aturaBoard - Placa set05_07

40

Inspirat en l'article de Jim Hagerman : http://www.hagtech.com/pdf/translator.pdf

Page 41: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureControl de sistemes Linux encastats (Embedded Linux)

de 32 bits des d'Ubuntu3Bpi - Pi de les Tres Branques

Placa traductora de nivells per a Raspberry PiPlaca set05_08_v1

41

http://uc.electronics.cat/set05_08/

Page 42: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureControl de sistemes Linux encastats (Embedded Linux)

de 32 bits des d'Ubuntu3Bpi - Pi de les Tres Branques

Placa traductora de nivells per a Raspberry PiPlaca set05_08_v1

42

Page 43: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureControl de sistemes Linux encastats (Embedded Linux)

de 32 bits des d'Ubuntu Raspberry Pi + 3Bpi + Comunicació sèrie

http://electronics.cat/code/3Bpi/rs232/setRs232up.html

Explicació de com fer la instal·lació del qtTerm a la Raspberry Pi :

43

Page 44: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureControl de sistemes Linux encastats (Embedded Linux)

de 32 bits des d'Ubuntu Raspberry Pi + 3Bpi + entrades/sortides

Vídeo explicatiu : http://youtu.be/bUjgEGbktFM

44

Page 45: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureControl de sistemes Linux encastats (Embedded

Linux) de 32 bits des d'Ubuntu

Configurant P4 de la 3Bπ com a sortidaEscriviu a la consola LXTerminal de la Raspberry Pi :

wget http://www.electronics.cat/code/3Bpi/p4v2_01.cgcc p4v2_01.c -o p4v2sudo chown root p4v2sudo chgrp root p4v2sudo chmod +s p4v2sudo mv p4v2 /usr/bin/

Per a poder compilar heu de tenir instal·lat el paquet build-essential, altrament gcc no funcionarà :sudo apt-get install build-essential

45

Page 46: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureControl de sistemes Linux encastats (Embedded Linux)

de 32 bits des d'Ubuntu

Ús de P4 de la 3Bπ com a sortida

46

Per posar a 1 el bit 7 de P4 :p4v2 1 7

Per posar a 0 el bit 7 de P4 :p4v2 0 7

Per a escriure un valor en decimal :p4v2 -d 127

Per a escriure un valor en hexadecimal :p4v2 -h f0

Per posar a 1 el bit 5 de P4 :p4v2 1 5

Per posar a 0 el bit 5 de P4 :p4v2 0 5

Page 47: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureControl de sistemes Linux encastats (Embedded Linux)

de 32 bits des d'Ubuntu Raspberry Pi + 3Bpi + TWI (I2C)

Vídeo explicatiu : http://youtu.be/Was5QJDAGKUCodi de detecció d'elements TWI connectats : http://www.electronics.cat/code/3Bpi/twi/twiDetect.c

Codi per a que un led il·luminat doni dues voltes : http://www.electronics.cat/code/3Bpi/twi/twi01.c

47

Page 48: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Programari lliure emprat per controlar maquinari lliure

48

Page 49: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliureProgramari lliure emprat per controlar maquinari lliure

Alguns enllaços

49

Compilador per a 8 bits gcc -avrhttp://www.nongnu.org/avr-libc/

API de programació multiplataforma (Linux, Embedded, Windows, Mac)http://qt-project.org/

Vídeo sobre les Qt per Raspberry Pi : http://youtu.be/4tM1TRUtfQE

Biblioteca pel port sèrie emprant Qthttp://code.google.com/p/qextserialport/

Biblioteca per Raspberry Pi semblant a les d'Arduinohttps://projects.drogon.net/raspberry-pi/wiringpi/

Bastiment d'internet de les coses per a Raspberry Pi (Rest sobre HTTP i CoAP)

http://code.google.com/p/webiopi/

Terminal de port sèrie desenvolupat amb qextserialport http://code.google.com/p/qtterm/

Control de màquina de fresar i trepanthttp://sourceforge.net/projects/qtcnc/files/

Page 50: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Més plaques perifèriques

50

Page 51: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Més plaques perifèriquesI/O - Placa set03_06

51

Page 52: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Més plaques perifèriquesI/O - Placa set03_06

52

Page 53: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Més plaques perifèriquesI/O - Placa set05_04

53

Page 54: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Més plaques perifèriquesI/O - Placa set05_04

54

Page 55: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Sessió pràctica de maquinari lliure

Més plaques perifèriques Insoladora

55

Page 56: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

Torn de preguntes ...

… i sessió pràctica.

56

Page 57: Sessió pràctica de maquinari lliure34. Sessió pràctica de maquinari lliure Programació de microcontroladors de 8 bits en Ubuntu Comunicacions sèrie - Placa set01_03 35. ... Sessió

COMIATPresentació descarregable a : http://ves.cat/f1yu

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 assistència

Plaques aviat disponibles a http://botiga.electronics.cat/

57

Us esperem a la propera Maker-Faire del 29 de juny de 2013Més informació a

http://www.mob-barcelona.com