scieee Open visual document viewer

OsPlot: com implementar oscil·loscopis amb un microcontrolador i Linux: una guia pràctica per a la creació d’un oscil·loscopi digital amb plataformes obertes

Vilardaga Castro, Joan

Abstract

En aquest document es descriu una guia que permeti a qualsevol persona transformar un microcontrolador i un ordinador en un oscil·loscopi funcional. Mitjançant l'ús de plataformes obertes com Linux, Arduino i GNUPlot, aquesta investigació intenta oferir una solució de baix cost i accessible per a gent interessada en l'anàlisi de senyals.

Full text

UNIVERSITAT POLITÈCNICA DE CATALUNYA BARCELONATECH Escola Poli ècnica Supe io d’Enginye ia de Man esa OsPlo : Com implemen a oscil.loscopis amb un mic ocon olado i Linux Una guia p àc ica pe a la c eació d’un oscil.loscopi digi al amb pla a o mes obe es Man esa, 7 de juliol de 2023 eball de i de g au que p esen a Joan Vila daga Cas o en complimen dels equisi s pe assoli el G au d’Enginye ia en Sis emes TIC Di ecció: F ancisco del Águila López Aques a ob a es à subjec a a una llicència A ibu ion-NonComme cial-Sha eAlike 4.0 de C ea i e Commons. Pe eu e’n una còpia, isi eu h ps://c ea i ecommons.o g/ licenses/by-nc-sa/4.0/legalcode.es o en ieu una ca a a C ea i e Commons, 171 Second S ee , Sui e 300, San F ancisco, Cali o nia 94105, USA. Ag aïmen s Vull exp essa el meu més since ag aïmen a la me a amília, especialmen als meus es ima s pa es, pe dona -me l’opo uni a d’ob eni una educació i pe dona -me supo incondicional en aques a e apa de la me a ida. Sense ells, aques eball no hau ia es a possible. També desi jo exp essa el meu econeixemen a alguns dels meus p o esso s que han ingu un pape onamen al en la me a o mació acadèmica. A na Ma ia An ònia i en Ca melo, p o esso s de secundà ia, els es ic p o undamen ag aï pe la se a dedicació i pe despe a en mi la passió pe la in o mà ica i l’elec ònica. I als p o esso s de la uni e si a , na Rosa, en Sebas i en Xa ie , ull ag ai -los pe la se a guia, el seu supo i els seus coneixemen s compa i s du an el meu eco egu uni e si a i. Menció especial a en F ancisco, el meu u o d’aques T eball de Fi de G au. Li es ic p o undamen ag aï pe la se a idea que ha pe mès l’exis ència d’aques eball, així com les se es apo acions du an el desen olupamen d’aques . Resum En aques documen es desc iu una guia que pe me i a qualse ol pe sona ans o ma un mic ocon olado i un o dinado en un oscil.loscopi uncional. Mi jançan l’ús de pla a o mes obe es com Linux, A duino i GNUPlo , aques a in es igació in en a o e i una solució de baix cos i accessible pe a gen in e essada en l’anàlisi de senyals. Abs ac This documen desc ibes a guide ha enables anyone o ans o m a mic ocon olle and a compu e in o a unc ional oscilloscope. By using open pla o ms such as Linux, A duino and GNUPlo , his esea ch aims o p o ide a low-cos and accessible solu ion o people in e es ed in signal analysis. i Índex Resum i Abs ac i 1 In oducció 1 1.1 O igen del eball: Oscil.loscopi amb GNUPlo . . . . . . . . . . . . . . . . . . 1 1.2 Objec ius ....................................... 1 1.3 Com unciona un oscil.loscopi ............................ 1 1.3.1 Funcionamen bàsic ............................. 1 1.3.2 Concep es impo an s de senyals digi als . . . . . . . . . . . . . . . . . . 2 2 OsPlo 3 2.1 Visuali zació en emps eal amb GNUPlo . . . . . . . . . . . . . . . . . . . . . 3 2.1.1 Reesc ip u a con ínua del i xe . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.2 Canonadesambnom............................. 4 2.2 L’a qui ec u a més simple d’OsPlo . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.1 P og ama d’A duino amb C . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.2 Sc ip deGNUPlo .............................. 5 2.2.3 P og ama auxilia amb C . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.4 Sis ema de igge .............................. 6 2.3 OsPlo -PC ...................................... 7 2.3.1 Desc ipció de l’a qui ec u a . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3.2 Ex ensions .................................. 7 2.3.3 Diag ama de l’a qui ec u a . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.4 OsPlo -MCU ..................................... 9 2.4.1 Desc ipció de l’a qui ec u a . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4.2 Ex ensions .................................. 9 2.4.3 Diag ama de l’a qui ec u a . . . . . . . . . . . . . . . . . . . . . . . . . 10 3 Implemen ació d’OsPlo -PC amb A duino-C/Py hon/Cha .js 11 3.1 T igge Py honambWebSocke s.......................... 11 3.1.1 Desc ipció de l’algo i me de igge ..................... 11 3.1.2 T ansmissió de les mos es amb WebSocke s . . . . . . . . . . . . . . . . 12 3.2 In e ícieambCha .js................................ 12 4 Implemen ació d’OsPlo -MCU amb A duino-C/Rus /GNUPlo 15 4.1 Modi icació del p og ama d’A duino . . . . . . . . . . . . . . . . . . . . . . . . 15 4.1.1 Comunicació bidi eccional amb el igge ................. 15 4.1.2 Fil e pe eduï la eqüència de mos eig e ec i a . . . . . . . . . . . . 16 4.2 P og ama auxilia amb Rus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 iii Índex 5 Línies u u es 19 5.1 Múl iples esde enimen s de igge s pe ame ................... 19 5.2 Plan eja al e na i es al po sè ie . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.3 Inclusió de les SDR al’a qui ec u a ........................ 20 6 Conclusions 21 Bibliog a ia 23 i 1 In oducció 1.1 O igen del eball: Oscil.loscopi amb GNUPlo GNUPlo [WC22] és un p og ama de aça de g à ics en 2D i 3D que pe me isuali za i anali za di e en s conjun s de dades. To i que GNUPlo és una eina pe e g à ics es à ics, es po combina amb al es p og ames o sc ip s pe aconsegui la uncionali a de aça en emps eal. És p ecisamen aques descob imen el que ob e la po a a la possibili a de e un oscil.loscopi amb GNUPlo com a pla a o ma p incipal. Així, aques a in es igació s’en oca a p epa a una guia que pe me i c ea un oscil.loscopi digi al mi jançan GNUPlo . 1.2 Objec ius 1) E alua la capaci a de GNUPlo pe isual iza dades en emps eal. 2) Desen olupa una guia pe OsPlo , una a qui ec u a genè ica que po ans o ma un mic ocon olado i un o dinado en un oscil.loscopi. 3) Es end e l’a qui ec u a amb al e na i es a GNUPlo . 4) Implemen a p og ames de e e ència que explo in les di e en s possibili a s de l’a qui- ec u a. 1.3 Com unciona un oscil.loscopi Un oscil.loscopi [Viq22a] és un ins umen de mesu a que s’u ili za pe isuali za i anali za senyals elèc ics a iables en el emps. Com amb mol es al es coses, els oscil.loscopis són ins u- men s que han e oluciona amb la digi ali zació, c ean una no a gene ació d’oscil.loscopis més p ecisos i que poden e ope acions mol més complexes com mi ges, pic a pic o ans o mades àpides de Fou ie . 1.3.1 Funcionamen bàsic Els oscil.loscopis digi als es basen en l’ús d’un ADC (con e ido analògic-digi al), un sis ema que con e eix senyals analògics en senyals digi als, les quals es p ocessen pe gene a una ep esen ació g à ica en emps eal a la pan alla. L’eix ho i zon al indica el emps, i l’eix e ical indica gene almen ol a ge ( o i que es poden mesu a al es magni uds com el co en ). To s els oscil.loscopis inco po en un subsis ema de igge [Key] que é com a unció es abli un pun de e e ència i sinc oni za la cap u a de les dades. Aques subsis ema és essencial pe ga an i una isuali zació es able i epe ible. Sense el igge , el senyal a isuali za es desplaça ia cons an men a a és de l’eix ho i zon al, en impossible la se a obse ació. 1 2 OsPlo •T eballa di ec amen amb socke s. Aques mè ode o e eix un millo endimen , ja que no eque eix cap mena de con e sió addicional, pe ò eque eix ep og ama pa del p og ama auxilia . Millo es a GNUPlo i al e na i es També és impo an des aca que l’en ocamen ac ual s’ha cen a en la comodi a i la simpli- ci a , u ili zan GNUPlo com un p océs independen del igge . Això ha acili a el desen- olupamen del p og ama auxilia i la se a in eg ació amb el mic ocon olado , pe ò si es ol ob eni una solució més elabo ada i e icien s’hau ia de conside a l’ús de llib e ies especí iques pe a GNUPlo , jun amen amb un en o n de eball que pe me i c ea una in e ície in e ac i a semblan a la d’un oscil.loscopi. L’ús de llib e ies dedicades pe a GNUPlo o e eix a an a ges com un majo con ol i pe so- nali zació dels g à ics, alho a que s’elimina la necessi a de ges iona un segon p océs. També pe me ia in e ac ua di ec amen amb GNUPlo , eliminan la necessi a d’una cua i les c ides al sis ema implicades, millo an l’e iciència i el endimen del p og ama. A més de les millo es a GNUPlo , és elle an assenyala que hi ha al es al e na i es dis- ponibles que poden se més adequades en es a p epa ades pe in eg a -se en un p og ama, a di e ència de GNUPlo . Una d’aques es al e na i es és plo e s, una llib e ia de Rus que pe me c ea g à iques com les de GNUPlo . Una al a al e na i a és u ili za Cha .js, una llib e ia de Ja aSc ip que, jun amen amb en o ns com S el eKi , pe me ia desen olupa una in e ície g à ica uni e sal. Les dues llib e ies mencionades supo en isuali zació en emps eal de mane a na i a. 2.3.3 Diag ama de l’a qui ec u a MCU T igge GNUPlo Comunicació sè ie (UART,I2C,SPI. ..) IPC (Canonades) Soca Socke s (TCP, WebSocke ...) Llib e ia GNUPlo (o al es eines) IPC /Socke s Solució in eg al 8 2.4 OsPlo -MCU 2.4 OsPlo -MCU 2.4.1 Desc ipció de l’a qui ec u a OsPlo -MCU adop a un en ocamen di e en pe a la comunicació en e el mic ocon olado i l’o dinado . En aques cas el p og ama del mic ocon olado es modi ica pe implemen a el sis ema de igge di ec amen en el ma eix mic ocon olado . L’a an a ge p incipal d’aques a solució és la se a e iciència, especialmen quan el mic ocon- olado é una capaci a subs ancial de p ocessamen disponible. D’aques a mane a s’ap o i a la o ali a dels ecu sos in e ns del mic ocon olado pe eali za el p ocessamen necessa i, eduin la cà ega compu acional a l’o dinado i allibe an ecu sos pe al es asques. P ecisamen pe això, l’en ocamen d’OsPlo -MCU és adequa en si uacions en què es desi - ja minimi za la cà ega compu acional a l’o dinado pe di e sos mo ius. Pe exemple, en aplicacions on s’ha de conside a l’e iciència ene gè ica, o si es ol edui la dependència de l’o dinado pe a asques de p ocessamen in ensi es. 2.4.2 Ex ensions Com amb OsPlo -PC, OsPlo -MCU o e eix al es opcions pe la comunicació en e el mic ocon- olado i l’o dinado . A pa del po sè ie, és possible u ili za al es p o ocols de comunicació sè ie com SPI oI2C, o ins i o comunicació a a és de socke s. I ambé exis eix la possibili- a de e se i llib e ies especí iques de GNUPlo o al es eines pe e g à iques com les que s’han menciona a l’apa a 2.3.2. Comunicació bidi eccional amb el mic ocon olado En l’a qui ec u a OsPlo -MCU l’algo i me de igge s’execu a al mic ocon olado , p àc ica- men o çan a es abli una comunicació bidi eccional pe pe me e l’ajus dels pa àme es del igge . Això ol di que pel po sè ie ci cula an by es que no ep esen en mos es, obligan a es abli algun mecanisme pe dis ingi -los. Una mane a senzilla i e icien d’aconsegui -ho és u ili zan un ca àc e d’escapamen i en- iamen pe paque s. Pe exemple, si p enem el by e 128 com a ca àc e d’escapamen , una mos a amb alo 128 es ep esen a ia com 128 i128, men e que un inal del paque de mos es es po indica amb els by es 128 i0. Al es mane es més elabo ades impliquen l’ús d’eines com P o obu , un mecanisme e icien de se iali zació que pe me es uc u a dades pe c ea un p o ocol de comunicació. 9 2 OsPlo 2.4.3 Diag ama de l’a qui ec u a MCU P e-p ocessado by e de con ol GNUPlo Comunicació sè ie (UART,I2C,SPI.. . ) IPC (Canonades) Soca Socke s (TCP, WebSocke . . . ) Llib e ia GNUPlo (o al es eines) IPC /Socke s Solució in eg al 10 3 Implemen ació d’OsPlo -PC amb A duino-C/Py hon/Cha .js En aques a secció es desc iu un exemple d’implemen ació d’OsPlo -PC. El p og ama de l’A - duino és el ma eix que s’ha desc i a l’apa a 2.2.1. L’algo i me de igge s’implemen a à u ili zan Py hon asínc on, i es comunica à amb una in e ície basada en ecnologia web mi - jançan l’ús de WebSocke s. El codi on d’aques a implemen ació es po oba a h ps://gi hub.com/JoanVC100/ OsPlo / ee/main/OsPlo -PC. 3.1 T igge Py hon amb WebSocke s 3.1.1 Desc ipció de l’algo i me de igge Pe simplici a , s’ha modela mi jançan una màquina d’es a s un algo i me de “ igge no - mal” ac i a pe lanc de pujada (sense dispa ado au omà ic). La màquina comença en l’es a “ESPERANT_TRIGGER”, on compa a successi amen les mos es d’en ada amb un ni ell de igge p ede ini . Quan es de ec a un lanc de pujada (la mos a an e io és in e io o igual al ni ell de igge , i la mos a ac ual és igual o supe io al ni ell de igge ), la màquina passa a l’es a “CAPTURANT”. En l’es a de “CAPTURANT” es a se i un comp ado que disminueix a mesu a que a iben les mos es. Un cop es cap u a un nomb e de mos es de e mina (n_cap u ades == 0), s’en ien les mos es a la in e ície i la màquina o na a l’es a d’“ESPERANT_TRIGGER”. ESPERANT TRIGGER Inici CAPTURANT xn−1≤ni ell_ igge && xn≥ni ell_ igge n_cap u ades−− = 0 n_cap u ades== 0 Figu a 3.1: Diag ama de la màquina d’es a s del igge 11 3 Implemen ació d’OsPlo -PC amb A duino-C/Py hon/Cha .js 3.1.2 T ansmissió de les mos es amb WebSocke s Els [Kan, WebSocke s] són una ecnologia que pe me una comunicació pe sis en , bidi eccional i en emps eal en e clien i se ido . Aques a ecnologia és ideal pe eb e les mos es del igge i alho a comunica -se amb el se ido pe can ia ce s pa àme es de l’algo i me. En aques p ojec e, s’ha u ili za la llib e ia de Py hon websocke s, que es à dissenyada pe eballa amb Py hon asínc on (asyncio). P ime amen , el p og ama de igge ha de c ida a la unció websocke .se e(), que c ea un se ido WebSocke pe accep a pe icions de connexions (escol an al po 26142), i hi associa una unció que s’execu a à pe cada connexió en an . Aques a unció a egeix cada connexió en un conjun global de Py hon (un se global) i en a en un bucle in ini . Dins del bucle p incipal, s’enca ega de eb e i ges iona els missa ges en ia s pels usua is, com a a les sol.lici uds de can i de pa àme es especí ics. D’al a banda, la màquina d’es a s del igge a se i el conjun de connexions global pe eali za un b oadcas de les mos es quan la màquina su de l’es a “CAPTURANT”, en ian de mane a e ec i a les mos es a o s els clien s connec a s a a és de WebSocke s. I pe simpli ica la comunicació en e la in e ície i el igge s’ha u ili za P o obu , que pe me can ia els pa àme es de l’algo i me de igge i eb e dades del se ido , com les mos es cap u ades. P o obu a se i un o ma de missa ges es uc u a i e icien (≈2by es de sob ecà ega pe paque de mos es), man enin una ansmissió de dades lleuge a pels clien s. 3.2 In e ície amb Cha .js La in e ície pe isuali za les mos es de l’oscil.loscopi s’ha desen olupa u ili zan ecnolo- gia web, e que pe me ap o i a els a an a ges d’en o ns com Tau i pe c ea aplicacions mul ipla a o ma. Pe la cons ucció dels g à ics en emps eal s’ha u ili za una llib e ia Ja aSc ip anomenada Cha .js. Aques a llib e ia ap o i a l’elemen can as de HTML5 que o e eix una expe iència isual a ac i a i in e ac i a, alho a que man é un bon endimen espec e a al es al e na i es. A di e ència de GNUPlo , es ans e eixen di ec amen les mos es a una ma iu associada al g à ic (en comp es de e se i cues). Aques a ma iu con é les dades dels eixos xiy. Quan a iba un paque de mos es a a és del WebSocke , es copien o es les mos es a les yi es c ida la unció upda e() pe ac uali za el g à ic amb les no es dades. 12 3.2 In e ície amb Cha .js Figu a 3.2: Cap u a de l’implemen ació d’OsPlo -PC 13 4 Implemen ació d’OsPlo -MCU amb A duino-C/Rus /GNUPlo 4.1 Modi icació del p og ama d’A duino Com a pun de pa ida, es p end à el p og ama desen olupa a l’apa a 2.2.1 i s’hi inco po a à la màquina d’es a s de l’apa a 3.1.1 mi jançan un bucle desp és d’iniciali za els pe i è ics. A més, s’a egi à la comunicació bidi eccional pe pe me e can ia els pa àme es del igge des de la in e ície, mi jançan una al a màquina d’es a s. I pe acaba , s’inclou à un il e pe edui la eqüència de mos eig e ec i a calculan una mi jana de nmos es pe al de edui el so oll que cap u a l’ADC. El codi on d’aques a implemen ació es po oba a h ps://gi hub.com/JoanVC100/ OsPlo / ee/main/OsPlo -MCU. 4.1.1 Comunicació bidi eccional amb el igge Pe a la comunicació bidi eccional, s’ha adop a una es a ègia basada en l’en iamen de pa- que s amb by es de con ol pe minimi za el emps p ocessamen de mos es. S’ha implemen- a una màquina d’es a s que, en l’es a “MÀQUINA_TRIGGER”, con inua llegin mos es men e no es gene i una in e upció de ecepció de by es. Pe ò, quan es p odueix la p ime a in e upció, es pa a la cap u a de mos es i l’A duino queda en l’es a “REBRE_ORDRES”, en espe a d’o d es de l’o dinado . Només es eac i a l’algo i me de igge quan s’en ia l’o d e “INICIA_TRIGGER” des de l’o dinado . MÀQUINA TRIGGER Inici REBRE ORDRES In e upció RX Qualse ol al a o d e O d e “INICIA_TRIGGER” Figu a 4.1: Diag ama de la màquina d’es a s pe la comunicació bidi eccional 15 4 Implemen ació d’OsPlo -MCU amb A duino-C/Rus /GNUPlo El p o ocol de comunicació bidi eccional u ili za un by e de con ol amb alo 128 segui s d’un by e que indica el ipus de missa ge en ia : •MCU_FINESTRA: Indica el inal d’un paque de mos es. Po eni qualse ol mida. •MCU_FACTOR_OVERSAMPLING_CANVIAT: Indica èxi en can ia el nomb e de mos es del il e de mi jana. •MCU_FACTOR_OVERSAMPLING: És un paque que con é un by e amb el nomb e de mos es del il e de mi jana. •MCU_N_MOSTRES_CANVIADES: Indica que el nomb e de mos es d’una ines a s’ha can ia . •MCU_N_MOSTRES: Paque que con é el nomb e de mos es d’una ines a (2 by es). •MCU_FS: Re o na la eqüència de mos eig de l’ADC. És un eal de 4by es. •MCU_NIVELL_TRIGGER_CANVIAT: Indica que el ni ell del igge s’ha can ia . •MCU_NIVELL_TRIGGER: Re o na un by e amb el ni ell de igge . •MCU_ERROR: Aques missa ge indica que s’ha p oduï un e o en la comunicació amb l’A duino. Po se causa pe una comanda inco ec a, alo s in àl.lids.. . 4.1.2 Fil e pe eduï la eqüència de mos eig e ec i a La implemen ació del il e pe edui la eqüència de mos eig e ec i a u ili za una ècnica de mi jana de nmos es. Aques a ècnica pe me edui el so oll cap u a pe l’ADC disminuin la eqüència de mos eig e ec i a. La eqüència e ec i a es calcula di idin la eqüència de mos eig o iginal pel nomb e de mos es usades en el càlcul de mi jana (Fs n). Aques ac amen del senyal po se ú il quan es ol isuali za senyals de més baixa e- qüència amb més esolucio (> 8 bi s), o com a mè ode pe augmen a les di isions de emps. Pe ò és impo an eni en comp e que aques a mi jana po eni un e ec e nega iu en la cap u- a de pics àpids. El sua i za de les luc uacions po p o oca que els pics àpids es edueixin o desapa eguin a la ep esen ació g à ica. Aques a és una limi ació inhe en de la ècnica de mi jana, i s’hau ia de soluciona amb al es en ocamen s, com el igge amb de ecció de pics. 4.2 P og ama auxilia amb Rus El p og ama d’OsPlo -MCU esc i en Rus es à o ien a a la p og amació asínc ona i pe esde enimen s. S’u ili za okio, una biblio eca de p og amació asínc ona pe al llengua ge Rus . P opo ciona eines i abs accions pe ges iona aques a ècnica de p og amació de mane a senzilla. En conc e es a se i l’ex ensió okio-se ial, que a egeix la possibili a d’in e ac ua amb po s sè ie asínc onamen . 16 4.2 P og ama auxilia amb Rus La asca p incipal del p og ama és una unció que, p ime de o , iniciali za el po sè ie en ian la comanda pe inicia el igge del mic ocon olado . Segui d’això, es c ea el p océs de GNUPlo en un di ec o i empo al, que con é la cua pe la ansmissió de mos es i el sc ip que ha d’execu a . Aques sc ip inclou alguna modi icació, ja que els alo s de l’eix xs’en ien ambé pe la cua, e i an a GNUPlo càlculs pe cada ep esen ació. Aques a asca en a en un bucle que con ínuamen llegeix paque s del po sè ie. Quan a iba un paque de mos es, les mos es es copien a una ma iu que con ind à cada mos a i la se a co esponen x, i l’en ia à di ec amen a a és de la canonada (pe la es a de paque s no es eali za accions elle an s). Aques bucle només pod à acaba quan, o bé hi hagi algún e o (es anca el po sè ie, mo el p océs de GNUPlo ...), o si la asca de la CLI li en ia un missa ge de ancamen (pe C l-C, o d e de so ida.. .). La asca de la CLI é com a unció in e pe a o d es de l’usua i (que a iben pe s din) i ansme e-les a la asca p incipal. Pe limi acions de okio, en comp es de c ea una asca pe llegi la s din, es c ea un il que llegeix l’en ada de l’usua i i l’en ia a la asca de la CLI. I pe ges iona el C l-C, es c ea un al e il que en ia una senyal a la ma eixa asca. To a la comunicació en e asques és possible g àcies als MPSC (Mul i-P oduce Single- Consume ) i Onesho s, que són canals asínc ons que pe me en la comunicació en e múl iples asques. Sepa a el p og ama en aques es asques pe me sepa a els di e en s blocs d’esde e- nimen s d’una mane a cla a i es uc u ada. Figu a 4.2: Cap u a de l’implemen ació d’OsPlo -MCU 17