Simulator CU Rol Educational DE Resuscitare Cardiopulmonara
Cuprins
Introducere
Din totalitatea sistemelor ce alcătuiesc un organism viu, trei se remarcă prin importanța lor în menținerea vieții. Este vorba de sistemul circulator împreună cu sistemul respirator, ambele controlate în mod automat de către sistemul nervos. Acesta din urmă, este considerat cel mai important și sensibil sistem din tot organismul uman. Respirația și circulația sanguină sunt funcții vitale, în cazul nefuncționării unuia dintre acestea, corpul intră în stare de șoc. Este nevoie de intervenția imediată a unor măsuri de prim ajutor care se impun în aceste situații. Acestea pot fi învățate de către oricine, fără o pregătire medicală intensă. Manevrele de prim ajutor executate la persoanele în stare de stop cardiorespirator sunt cunoscute sub numele de resuscitare cardiopulmonară. Dată fiind importantă menținerii pulsului și a respirației în corpul uman, învățarea acestor tehnici de resuscitare și aplicarea lor corect și în timp util face că acest domeniu de prim ajutor să fie o necesitate. Învățarea tehnicilor de resuscitare cardiopulmonară se face cu ajutorul manechinelor specializate în acest sens.
Pentru o simulare cât mai reală a corpului uman se folosesc manechine fabricate din diverse materiale. Acestea sunt dotate cu componente electronice de specialitate; senzori, afișaje, etc. Recent, o dată cu dezvoltarea calculatoarelor, simulatoarele oferă și posibilitatea conectării la calculator, pentru programare sau colectarea datelor obținute în timpul unui exercițiu de resuscitare. Pe piață există o gamă largă de astfel de manechine de resuscitare. Calitatea și prețul diferă de la materialul fabricat până la complexitatea acestora din punct de vedere electronic și funcțional.
Rolul acestei lucrări este de a prezența asamblarea unui manechin de resuscitare cu posibilitate de reprogramare, în vederea menținerii parametrilor de resuscitare la standardele din medicină, care, în materie de resuscitare sunt revizuite o dată la 3 ani. Nucleul acestui proiect constă în platforma de dezvoltare Arduino. Aceasta conține un microcontroller integrat pe o placă electronică echipată cu tot ce este necesar pentru a comunica și interacționa cu aceasta. Se va realiza tot ansamblul la un cost minim posibil, până în 10% din costul unui manechin comercializat în magazinele de specialitate.
Capitolul 1. Corpul uman și resuscitarea
Istoric resuscitare cardiopulmonară
Din vechi timpuri s-a încercat readucerea la viață a celor trecuți în neființă. Multe din tehnici erau la vremea respectivă că fiind salvatoare, acum însă, țin de capitolul bizarului. Printre acestea se pot enumera: incantații, lovituri, strigăte, înțepări cu diferite obiecte. [1] La un punct în istorie ne sunt prezentate cazuri de resuscitare a unor animale prin intubare și masaj cardiac intern. De multe ori, în situația în care se reușea resuscitarea, aceasta era pusă pe seama intervenției divine.
Resuscitarea cardiopulmonară nu a reprezentat obiectul activității unei anume specialități medicale, medicii de orice specialitate confruntându-se cu drame medicale încă de la începuturi. Andreas Vesalius a intuit necesitatea ventilației artificiale în scopul resuscitării încă de acum 500 ani. Ulterior, medici celebri ce marchează istoria medicinii, au creat opinii de abordare a pacientului în stop cardiorespirator, care au influențat multă vreme tehnica resuscitării. Aceste opinii, din ce în ce mai elaborate și orientate fiziopatologic au “supraviețuit” până în epoca modernă. Peter Safar, părintele resuscitării moderne, este unul dintre primii care subliniază necesitatea abordării ordonate a stopului cardiorespirator, abordare multidisciplinară care se apropie cel mai mult de scopul resuscitării: readucerea la viață a unui pacient în cel puțin aceleași condiții cu cele anterioare opririi cardiace.
În anul 1989 ia ființă Consiliului European de Resuscitare, organism științific medical multidisciplinar, care are că scop principal îmbunătățirea condițiilor de efectuare a resuscitării cardiopulmonare, deci a șanselor de supraviețuire unui stop cardiorespirator, prin elaborarea de standarde și ghiduri, precum și a unui program de educație în resuscitare. Medicina modernă a evoluat, iar acum tehnicile de resuscitare se instruiesc pe tot cuprinsul globului. Executarea corectă și în timp util a manevrelor de resuscitare poate salva viața unor semeni aflați în pericol.
Funcțiile vitale ale organismului uman
Sistemul circulator
Componenta principală a sistemului circulator este mușchiul cardiac, cunoscut sub numele de inimă sau cord, prezentată în figura 1.1. Această are formă unei pere, este goală pe dinăuntru iar contracțiile acesteia produc circulația sângelui în întregul organism.[2]
Fig.1.1 Construcția cordului
Alături de inimă, corpul uman dispune de o rețea de vase sanguine pentru a putea fi realizată circulația în vederea oxigenării și alimentării organismului cu substanțe nutritive și vitamine. Substanțele conținute în sânge sunt vitale fiecărui organ din corp și deci, implicit, întregului organism. Arterele sunt vasele de sânge care pleacă de la nivelul cordului, au formă cilindrică și de la acestea se ramifică arborescent întreg sistemul circular.
Sângele este un țesut lichid, compus dintr-o parte lichidă (plasmă -55%) și una solidă (elemente figurate -45%), care circulă într-un sistem închis (sistemul circulator). Față de alte țesuturi, celulele sângelui nu sunt imobilizate, ci ele "plutesc" într-un lichid vâscos (plasmă). Datorită acestui fapt, sângele este un țesut mobil care reușește să se strecoare în toate părțile corpului. În fig.1.2 este descris întregul sistem circulator și fluxul de sânge în corpul uman.
Fig.1.2 Sistemul circulator în corpul omenesc
Rolul sângelui este acela de a asigura:
– transportul diferitelor substanțe spre locul lor de destinație; țesuturi și celule (substanțe nutritive, produși intermediari, enzime, hormoni, etc.),
– respirația tisulară (transportul oxigenului dinspre plămâni spre celule și a dioxidului de carbon dinspre celule spre plămâni),
– epurarea organismul (descărcarea din mediul intern, prin organele de eliminare, mai ales prin rinichi, a produșilor de dezasimilație și a toxinelor),
– transformarea unor substanțe (prin enzimele pe care le conține și mai ales prin transportul compușilor spre ficat),
– imunitatea organismului (prin anticorpii pe care îi conține),
– repartizarea și reglarea căldurii în organism,
– menținerea constantă a echilibrului acido-bazic și a balanței hidrice,
– reconstrucții organice, acolo unde este necesar. [3]
Sistemul respirator
Sistemul respirator este alcătuit din căi respiratorii superioare, inferioare, unitatea respiratorie, cutia toracică, diafragmul și structurile subdiafragmatice.Sistemul respirator are rolul de a oxigena organismul. Alături de sistemul circulator, participă la schimbul de gaze necesare ființelor umane. Alte roluri al sistemului respirator sunt generarea vocii, echilibrul acido-bazic și mirosul.[3] Organul central al sistemului respirator îl constituie plămânii. Aceștia reprezintă un organ pereche cu rol în respirație, care furnizează oxigen întregului corp și elimină dioxidul de carbon din sânge. Diagrama sistemului respirator este prezentată în fig. 1.3.
Fig.1.3 Sistemul respirator
Oxigenul inspirat prin cavitatea nazală sau bucală este transportat până în plămâni, unde se realizează schimburile de gaze la nivel molecular. Plămânii sunt cele mai vascularizate organe din corpul omenesc și de aceea, în plămâni se oxigenează sângele, care apoi este pompat în tot organismul. Aceștia sunt dispuși în interiorul cavității toracice, în partea superioară. La un adult dezvoltat, masa normală a acestora este în jur de 700 grame. Plămânul stâng este puțin mai mic, pentru a lăsa loc inimii în interiorul cavității toracice.
Respirația în corpul uman este alcătuită din două faze:
prima fază a respirației se desfășoară la nivelul plămânilor – respirația externă sau pulmonară
faza a doua are loc la nivelul celulelor și se numește respirație internă sau celulară. La nivelul celulelor se desfășoară procesele de oxidare lentă a substanțelor organice simple, rezultate în urma digestiei, rezultând energia necesară funcționării organismului și produși de dezasimilație ce sunt eliminați pe diferite căi.
Sistemul nervos
Sistemul nervos ce intră în alcătuirea omului reprezintă cel mai complex produs al evoluției biologice. Este unul din cele mai activ studiate domenii de cercetare din cadrul medicinei și biologiei contemporane. Acesta rămâne încă un mister, chiar și după atâtea milioane de ani de viață pe Pământ. Cunoașterea organizării complexe a sistemului nervos, cât și a funcțiilor sale este departe de a fi completă.Este constituit din subuntati aflate într-o activitate permanentă. Sistemul nervos este împărțit în două componente majore: sistemul nervos central (creierul și măduva spinării) și sistemul nervos periferic.
Sistemul nervos autonom sau vegetativ este o componentă vitală în cazul tuturor ființelor vii. Acesta face parte din sistemul nervos periferic. Nu se află sub control conștient și influențează procese precum frecvența cardiacă, digestia, respirația, salivația, transpirația, dilatarea pupilei și altele. Perturbări în funcționarea acestui sistem atât de important pot să provoacă abateri de la funcționarea normală a cordului, tulburări ale presiunii arteriale, dificultăți în respirație și deglutiție. Dacă bătăile inimii și respirația sunt controlate de această componentă a organismului nostru, în cazul disfuncției se poate instala stopul cardiorespirator, cu consecințe fatale asupra celui care întâmpină această situație. Pentru a compesa lipsa bătăilor inimii și a respirației și aplică măsuri de resuscitare cardiopulmonara, atât de importante, descrise în această lucrare.
În figura 1.4 este prezentată structura sistemului nervos în organismul uman.
Fig.1.4 Sistemul nervos în corpul uman
Componenta principală a sistemului nervos este creierul. Acesta mai este denumit și encefal ( lat. cerebrum, grec. Ενκέφαλον, encephalon). Într-un creier uman există între 85 și 100 de miliarde de neuroni, fiecare având în jur de 10.000 de conexiuni). Creierul este cel mai mare consumator de oxigen din corpul nostru, de aceea în cazul operației de resuscitare, chiar dacă nu s-a reușit pornirea inimii, manevrele trebuie executate timp de 45 de minute sau până la epuizarea salvatorului. Compresiile toracice împreună cu ventilațiile mecanice aplicate victimei dezvoltă destul oxigen în plămâni pentru a menține creierul în viață. Dacă survine moartea celulelor cerebrale, victima care a suferit stop cardiorespirator, se poate declara decedată.
Stopul cardiorespirator. Definiție și clasificare
După cum am precizat în rândurile de mai sus, cunoașterea tehnicilor de resuscitare într-un mod cât mai corect, poate duce la salvarea unor victime aflate în stop cardiorespirator. Nevoia cunoașterii manevrelor necesare ce se impun în astfel de situații este în creștere de la an la an.
Stopul cardiac este principala cauză de deces, afectând anual aproximativ 700.000 de indivizi în Europa și aproximativ 460.000 de indivizi în SUA. Intervenind corect, putem scădea numărul victimelor. Pe de altă parte în cazul în care nu evaluăm corect o victimă, îi putem agrava situația, ajungându-se până la a-i provoca decesul. Principalele semne ale unei persoane aflate în stop cardiorespirator sunt:
paloare sau cianoză intensă, generalizată, rapid instalată;
pierderea rapidă a stării de conștiență;
tulburări respiratorii severe rapid instalate: bradipnee aritmică, gasp-uri, neregulate până la apnee;
midriază (dilatarea excesivă a pupilei. Poate să lipsească în unele situații).
În cazul în care se instalează stopul cardiorespirator, intervenția cât mai rapidă este importantă mai ales din prisma menținerii creierului irigat de sânge. Oxigenul existent în sânge este suficient pentru sistemul nervos doar pentru o periul în viață. Dacă survine moartea celulelor cerebrale, victima care a suferit stop cardiorespirator, se poate declara decedată.
Stopul cardiorespirator. Definiție și clasificare
După cum am precizat în rândurile de mai sus, cunoașterea tehnicilor de resuscitare într-un mod cât mai corect, poate duce la salvarea unor victime aflate în stop cardiorespirator. Nevoia cunoașterii manevrelor necesare ce se impun în astfel de situații este în creștere de la an la an.
Stopul cardiac este principala cauză de deces, afectând anual aproximativ 700.000 de indivizi în Europa și aproximativ 460.000 de indivizi în SUA. Intervenind corect, putem scădea numărul victimelor. Pe de altă parte în cazul în care nu evaluăm corect o victimă, îi putem agrava situația, ajungându-se până la a-i provoca decesul. Principalele semne ale unei persoane aflate în stop cardiorespirator sunt:
paloare sau cianoză intensă, generalizată, rapid instalată;
pierderea rapidă a stării de conștiență;
tulburări respiratorii severe rapid instalate: bradipnee aritmică, gasp-uri, neregulate până la apnee;
midriază (dilatarea excesivă a pupilei. Poate să lipsească în unele situații).
În cazul în care se instalează stopul cardiorespirator, intervenția cât mai rapidă este importantă mai ales din prisma menținerii creierului irigat de sânge. Oxigenul existent în sânge este suficient pentru sistemul nervos doar pentru o perioadă de aproximativ 4 minute, de aceea instituirea măsurilor de resuscitare în acest interval asigură șanse de supraviețuire. Acestea scad cu 7-8 procente la fiecare minut de întârziere în a efectua manevrele de prim ajutor.
Date fiind aceste aspecte, este foarte important să cunoaștem pașii pentru a putea salva pe cineva și pentru a nu deveni chiar noi înșine victime. [5]
Ghid de resuscitare cardiopulmonară
În fig. 1.5 este prezentată schema de principiu a intervenției în cazul resuscitării.
Fig.1.5 Diagramă de resuscitare
Principalele manevre ce trebuiesc învățate și practicate în cazul unei resuscitări cardiopulmonare sunt prezentate în Anexa 1. Acestea se aplică pe victimă până la sosirea echipajului de prim-ajutor specializat sau până la epuizarea salvatorului. Deși persoana aflată în stop cardiorespirator nu prezintă semne vitale, este necesară continuarea măsurilor de resuscitare până la o oră după instalarea stopului cardiorespirator. Această operațiune este necesară pentru a preveni coagularea sângelui în corp și pentru a oxigena creierul. Este uneori contestată nevoia respirației artificiale, pe motive de igienă și transmiterea bolilor pe cale virală. Simpla înclinare a capului și asigurarea permeabilității căilor respiratorii, împreună cu compresii toracice ritmice pe un plan solid, fac să nu mai fie nevoie de intervenția gură-la-gură a salvatorului, schimbul de gaze fiind suficient pentru oxigenarea organismului.
Riscurile salvatorului
În fața unei persoane aflată în stop cardiorespirator, urgența situației nu trebuie să distragă atenția salvatorului astfel încât acesta să nu mai țină cont de măsurile de protecție. De cele mai multe ori, resuscitatorul nu este instruit să salveze victima de la locul accidentului, principala lui menire fiind să efectueze resuscitarea. Prima regulă legată de riscurile RCP este ca viață salvatorului să nu fie pusă în pericol. Resuscitarea cardiopulmonară presupune riscuri legate de locul desfășurării și riscuri legate de victimă.
Înainte de a se apropia de o victimă, salvatorul trebuie să se asigure că nu există nici un pericol iminent care să provină din mediul înconjurător.
Riscuri legate de mediu:
•trafic;
• construcții instabile;
• electricitate;
• gaze;
• apă;
• substanțe toxice.
Riscuri legate de victimă:
• contactarea unor boli transmisibile;
• intoxicații;
Riscuri legate de tehnică:
• utilizarea defibrilatorului;
• utilizarea de instrumente ascuțite.
În concluzie, pentru propria protecție, în scopul evitării contactului cu materiale
biologice sau substanțe toxice, salvatorul va folosi echipament de protecție: mănuși, ochelari, măști, halate, recipiente speciale pentru depozitarea instrumentelor ascuțite.
Capitolul 2. Simulatorul de resuscitare
Standardele Internaționale de resuscitare
Pentru a ține pasul cu ultimele standarde în materie de resuscitare, un simulator este nevoie să se alinieze standardului AHA elaborat în 2010. Manechinul este destinat instruirii și examinării cursanților, în activitățile de învățare a tehnicilor de resuscitare cardiopulmonară prin masaj cardiac și insuflare de aer și acordării de primului ajutor în cazul rănirilor. În scopul învățării corecte a tehnicii de resuscitare, cursantul trebuie să-și poată însuși manevrele corecte, iar în acest sens el trebuie să aibă în fiecare moment un feed-back al corectitudinii manevrei efectuate. Acest feed-back este sonor și vizual. Ecranul cu leduri, prin aprinderea progresivă în funcție de adâncimea de compresie și volumul de aer insuflat, permite cursantului să-și formeze reflexe corecte de apăsare sau insuflare. Toate operațiile greșite sunt însoțite și de un sunet caracteristic de avertizare. Ciclul de resuscitare este cel standardizat: cinci cicluri 30:2 ( compresii: respirații). Frecvența compresiilor este de 100 /min.
Manechinul cu bloc electronic de evaluare a corectitudinii manevrelor de resuscitare cardiopulmonară, are următoarele caracteristici:
tehnicile care se învață cu ajutorul manechinului sunt în concordanță cu prevederile din Guidelines for CPR 2010 (Ghid de bune practici pentru operații de resuscitare) editat de American Heart Association și din ERC Guidelines editat de European Resuscitation Council
compresia toracică este realistă și permite învățarea corectă a tehnicilor de resuscitare cardiopulmonară
-căile aeriene sunt prevăzute cu sistem de simulare a blocării sau eliberării acestora
-este prevăzut cu simulator de puls carotidian
-prezintă rezistență la compresie și asigură revenirea normală a pieptului
-înlocuirea componentelor eventual defectate se face ușor, fără instrumente suplimentare, ansamblul fiind conceput modular
-după efectuarea cu succes a resuscitării cardiopulmonare, se poate verifica pulsul carotidian
Blocul electronic se conectează la manechin prin intermediul unui cablu și realizează evaluarea resuscitării în timp real precum și afișarea pe ecran a performanțelor realizate. Funcțiile blocului electronic sunt:
-evaluare dinamică a performanței CPR cu ajutorul coloanelor graduale de LED-uri.
-indicatori pentru:
compresii în afara parametrilor
ecran LCD (40 coloane și 2 rânduri)
alarmă sonoră
-controale pentru:
1.pornit/oprit
2.metronom 100 bpm (implementat software)
Materiale necesare realizării simulatorului
Pentru realizarea acestui proiect lista de materiale necesare cuprinde:
Manechin de simulare a manevrelor de resuscitare (cu posibilitate de extensie a capului)
Placă de prototipare din familia Arduino, varianta Mega 2560
Afișaj cu cristale lichide, cu conexiune paralelă
Afișaj cu LED-uri
20 rezistori de 220Ω
Diodă Zener cu prag de 4,2V
1 rezistor de 700Ω
Placă de test de tip Eurocard
Cutie de montaj
Senzor sensibil la apăsare
Senzor de proximitate
Buzzer
Motor cu vibrator
Sursă de alimentare
Circuite stabilizatoare de tensiune (5V si 8V)
Descrierea și rolul componentelor în cadrul ansamblului
Piesa centrală a acestui proiect o constituie platforma de prototipare în electronică, Arduino. Această este o platformă de tip open-source, bazată pe microcontroller, creată special pentru a interacționa cu diverși senzori (semnalele de ieșire ale acestora). Un alt rol ar fi acela de a gestiona semnalele primite de la senzori către dispozitive externe cum ar fi motoare, difuzoare, LED-uri. Un aspect important în utilizarea acestei plăci este programarea facilă chiar și de către utilizatorii cu cunoștințe medii în domeniul programării, fapt care face că această platformă să fie o rampă bună de lansare pentru cei care doresc să creeze obiecte interactive sau diferite proiecte, precum cel în curs.
În anii `70 una din cele mai importante inovații în istoria calculatoarelor o reprezenta descoperirea microprocesoarelor. Acestea au miniaturizat componentele electronice ale unității centrale al unui calculator într-un singur circuit integrat, cunoscut sub numele de microcip. Apoi, microcip-ul a reprezentat componenta principală a microcontrollerelor de astăzi.
Numele „Arduino” este dat de Massimo Banzi, unul din creatorii plăcii, în 2005. Denumirea se trage de la un vechi rege numit Arduin. La vremea lansării a reprezentat un proiect pentru studenți care între timp a căpătat amploare și a creat o revoluție în electronică. Datorită faptului că Arduino se află sub incidența licenței de tip open-source, se găsesc pe Internet programe specializate pentru diverși senzori sau echipamente. Ele s-ar putea să aibă nevoie de mici ajustări parametrice pentru a le putea include în proiectele personale, cum a fost și cazul de față. De asemenea se pot face publice toate proiectele pentru a putea schimba experiențe cu alți pasionați de electronică, robotică, mecatronică, calculatoare, etc. Toate aceste caracteristici fac din Arduino cea mai influentă platformă open-source din zilele noastre. Cu ajutorul plăcilor din familia Arduino se pot realiza proiecte complexe. Limitările din punct de vedere creativ sunt foarte puține, aproape nule. Exemple de proiecte care se pot executa cu ajutorul platformei Arduino:
Automatizări în locuință
Control centrale termice (temperatură, presiune, alți parametrii funcționali)
Diferiți roboți, drone, brațe robotizate, roboți de șah
Ceasuri (analogice, digitale, binare)
Control LED-uri (display, matrice, cub)
Afișaje de orice natură
Asocierea cu articole sportive (prelevare biosemnale și memorare sau prelucrare)
Instrumente muzicale
Jocuri
De la lansarea conceptului în 2005, s-a creat în jurul acesteia o adevărată industrie. Se comercializează toată gama de plăci derivate sau plăci de extensie, modulare, interconectabile. Cu ajutorul plăcilor de extensie, denumite shield-uri se pot transmite date la distanță, pe Internet, prin bluetooth, comunicație Wi-Fi. S-au dezvoltat senzori, module de alimentare și comandă speciale care să fie compatibile cu Arduino. Datorită posibilității de control PWM la majoritatea plăcilor, familia Arduino se transformă într-un prieten de nădejde atunci când vine vorba de controlul precis al unor motoare
Arduino Mega 2560
Arduino Mega 2560 este o placă de dezvoltare care are la bază un microcontroler ATMega 2560. Această placă de dezvoltare are 54 de intrări/ieșiri digitale (din care 14 pot fi folosite ca ieșiri PWM), 16 intrări analogice, 4 UART (porturi seriale, seriale hardware), un oscilator de 16 MHz, conexiune prin USB, o mufă de alimentare, un antet ICSP și un buton de resetare. Aceasta conține tot ceea ce este necesar pentru a susține un microcontroler. Se conectează pur și simplu la un computer prin cablul USB. Arduino Mega poate fi alimentat prin portul USB sau printr-o sursă de alimentare externă. În momentul când este prezentă o sursă de alimentare externă se conectează automat la aceasta. [9]
În figura 2.1 este prezentată platforma de prototipare Arduino varianta Mega2560
Fig. 2.1 Arduino Mega 2560
Din multitudinea de plăci Arduino, eu am ales această varianta datorită numărului mare de intrări/ieșiri precum și a memoriei mari disponibilă pentru a încărca programe complexe. Mega 2560 reprezintă cel mai bun raport preț-capacități. Acest proiect se poate extinde pe viitor, existând posibilitatea de conectare a viitoarelor îmbunătățiri la intrările/ieșirile rămase libere pe placă.
În tabelul 2.2 sunt descrise capacitățile tehnice ale plăcii Arduino Mega2560
Tabelul 2.2 Specificațiile tehnice ale plăcii Arduino Mega
Simulatorul de resuscitare și asemănarea cu corpul uman
Pentru a putea învăța tehnicile de resuscitare corecte este nevoie de o simulare cât mai fidelă a corpului uman. În acest proiect voi folosi un manechin de resuscitare al firmei Simulaids, varianta numită Adam. Simulaids este o firmă cu renume mondial în materie de produse cu rol educațional. Compania produce o gamă largă de articole destinate simulării corpului uman din punct de vedere medical. În fig.2.3 este prezentat manechinul de resuscitare folosit în acest proiect.
Fig.2.3 Manechin de resuscitare
În continuare vă voi prezenta celelalte componente folosite pentru a echipa acest torso cu componente electronice menite să simuleze corpul uman.
Pentru că tehnicile de resuscitare pun accent pe eliberarea căilor respiratorii cu hiperextensia capului și compresiile toracelui în vederea restabilirii pulsului unei victime aflate în stop cardiorespirator, am selectat senzorii care să imite cât mai bine acești parametrii.
Asemeni oricărui echipament electronic și acest simulator va avea nevoie de o sursă de alimentare. Voi folosi pentru aceasta o sursă de 12V, stabilizată, cu intensitatea curentului debitat de până la 5A. Această sursă se va diviza ulterior în mai multe nivele de tensiune, respectiv 8V și 5V. Sursa de alimentare a acestui proiect este prezentată în fig. 2.4
Fig.2.4 Sursa de alimentare 12V 5A
Operația de divizare a tensiunii în mai multe praguri este realizată cu ajutorul circuitelor integrate stabilizatoare din familia LM78XX, unde ultimele două cifre din codul componentei reprezintă valoarea tensiunii stabilizate de ieșire. Valorile din familia 79XX furnizează la ieșire o tensiune stabilizată cu valori negative. Se poate folosi în cadrul aceluiași montaj circuite din familia 78XX și 79XX pentru a asigura alimentarea cu tensiuni stabilizate ale ambelor praguri.
Un exemplu de circuit stabilizator realizat cu LM7805 este prezentat în figura 2.5
Fig. 2.5 Circuit de stabilizare la pragul de 5 V
Circuitul de stabilizare care furnizează la ieșire 5 V va fi folosit pentru alimentarea majorității senzorilor folosiți. Este necesară folosirea unui circuit extern de alimentare deoarece curentul maxim furnizat de o ieșire Arduino, nu depășește 40mA, iar în unele situații consumul este de până la 160mA.
Circuitul de stabilizare de 8V va fi folosit la alimentarea plăcii Arduino. Se recomandă a se folosi o valoare cuprinsă între 7-12 V, pentru a putea pune în funcțiune stabilizatorul intern al plăcii. În cadrul acestei lucrări, tensiunea de 12V este folosită doar pentru a alimenta senzorul de proximitate utilizat în simularea căilor respiratorii blocate.
Normele de resuscitare prevăd a se verifica starea de sănătate a victimei, implicit parametrii vitali. Pulsul se verifică poziționând două degete peste artera carotidă (la gât), iar respirația se verifică cu urechea peste gură victimei, în timp ce privim la torace, pentru a sesiza eventuale mișcări ale acestuia. Manevrele complete de resuscitare includ ventilații artificiale de tip gură-la-gură și compresii toracice ritmice. Resuscitarea este ineficientă în cazul în care nu se verifică starea căilor respiratorii, și degajarea acestora, după caz. Pentru această operațiune este nevoie de hiperextensia capului. Cu o mâna așezată pe fruntea pacientului sau a simulatorului se duce capul acestuia pe spate, până la punctul la care traheea și căile respiratorii superioare (nasul și gură) sunt cât se poate de coliniare. Această poziție deschide căile respiratorii și se menține pe toată durata executării compresiilor toracice, pentru a permite schimbul de gaze necesar oxigenării organismului. Din motive de igienă acest manechin nu este prevăzut cu orificiu sau senzor pentru ventilație mecanică (gură-la-gură), deschiderea căilor respiratorii, fiind suficientă pentru ilustrarea principiilor de resuscitare.
Hiperextensia capului în acest proiect este simulată de un senzor de înclinare. Acesta funcționează pe principiul unui contact cu bilă. Este prevăzut cu două contacte de alimentare și două contacte de ieșire, care reprezintă stările bilei din interiorul cipului. Senzorul redă aceste două stări către Arduino, iar acesta compară matematic valorile și le afișează, după preferință. În funcție de poziția bilei, senzorul poate furniza la ieșire 4 stări.
În fig. 2.6 este prezentat senzorul de înclinare al firmei Sparkfun, model RPI-1031
Fig.2.6 Senzor de înclinare
În vederea simulării căilor respiratorii blocate voi folosi un senzor de proximitate inductiv, montat în cavitatea bucală a manechinului. Acesta detectează prezența metalelor, deci vom simula blocarea/deblocarea acestora cu un obiect metalic. Efectul Hall stă la baza funcționarii acestui senzor. Este prevăzut cu 3 terminale (V+, GND, OUT). El va acționa ca un comutator, tensiunea de alimentare se va regăsi între borna de ieșire și GND doar în cazul prezenței unui metal în raza sa de acțiune.
În fig. 2.7 este prezentat senzorul inductiv folosit pentru simularea căilor respiratorii blocate.
Fig. 2.7 Senzor de proximitate Omron
Am ales acest senzor datorită construcției sale robuste și a rezistenței sale din punct de vedere mecanic și electric. Prezența sau absența tensiunii de ieșire va fi interpretată astfel: dacă există tensiune, înseamnă că senzorul este activ, implicit gura manechinului este obturată de un obiect metalic. În cazul lipsei semnalului, simulatorul va considera căile respiratorii ca fiind eliberate. Deoarece senzorul va furniza la ieșire tensiunea cu care este alimentat, 12V, este nevoie de un rezistor de 700Ω o diodă Zener cu prag de 4,2 V (orice valoare între 2,5÷5V). Dioda are rolul de a coborî tensiunea de la ieșirea senzorului până la un nivel la care să poată fi interpretată de Arduino, fără a fi riscul de a supraalimenta microcontroller-ul, și deci a distruge întreaga placă. Această tensiune trebuie să fie între 2,5V și 5V pentru a putea distinge un nivel de tensiune echivalent cu „1” logic. Acesta va însemna prezența semnal, deci căi respiratorii blocate.
Compresiile toracice vor fi simulate cu un rezistor sensibil la apăsare. Acesta funcționează ca un senzor care își schimbă valoarea tensiunii de ieșire în funcție de forța cu care este comprimat. Este prevăzut cu 3 terminale (V+, GND, OUT). Tensiunea de alimentare este de 5V. La ieșire această tensiune variază între 1-5 V, valoare stabilită de nivelul de apăsare. În fig. 2.8 este prezentat un rezistor sensibil la apăsare.
Fig. 2.8 Rezistor sensibil la apăsare
Interpretarea datelor de ieșire ale acestui senzor se face cu ajutorul platformei Arduino. În cadrul programării se pot impune praguri de sensibilitate la diferite forțe de apăsare. În acest caz, am configurat 3 praguri de compresie, pentru a separa compresiile în afara parametrilor de cele corecte. Ghidurile de resuscitare subliniază că distanța compresiilor nu trebuie să depășească 5 cm în adâncime. Orice compresie sub 5 cm este considerată ineficientă, iar o valoare peste această limită poate provoca ruperea coastelor sau leziuni pe stern. Avantajul folosirii acestui senzor îl constitue faptul că suprafața sa sensibilă este unifomă, nu depinde de zona în care este apăsat. Dimensiunea senzorului este approximativ egală cu suprafața podului palmei cu care se realizează compresiile, deci locația unde este amplasat sub stratul de piele al manechinului este importantă. Normele de resuscitare pun un accent deosebit pe poziționarea mainilor la etapa de compresii toracice.
Etapele care trebuiesc parcurse în timpul procesului de resuscitare sunt afișate pe un ecran, la finalizarea fiecărui pas este indicat „Pas: (numărul) complet”. Ecranul folosit în cadrul acestui proiect este de tip LCD cu posibilitate de afișare a 40 de caractere dispuse pe două rânduri. Conexiunea cu placă Arduino se realizează paralel, datele sunt transmise în același timp către procesorul responsabil de decodarea acestora. Afișajul are integrat cipul Hitachi HD44780, unul dintre cel mai des folosite circuite în materie de afișaje cu cristale lichide cu matrice de puncte. Firma producătoare a proiectat microcontroller-ul special cu destinația caracterelor alfanumerice, cu posibilitate de conexiune la un microprocesor, pentru a afișa diverse date, cum este și cazul de față. În figura 2.9 este prezentat afișajul cu cristale lichide folosit pentru ilustrarea pașilor în timpul efectuării manevrelor de resuscitare, pentru o cât mai bună experiență educațională.
Fig.2.9 Ecran LCD de tip 40×2
În cazul unui ciclu de resuscitare complet, pentru a valida corectitudinea manevrelor execuate, este nevoie de a porni „pulsul” acestui manechin. Această operațiune se face cu ajutorul unui micromotor cu vibrator alimentat din placă Arduino și poziționat în zona arterei carotide a manechinului, locul unde se verifică pulsul la om. Acesta va fi temporizat din program, va funcționa 750ms și tot atât timp este oprit. Acest motor nu pornește decât în cazul efectuării unui ciclu complet și corect din punct de vedere parametric, conform cu standardele medicale.
Acest motor este un motor ce se alimentează cu tensiune continuă. Se poate alimenta între 1-5 V. Pe axul motorului, excentric este presată o greutate, care îi deteriorează balansul, făcându-l să vibreze. Este folosit în majoritatea aplicațiilor unde este nevoie de atenționarea utilizatorului în mod tactil. Telefoanele mobile sunt dotate majoritatea cu astfel de motoare vibratoare. Un exemplu de motor cu vibrator este prezentat în figura 2.10
Fig.2.10 Micromotor cu vibrator
Asamblarea componentelor
După ce s-au făcut pregătirile legate de selecționarea combinației optime de senzori și electronică, se montează toate in simulatorul propriu-zis. Această etapă presupune lipirea componentelor adiacente pe placa electronică finală și interconectarea subansamblelor. Această placa va constitui suportul de bază pentru tot ansamblul exemplificată în Fig. 2.11.
Fig. 2.11 Placa electronică principală care înglobează Arduino Mega2560
Placa principală este construită sub forma unei plăci de extensie care să potrivească platformei Arduino Mega 2560. Placa electronică principala este prevazută cu pini de tip “tată”, cositoriți după modelul plăcii Arduino Mega2560. Conectarea se face modular, Arduino putând fi oricând scos din suportul de pini. Pe placa principală se mai află mufa de conectare cu ecranul LCD, afișajul de LED-uri, mufa ce conectare cu torso-ul simulatorului, diferite mufe de alimentare pentru toate nivelele de tensiune și mufa pentru soneria de alarmă.
În figura 2.12 este prezentată diagrama bloc conform căreia s-a executat asamblarea acestui proiect.
Fig. 2.12 Diagrama bloc a simulatorului de resuscitare
Capitolul 3. Microcontrollere
Introducere în microcontrollere
În zilele noastre, majoritatea echipamentelor electronice sunt echipate cu microcontroller sau microprocesor. Aceste dotări ating de cele mai multe ori perfomanțele de procesare și capacitățile de memorie a unui calculator folosit acum 10-15 ani. Progresul tehnic permite miniaturizarea lor și integrarea acestora pe platforme de prototipare, precum și cea de față. Acestea depind de calculator prin prisma programării, pentru a interacționa cu diferiți senzori sau componente și pentru a realiza succesiunea operațiilor dorite.
Circumstanțele în care ne găsim astăzi în domeniul microcontrolerelor și-au avut începuturile în dezvoltarea tehnologiei circuitelor integrate. Această dezvoltare a făcut posibilă înmagazinarea a sute de mii de tranzistoare într-un singur cip. Aceasta a fost o premiză pentru producția de microprocesoare, și primele calculatoare au fost făcute prin adăugarea perifericelor ca memorie, linii intrare-ieșire, timer-i și altele. Următoarea creștere a volumului capsulei a dus la crearea circuitelor integrate. Aceste circuite integrate conțin atât procesorul cât și perifericele. Așa s-a întâmplat cu primul cip conținând un microcalculator, sau ce va deveni cunoscut mai târziu ca microcontroler a luat ființă.
Privind evoluția istorică a operației de comandă a unui proces putem contura imaginea unui microcontroller. Un controller este un sistem folosit pentru a comanda și a prelua stări de la un proces sau un aspect al mediului înconjurător. La început un controller era un echipament de mari dimensiuni. După apariția microprocesoarelor dimensiunile controller-elor s-au redus. Procesul de miniaturizare a continuat, toate componentele necesare unui controller au fost integrate pe același cip. S-a născut astfel calculatorul pe un singur cip specializat pentru implementarea operațiilor de control; acesta este microcontroller-ul.
Istoric microcontrollere
În anul 1969 o echipă de ingineri japonezi de la firma Busicom ajunsă în Statele Unite a propus firmelor producătoare de calculatoare ca unele circuite integrate să fie făcute folosind proiectele lor. Una din firme căreia i s-au adresat a fost Intel. Compania a acceptat propunerea inginerilor japonezi, iar Marcian Hoff a fost denumit responsabil de proiect. Dată fiind experiența sa în lucru cu calculatorul de tip PC (PDP8), el a sugerat echipei o soluție diferită în locul structurii propuse. Această soluție implica faptul că funcționarea circuitului integrat este determinată de un program înscris în memoria acestuia. Această idee presupunea o configurație mult mai simplă, dar era necesar o memorie mai mare decât cea disponibilă la acea vreme. După o vreme, după toate propunerile aduse de inginerii japonezi de a simplifica cât mai mult proiectul, ideea lui Marcian a câștigat, iar primul microprocesor a fost realizat. În ajutorul lui Marcian a venit și Federicco Faggin. Acesta era angajat Intel și în doar 9 luni au reușit să scoată un produs finit. Intel a obținut integral drepturile de a vinde acest bloc de circuite în 1971. A achiziționat licența de la Busicom, companie care nu a știut ce comoară deține. În timpul acelui an a apărut pe piață un microprocesor numit 4004. Acesta era pe 4 biți și era cababil de a executa 6000 de operații pe secundă. La scurtă vreme, compania americană CTC a cerut firmelor Intel și Texas Instruments să producă un microprocesor pe 8 biți, pentru a fi folosit în terminale. În aprilie 1972 în urmă colaborării celor 2 coloși industriali, a apărut pe piață primul microprocesor de 8 biți. Acesta avea numele de 8008. Putea să adreseze 16Kb de memorie și avea 45 de instrucțiuni și viteză de 300.000 de operații pe secundă. Acel microprocesor a fost predecesorul tuturor microprocesoarelor de astăzi. INTEL au continuat dezvoltările lor până în aprilie 1974 și au lansat pe piață microprocesorul de 8 biți sub numele de 8080 ce putea adresa 64Kb de memorie și avea 75 de instrucțiuni.
Evoluția galopantă a tehnologiei și concurența accerba între companii de a deveni lider pe piață, a făcut compania Motorola să intre în competiție cu celelalte două companii. A lansat un microprocesor de 8 biți, numit 6800. Motorola a fost prima companie care să facă alte periferice ca 6820 și 6850. La acel timp multe companii au recunoscut marea importanță a microprocesoarelor și au început propriile lor dezvoltări. Chuck Peddle era responsabilul din cadrul Motorola de acest proiect. La scurtă vreme el părăsește Motorola pentru a se muta la MOS Technology și continuă să lucreze intensiv la dezvoltarea microprocesoarelor.
La expoziția WESCON din Statele Unite din 1975 a avut loc un eveniment critic în istoria microprocesoarelor. MOS Technology a anunțat că produce microprocesoarele 6501 și 6502. Prețul unei bucate, la vremea aceea era de 25$ pe care cumpărătorii le puteau cumpăra imediat. Acesta a fost atât de senzațional încât au crezut că este un fel de înșelăciune, gândind că competitorii vindeau 8080 și 6800 la 179$. Că un răspuns la competitorii lor atât INTEL cât și Motorola au scăzut prețurile lor în prima zi a expoziției până la 69.95$ pe microprocesor. Motorola intentează repede proces contra lui MOS Technology și contra lui Chuck Peddle pentru copierea protejatului 6800. MOS Technology încetează de a mai produce 6501 dar continuă să producă 6502. 6502 este un microcontroler pe 8 biți cu 56 de instrucțiuni și o capabilitate de adresare directă de 64Kb de memorie. Datorită costului scăzut, 6502 devine foarte popular, așa că este instalat în calculatoare ca :KIM-1, Apple I, Apple II, Atari, Comodore, Acorn, Oric, Galeb, Orao, Ultra și multe altele. Curând apar câțiva producători de 6502 (Rockwell, Sznertek, GTE, NCR, Ricoh și Comodore preiau MOS Technology) ce era în momentul prosperității sale vândut la o rată de 15 milioane de microprocesoare pe an.
Federico Faggin părăsește INTEL, și își pornește propria sa companie Zilog Inc.
În 1976 Zilog anunță Z80. În timpul creării acestui microprocesor, Faggin ia o decizie crucială. știind că un mare număr de programe fuseseră dezvoltate pentru 8080, Faggin își da seama că mulți vor rămâne fideli acelui microprocesor din cauza marii cheltuieli care ar rezulta în urmă refacerii tuturor programelor. Astfel el decide că un nou microprocesor trebuie să fie compatibil cu 8080, sau că trebuie să fie capabil să execute toate programele care deja fusese scrise pentru 8080. În afara acestor caracteristici, multe altele noi au fost adăugate, așa că Z80 a fost un microprocesor foarte puternic la vremea lui. Putea adresa direct 64Kb de memorie, avea 176 instrucțiuni, un număr mare de registre, o opțiune încorporată pentru reîmprospătarea memoriei RAM dinamice, o singură sursă, viteză de lucru mult mai mare etc. Z80 a fost un succes mare și toată lumea a făcut conversia de 8080 la Z80. Se poate spune că Z80 comercial, a fost fără nici o îndoială, cel mai de succes micropocesor de 8 biți a acelui timp. În afară de Zilog, alți noi producători apar de asemenea ca: Mostek, NEC, SHARP și SGS. Z80 a fost inima a multor calculatoare ca: Spectrum, Partner, TRS703, Z-3. În 1976, INTEL iese pe piață cu o versiune îmbunătățită de microprocesor pe 8 biți numit 8085. Totuși, Z80 era cu mult mai bun încât INTEL curând a pierdut bătălia. Chiar dacă au apărut pe piață încă câteva microprocesoare (6809, 2650, SC/MP etc.), totul fusese de fapt deja hotărât. Nu mai erau de făcut îmbunătățiri importante ca să-i facă pe producători să se convertească spre ceva nou, așa că 6502 și Z80 împreună cu 6800 au rămas ca cei mai reprezentativi ai microprocesoarelor de 8 biți ai acelui timp.
Microcontrolere contra Microprocesoare
Microcontrolerul diferă de un microprocesor în multe feluri. În primul rând și cel mai important este funcționalitatea sa. Pentru a fi folosit, unui microprocesor trebuie să i se adauge alte componente ca memorie, sau componente pentru primirea și trimiterea de date. Pe scurt, aceasta înseamnă că microprocesorul este inima calculatorului. Pe de altă parte, microcontrolerul este proiectat să fie toate acestea într-unul singur. Nu sunt necesare alte componente externe pentru aplicarea sa pentru că toate perifericele necesare sunt deja incluse în el. Astfel, economisim timpul și spațiul necesare pentru construirea de aparate.
Arhitectura unui microprocesor
Unitatea de memorie
Memoria este o parte a microcontrolerului a cărei funcție este de a înmagazina date. Cel mai ușor mod de a explica este de a-l descrie ca un dulap mare cu multe sertare. Dacă presupunem că am marcat sertarele într-un asemenea fel încât să nu fie confundate, oricare din conținutul lor va fi atunci ușor accesibil. Este suficient să se știe desemnarea sertarului și astfel conținutul lui ne va fi cunoscut în mod sigur. Pentru o anumită intrare obținem conținutul unei anumite locații de memorie adresate și aceasta este totul. Două noi concepte ne sunt aduse: adresarea și locația de memorie. Memoria constă din toate locațiile de memorie, și adresarea nu este altceva decât selectarea uneia din ele. Această înseamnă că noi trebuie să selectăm locația de memorie la un capăt, și la celălalt capăt trebuie să așteptăm conținutul acelei locații. În afară de citirea dintr-o locație de memorie, memoria trebuie de asemenea să permită scrierea în ea. Această se face prin asigurarea unei linii adiționale numită linie de control. Vom desemna această linie că R/W (citește /scrie). Linia de control este folosită în următorul fel: dacă r/w=1, se face citirea, și dacă opusul este adevărat atunci se face scrierea în locația de memorie.
În figura 3.1 este prezentată schema simplificată a memoriei unui procesor.
Fig. 3.1 Dispunerea memoriei unui microprocesor
Unitatea de procesare centrală
Dacă adăugăm alte 3 locații de memorie pentru un bloc specific ce va avea o capabilitate încorporată de înmulțire, împărțire, scădere și să-i mutăm conținutul dintr-o locație de memorie în alta. Partea pe care tocmai am adăugat-o este numită "unitatea de procesare centrală" (CPU). Locațiile ei de memorie sunt numite regiștri. Regiștrii sunt deci locații de memorie al căror rol este de a ajuta prin executarea a variate operații matematice sau a altor operații cu date oriunde se vor fi găsit datele. Să privim la situația curentă. Avem două entități independente (memoria și CPU) ce sunt interconectate, și astfel orice schimb de informații este ascuns, ca și funcționalitatea sa. Dacă, de exemplu, dorim să adăugăm conținutul a două locații de memorie și întoarcem rezultatul înapoi în memorie, vom avea nevoie de o conexiune între memorie și CPU. Mai simplu formulat, trebuie să avem o anumită "cale" prin care datele circulă de la un bloc la altul.
În figura 3.2 este prezentată schematic Unitatea de Procesare Centrală.
Fig 3.2 Structura unității centrale de procesare
Magistralele microprocesorului
Magistrala reprezintă calea de vehiculare a informației. În engleză este denumită bus. Fizic reprezintă un grup de 8, 16, sau mai multe fire. Sunt două tipuri de magistrale: de adrese și de date. Prima constă din atâtea linii cât este cantitatea de memorie ce dorim să o adresăm, iar cealaltă este atât de lată cât sunt datele, în cazul nostru 8 biți sau linia de conectare. Magistrala de adrese servește la transmiterea adreselor de la CPU la memorie, iar cea de date ajută la conectarea tuturor blocurilor din interiorul microcoprocesorului. În figura 3.3 este explicat detaliat dispunerea magistralelor în cadrul unui microprocesor.
Fig. 3.3 Magistralele unui microprocesor
Unitatea intrare-ieșire
Pentru a completa un microprocesor din punct de vedere funcțional avem nevoie și de acces pentru interacționa cu acesta. Aceste căi se numesc porturi. Sunt de diferite tipuri: de intrare, de ieșire sau capabile de ambele stări. Când se lucrează cu porturi, mai întâi de toate este necesar să se aleagă cu ce port urmează să se lucreze, și apoi să se trimită date la, sau să se ia date de la port. În figura 3.4 este prezentată unitatea de intrare-ieșire.
Fig. 3.4 Unitatea de intrare-ieșire a microprocesorului
Comunicația serială
Pentru a comunica cu un microprocesor, cea mai avantajoasă metodă este cea a comunicației seriale. Informația vehiculată către și dinspre procesor se face pe o singură magistrală. Pentru această operațiune este nevoie de codarea informației la emițător și decodificarea ei la recepție. Fluxul de date este împărțit în pachete care apoi sunt transmise secvențial. Este nevoie de stabilirea regulilor de schimb al datelor. Aceste reguli sunt numite protocol. Protocolul este de aceea definit în avans ca să nu fie nici o neînțelegere între părțile ce comunică una cu alta. Pentru că avem linii separate de recepție și de transmitere, este posibil să recepționăm și să transmitem date (informații) în același timp. Blocul așa numit full-duplex mode ce permite acest mod de comunicare este numit blocul de comunicare serială. Spre deosebire de transmisia paralelă, datele sunt mutate aici bit cu bit, sau într-o serie de biți, de unde vine și numele de comunicație serială. După recepția de date trebuie să le citim din locația de transmisie și să le înmagazinăm în memorie în mod opus transmiterii unde procesul este invers.
Datele circulă din memorie prin bus către locația de trimitere, și de acolo către unitatea de recepție conform protocolului. În figura 3.5 este redată unitatea serială pentru a trimite date, varianta pentru 3 linii.
Fig. 3.6 Schema conexiunii seriale
Unitatea Timer
Pentru a putea fi folosit în industrie, unui microprocesor i s-a mai adăugat și blocul timer, schematizat în figura 3.7. Acesta joacă un rol important în funcționaliatea ansamblului de calcul. Oferă utilizatorului informații de timp, durată, protocol, etc.
Fig. 3.7 Timer-ul microprocesorului
Unitatea de bază a timer-ului este un contor liber (free-run) care este de fapt un registru a cărui valoare numerică crește cu unu la intervale egale, așa încât luându-i valoarea după intervalele T1 și T2 și pe baza diferenței lor să putem determina cât timp a trecut. Acesta este o parte foarte importantă a microcontrolerului al cărui control cere cea mai mare parte a timpului nostru.
Watchdog-ul
Încă un lucru ce necesită atenția noastră este funcționarea fără defecte a microcontrolerului în timpul funcționării. Să presupunem ca urmare a unei anumite interferențe (ce adesea se întâmplă în industrie) microcontrolerul nostru se oprește din executarea programului, sau și mai rău, începe să funcționeze incorect.
Fig 3.8 Schema watchdog-ului unui microprocesor
Bineînțeles, când aceasta se întâmplă cu un calculator, îl resetăm pur și simplu și va continua să lucreze. Totuși, nu există buton de resetare pe care să-l apăsăm în cazul microcontrolerului care să rezolve astfel problema noastră. Pentru a depăși acest obstacol, avem nevoie de a introduce încă un bloc numit watchdog – tradus înseamnă câinele de pază. Acest bloc este de fapt un alt contor liber (free-run) unde programul nostru trebuie să scrie un zero ori de câte ori se execută corect. În caz că programul se "înțepenește", nu se va mai scrie zero, iar contorul se va reseta singur la atingerea valorii sale maxime. Aceasta va duce la rularea programului din nou, și corect de această dată pe toată durata. Acesta este un element important al fiecărui program ce trebuie să fie fiabil fără supravegherea omului.
Convertorul Analog-Digital
Pentru că semnalele de la periferice sunt substanțial diferite de cele pe care le poate înțelege microcontrolerul (zero și unu), ele trebuie convertite într-un mod care să fie înțeles de microcontroler. Această sarcina este îndeplinită de un bloc pentru conversia analog-digitală sau de un convertor AD. Acest bloc este responsabil pentru convertirea unei informații despre o anumită valoare analogică într-un număr binar și pentru a o urmări pe tot parcursul la un bloc CPU așa că blocul CPU să o poată procesa.
Figura 3.9 ne ilustrează covertorul Analog-Digital din structura internă a unui microprocesor.
Fig.3.9 Convertorul Analog-Digital
Astfel microcontrolerul este acum terminat, și tot ce mai rămâne de făcut este de a-l pune într-o componentă electronică unde va accesa blocurile interioare prin pinii exteriori. Imaginea 3.10 ilustrează dispunerea contactelor electrice în interiorul unui microprocesor.
Fig 3.10 Configurația fizică a interiorului unui microprocesor
Schema de principiu al întregii arhitecturi a microprocesorului este prezentată în fig 3.11
Fig. 3.11 Arhitectura internă a microcontrollerului
Capitolul 4. Programarea microcontroller-ului pentru integrarea în simulator
Limbajul de programare
Limbajul C a luat naștere la începutul anilor 1970, în paralel cu dezvoltarea microprocesoarelor. Principalul responsabil de această a fost Dennis M. Ritchie, un angajat al firmei americane Bell Labs (componentă AT&T). În anii `60 Ritchie a lucrat împreună cu alți angajați ai companiei la un proiect denumit Multics. Scopul acestui proiect a fost acela de a dezvolta un sistem de operare pentru un calculator ce urma să fie folosit de 1000 de utilizatori. În 1969 Bell Labs s-a retras din proiect, motivând că nu pot produce un sistem util, pe considerente economice. Astfel angajații firmei, dar în principal Dennis M. Ritchie și Ken Thompson au fost nevoiți să caute alt proiect la care să lucreze. Aceștia din urmă au început să dezvolte un nou sistem de fișiere. Au scris o versiune a acestuia pentru calculatorul DEC PDP-7, în limbaj de asamblare. Curând ambii parteneri au făcut îmbunătățiri și au adăugat extensii. Cunoștințele necesare au fost împrumutate de la proiectul Multics. La scurtă vreme, a luat naștere un nou sistem de operare, complet. Brian W. Kernighan a denumit acest sistem UNIX, o referință sarcastică la Multics. Tot programul era scris în limbaj de asamblare.
Pe lângă limbajul de asamblare și Fortran, UNIX-ul avea posibilitate de interpretare a limbajului de programare B. Acesta a fost inițiat de către Ken Thompson în 1969-1970. La începuturile calculatoarelor codul de programare era scris în limbaj de asamblare. Pentru a execută o operație specifică, erau de scris multe pagini de cod. Un limbaj de nivel înalt, precum limbajul B a făcut posibilă scrierea aceleiași instrucțiuni în doar câteva linii de cod. Acest limbaj a fost folosit în continuare pentru dezvoltarea sistemului UNIX. Datorită superiorității limbajului B, codul sursă a putut fi mult mai repede transpus în limbaj de asamblare.
Unul din neajunsurile limbajului de programare B îl constituia faptul că acesta nu cunoștea tipuri de date. O altă problema sesizată era faptul că limbajul nu oferea folosirea structurilor în cadrul programării. Lipsa acestor elemente l-a determinat pe Dennis M. Ritchie să dezvolte limbajul de programare C. Astfel, în 1973 acesta transformă limbajul de programare B în C, păstrând majoritatea sintaxelor de limbaj apoi a adăugat tipuri de date și alte modificări.
Limbajul de programare C dispunea de o puternică funcționalitate și caracteristici bine detaliate, necesare programării unui sistem de operare. Drept urmare, multe din componentele UNIX au fost rescrise în C.
Limbajul de programare C a fost scris într-o carte de către Kernighan și Ritchie numită “Programarea în C, prima ediție”. Aceasta a stat la baza programării calculatoarelor mulți ani de la apariție. În 1983 este înființat American Național Standards Institute (ANSI). Această instituție își propune să dezvolte o definiție modernă a limbajului de programare C (ANSI X311). Varianta finală a acestui nou cod îmbunătățit apare în 1988, dar bazele făceau parte din cartea apărută cu 15 ani în urmă. ANSI C a devenit standard, cu mici modificări la limbajul inițial. Mai târziu ANSI C a fost adoptat de ISO (Internațional Standards Organization).
În paralel, în 1978, Bjarne Stroustrup, matematician și cercetător danez, a preluat codul C, l-a revizuit și i-a adus îmbunătățiri. Apoi l-a denumit „C++”. Acesta a rămas ca standard în programare până în zilele noastre.
Prezentarea mediului de programare
Programarea unei plăci electronice precum Arduino, pentru integrarea în prezentul proiect s-a făcut în limbaj C++, în cadrul mediului de programare oferit de Arduino, numit IDE (Integrated Development Environment) prezentat în fig 4.1
Fig 4.1 Interfața de programare Arduino
Partea de programare a acestui simulator reprezintă jumătate din procesul de asamblare a tuturor componentelor pentru a obține un produs finit cât mai apropiat de standardele medicale.
Această etapă este foarte delicată întrucât programarea defectuoasă a plăcii poate să influențeze negativ funcționalitatea întregului ansamblu. Codul prin care sunt implementate instrucțiunile de lucru este organizat în interiorul a două bucle, setup() și loop().
Cele mai des întâlnite funcții în programarea plăcilor Arduino sunt void setup(){} -funcția pentru inițializarea valorilor și void loop(){}-bucla principala a programului. Pe lângă acestea în C++ mai sunt folosite librării, ele reprezintă o colecție de funcții, colecție în care toate funcțiile sunt înrudite. Un aspect foarte important al librăriilor este faptul că acestea conțin funcții deja scrise. Acest lucru înbunătățește foarte mult timpul de realizare a unui proiect și deasemenea reduce necesarul de cunoștințe pentru implementarea acestuia.
Comunicarea plăcii cu calculatorul se face cu ajutorul conexiunii seriale, prin intermediul magistralei seriale universale (USB). Această conexiune este bidirecțională, Arduino poate primi și trimite instrucțiuni și mesaje, iar calculatorul afișează execuția acestora. Comunicarea serială reprezintă o formă de I / O, în care biții dintr-un byte sunt transferați unul câte unul, într-o secvență sincronizată pe un singur fir.
Pentru a programa microcontroller-ul în vederea integrării în simulatorul de resuscitare avem nevoie de următoarele structuri de algoritmi:
Inițializarea datelor și a variabilelor cu care urmează a se lucra
Inițializarea buclei setup
Inițializarea buclei loop
Programarea Arduino Mega2560 în vederea asigurării funcționalității ansamblului se execută conform diagramei logice prezentate în figura 4.2
Fig. 4.2 Diagrama logică a prezentului proiect
Programul simulatorului explicat
#include <LiquidCrystal.h> //libraria pt. afisajul LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // pinii pt LCD
int tilt_s1 = 8; // defineste S1 pinul pentru senzorul de inclinare
int tilt_s2 = 9; // defineste S2 pinul pentru senzorul de inclinare
int buzzerPin = 42; //pinul soneriei de alarma
int vibratorPin = 7; //motor vibrator
int omronPin = A7; //pinul senzorului care simuleaza blocarea cailor respiratorii
const int analogPin = A0; // pinul rezistorului sensibil la apasare
const int ledCount = 20; // numarul de LED-uri al bargrapg-ului
int counter = 0; //contor compresii
int ledPins[20] = {
23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 46, 48, 50, 52}; // Pinii folosiți pentru bargraph
boolean tilt_pos //stabileste pozitia capului
,pasul2 //variabila de validare pt pasul 2
,pasul3 //variabila de validare pt pasul 3
,pasul4 //variabila de validare pt pasul 4
,cai_blocate; //variabila de validare pentru senzorul de proximitate
Bucla setup este apelată de către microcontroller doar o singură dată la începutul rulării programului. În prezentul proiect s-a initializat astfel:
void setup()
{
pinMode(tilt_s1, INPUT); //initializeaza pinul S1 al senzorului de inclinare
pinMode(tilt_s2, INPUT); //initializeaza pinul S2 al senzorului de inclinare
pinMode(vibratorPin, OUTPUT); //porneste pinul 7 pentru motorul vibrator
pinMode(buzzerPin, OUTPUT); //porneste pinul 48 pentru soneria de alarma
for (int i = 0; i < sizeof(ledPins); i++)
pinMode(ledPins[i], OUTPUT);
lcd.begin(40, 2); // stabilește numărul de rânduri și coloane ale LCD-ului
lcd.print("Ready…");
delay(2000);
tilt_pos = false; //pozitia initiala a senzorului de inclinare este declarata falsa, adica nu este inclinat
pasul2 = false;
pasul3 = false;
cai_blocate = true;
}
int getTiltPosition()
{
int s1 = digitalRead(tilt_s1);
int s2 = digitalRead(tilt_s2);
return (s1 << 1) | s2; //compara matematic cele doua valori
}
void bargraph_fsr()
{
int sensorReading = analogRead(analogPin); // valoarea de iesire a senzorului aprinde un numar de LED-uri, in fuctie de forta exercitata
int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
for (int thisLed = 0; thisLed < ledCount; thisLed++)
{
if (thisLed < ledLevel)
{
digitalWrite(ledPins[thisLed], HIGH);
}
else
{
digitalWrite(ledPins[thisLed], LOW); // opreste toate LED-urile mai mari decat ledLevel:
}
}
}
void off_bargraph()
{
for (int thisLed = 0; thisLed < ledCount; thisLed++)
digitalWrite(ledPins[thisLed], LOW);
}
void afis_cont()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Contor compresii: ");
lcd.print(counter);
delay(20);
}
În continuare voi exemplifica inițializarea buclei loop, funcția principala a programului Arduino. Această rulează în mod continuu, este repetitivă.
void loop()
{
int position = getTiltPosition();
if(tilt_pos == false)
{
while(position != 1)
{
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Pasul 1.Hiperextensia capului");
delay(100);
position = getTiltPosition();
if(position == 1) //ciclul va incepe doar daca pozitia senzorului de inclinare este 1
{
tilt_pos = true;
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Pasul 1: complet");
Pentru că manevrele de resuscitare trebuiesc executate pe pași, și învățarea acestor manevre trebuie executată asemenea. Dacă pe ecranul simulatorului este afișat „Pasul 1: complet”, înseamnă că această etapă a luat sfârșit, putându-se trece mai departe. Pasul 1 este condiționat de schimbarea poziției senzorului de înclinare, plasat în interiorul capului simulatorului. Această poziție trebuie menținută pe toată durata efectuării exercițiului. Dacă poziția senzorului se modifică, dar doar spre poziția declarată că fiind poziția de înclinare, se pornește ciclul de resuscitare. Dacă însă, în timpul manevrelor de resuscitare, poziția capului este schimbată, tot ansamblul se resetează și revine la afișarea :”Hiperextensia capului”.
În continuare vă este prezentat pasul 2 al manevrelor de resuscitare și anume „Evaluarea căilor respiratorii”. Acest mesaj este afișat pe LCD imediat după terminarea pasului 1. Mai jos vă prezint structura pasului 2.
delay(1000);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Continuati resuscitarea");
delay(1000);
pasul2 = true;
}
}
}
if (pasul2 == true)
{
while(pasul2)
{
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Pasul 2: Evaluarea cailor respiratorii");
delay(1000);
int sensorValue = analogRead(omronPin);
delay(150);
if(sensorValue > 600)
{
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Caile respiratorii blocate");
digitalWrite(buzzerPin, HIGH);//porneste soneria de alarma
delay(100);
while(cai_blocate)
{
sensorValue = analogRead(omronPin);
if(sensorValue < 350)
{
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Caile respiratorii deblocate");
digitalWrite(buzzerPin, LOW);//opreste soneria de alarma
delay(1500);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Pasul 2: complet");
Sunt interpuse în program anumite întârzieri delay(), menite să stabilizeze afișarea mesajelor pe ecran. Simularea căilor respiratorii blocate se face cu ajutorul senzorului inductiv prezentat anterior. Acesta poate fi acționat doar de metale. La apropierea unui metal, va simula blocarea căilor respiratorii și va acționa un difuzor, cu rol de alarmă. La finalizarea acestei etape se afișează “Pasul 2: complet”
Urmează prezentarea celui de-al treilea pas, “Compresiile toracice”.
delay(1000);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Continuati resuscitarea");
delay(1000);
lcd.clear();
cai_blocate = false;
pasul2 = false;
pasul3 = true;
}
}
}
}
}
if (pasul3 == true)
{
while(pasul3)
{
int fsrvalue = analogRead(analogPin);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Pasul 3: Compresii toracice");
bargraph_fsr();
delay(25); //intarziere pentru stabilizarea afisarii pe esran
if(fsrvalue > 850 && fsrvalue < 920)
{
counter++;
if(counter == 10)
{
pasul3 = false;
}
}
else
afis_cont();
}
pasul4 = true;
off_bargraph();
}
Pasul 3 constă în aplicarea compresiilor la nivelul toracelui. Această etapă este realizată cu ajutorul senzorului sensibil la apăsare. Acesta furnizează la ieșire o tensiune între 0 și 5 V, direct proporțională cu valoarea forței aplicată pe suprafață sensibilă. Pentru a aduce acest simulator cât mai aproape de cele profesionale, avem nevoie de un contor care să numere compresiile. Pentru a exemplifica acest simulator, am ales un prag de 10 compresii, corect este 100/min. În paralel cu compresiile, conectat direct la senzorul de apăsare este afișajul cu LED-uri încorporat în acest proiect. Numărul de LED-uri care se pornesc este direct proporțional cu forța exercitată asupra senzorului de apăsare. Acest lucru permite vizualizarea în timp real a compresiilor, cât și forța de apăsare. Se pot impune anumite praguri de forță, iar contorul va număra doar compresiile considerate corect din punct de vedere medical.
Pasul următor constă în validarea tuturor parametrilor și afișarea pe ecranul LCD “Resuscitare reușită”. În același timp placa Arduino furnizează pe o ieșire setată în prealabil o tensiune de 5V. Acest fapt se execută cu ajutorul funcției “digitalWrite(vibratorPin, HIGH”. Tensiunea alimentează un micromotor vibrator, amplasat în gâtul simulatorului, cu rolul de a reda pulsul “victimei”. În program, funcția este temporizată, motorul funcționând alternativ on-off pentru 750ms pe fiecare durată, echivalentul a 80 de bătăi ale inimii pe minut.
if(pasul4 == true)
{
int y=0;
while(pasul4)
{
y++;
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Resuscitare completa!");
digitalWrite(vibratorPin, HIGH);
delay(750); // temporizare aferenta pentru 80 bpm
digitalWrite(vibratorPin, LOW);
delay(750);
if(y==10)
pasul4 = false;
}
}
}
Un contor numără 10 iterații al pasului 4, iar apoi tot ansamblul este resetat la pasul 1. Variabila Y este incrementată la fiecare pornire a motorului vibrator. Parametrii se pot schimba, acest model are doar rol demonstrativ.
Concluzii
Acest simulator poate suferi imbunatatiri atat din punct de vedere al componentelor cat si adaugiri la nivel software. Intrarile si iesirile ramase libere pe placa Arduino Mega, permit modificarea ansamblului in vederea asigurarii functionalitatii conform parametrilor medicali.
Un senzor de presiune ar fi indicat a se integra in simultor, pentru simularea ventilatiilor mecanice. In acest proiect s-a eliminat acest pas pe motive de igiena. Implementarea senzorului de presiune ar fi facila,
BIBLIOGRAFIE
[1] http://www.descopera.ro
[2] http://anatomie.romedic.ro/sistemul-circulator
[3]http://www.bioterapi.ro/aprofundat/index_aprofundat_aparate_si_sisteme_si_boli_sistemul_circulator.html
[3] http://anatomie.romedic.ro/sistemul-respirator
[4] http://anatomie.romedic.ro/sistemul-nervos
[5] Ghidurile de resuscitare 2010 – Document tradus si supravegheat de Comisia Europeana de Resuscitare
[6] Britannica Ultimate Reference Suite 2008, “Computer”
[7] History of Arduino – Ken Leung
[8] The Making of Arduino – http://spectrum.ieee.org/geek-life/hands-on/the- aking-of-arduino
[9] http://shop.mecatronica.eu/arduino-mega-2560-plus/
[10] Teguna
[11] Roroid
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
=== Lucrare (2) ===
SIMULATOR CU ROL EDUCATIONAL DE RESUSCITARE CARDIOPULMONARA
Contents
Introducere
Din totalitatea sistemelor ce alcatuiesc un organism viu, trei se remarca prin importanta lor in mentinerea vietii. Este vorba de sistemul circulator impreuna cu sistemul respirator, ambele controlate in mod automat de catre sistemul nervos. Acesta din urma, este considerat cel mai important si sensibil sistem din tot organismul uman. Respiratia si circulatia sanguina sunt functii vitale, in cazul nefuctionarii unuia dintre acestea, corpul intra in stare de soc. Este nevoie de interventia imediata a unor masuri de prim ajutor care se impun in aceste situatii. Acestea pot fi invatate de catre oricine, fara o pregatire medicala intensa. Manevrele de prim ajutor executate la persoanele in stare de stop cardiorespirator sunt cunoscute sub numele de resuscitare cardiopulmonara. Data fiind importanta mentinerii pulsului si a respiratiei in corpul uman, invatarea acestor tehnici de resuscitare si aplicarea lor corect si in timp util face ca acest domeniu de prim ajutor sa fie o necesitate. Invatarea tehnicilor de resuscitare cardiopulmonara se face cu ajutorul manechinelor specializate in acest sens.
Pentru o simulare cat mai reala a corpului uman se folosesc manechine fabricate din diverse materiale. Acestea sunt dotate cu componente electronice de specialitate; senzori, afisaje, etc. Recent, o data cu dezvoltarea calculatoarelor, simultoarele ofera si posibilitatea conectarii la calculator, pentru programare sau colectarea datelor obtinute in timpul unui exercitiu de resuscitare. Pe piata exista o gama larga de astfel de manechine de resuscitare. Calitatea si pretul difera de la materialul fabricat pana la complexitatea acestora din punct de vedere electronic si functional.
Rolul acestei lucrari este de a prezenta asamblarea unui manechin de resuscitare cu posibilitate de reprogramare, in vederea mentinerii parametrilor de resuscitare la standardele din medicina, care, in materie de resuscitare sunt revizuite o data la 3 ani. Nucleul acestui proiect consta in platforma de dezvoltare Arduino. Aceasta contine microcontroller integrat pe o placa electronica echipata cu tot ce este necesar pentru a comunica si interactiona cu aceasta. Se va realiza tot ansamblul la un cost minim posibil, pana in 10% din costul unui manechin comercializat in magazinele de specialitate.
Istoric resuscitare cardiopulmonara
Din vechi timpuri s-a incercat readucerea la viata a celor trecuti in nefiinta. Multe din tehnici erau la vremea respectiva ca fiind salvatoare, acum insa, tin de capitolul bizarului. Printre acestea se pot enumera: incantatii, lovituri, strigate, intepari cu diferite obiecte. [1] La un punct in istorie ne sunt prezentate cazuri de resuscitare a unor animale prin intubare si masaj cardiac intern. De multe ori, in situatia in care se reusea resuscitarea, aceasta era pusa pe seama intervetiei divine.
Resuscitarea cardiopulmonară nu a reprezentat obiectul activității unei anume specialități medicale, medicii de orice specialitate confruntându-se cu drame medicale încă de la începuturi. Andreas Vesalius a intuit necesitatea ventilației artificiale în scopul resuscitării încă de acum 500 ani. Ulterior, medici celebri ce marchează istoria medicinii, au creat opinii de abordare a pacientului în stop cardiorespirator, care au influențat multă vreme tehnica resuscitării. Aceste opinii, din ce în ce mai elaborate și orientate fiziopatologic au “supraviețuit” până în epoca modernă. Peter Safar, părintele resuscitării moderne, este unul dintre primii care subliniază necesitatea abordării ordonate a stopului cardiorespirator, abordare multidisciplinară care se apropie cel mai mult de scopul resuscitării: readucerea la viață a unui pacient în cel puțin aceleași condiții cu cele anterioare opririi cardiace
In anul 1989 ia fiinta Consiliului European de Resuscitare, organism științific medical multidisciplinar, care are ca scop principal îmbunătățirea condițiilor de efectuare a resuscitării cardiopulmonare, deci a șanselor de supraviețuire unui stop cardiorespirator, prin elaborarea de standarde și ghiduri, precum și a unui program de educație în resuscitare.
Medicina moderna a evoluat, iar acum tehnicile de resuscitare se instruiesc pe tot cuprinsul Globului. Executarea corecta si in timp util a manevrelor de resuscitare poate salva viata unor semeni aflati in pericol.
Descrierea corpului uman
Prezentarea sistemului circulator
Componenta principala a sistemului circulator este muschiul cardiac, cunoscut sub numele de inima sau cord, prezentata in figura 1. Aceasta are forma unei pere, este goala pe dinauntru iar contractiile acesteia produc circulatia sangelui in intregul organism.[2]
Fig.1 Constructia cordului
Alaturi de inima, corpul uman dispune de o retea de vase sanguine pentru a putea fi realizata circulatia in vederea oxigenarii si alimentarii organismului cu substante nutritive si vitamine. Substantele continute in sange sunt vitale fiecarui organ din corp si deci, implicit, intregului organism. Arterele sunt vasele de sange care pleaca de la nivelul cordului, au forma cilindrica si de la acestea se ramifica arborescent intreg sistemul circular.
Sângele este un țesut lichid, compus dintr-o parte lichidă (plasmă -55%) și una solidă (elemente figurate -45%), care circulă într-un sistem închis (sistemul circulator). Față de alte țesuturi, celulele sângelui nu sunt imobilizate, ci ele "plutesc" într-un lichid vâscos (plasma). Datorită acestui fapt, sângele este un țesut mobil care reușește să se strecoare în toate părțile corpului. In fig. 2 este descris intregul sistem circulator si fluxul de sange in corpul uman.
Fig. 2 Sistemul circulator in corpul omenesc
Rolul sângelui este acela de a asigura:
– transportul diferitelor substanțe spre locul lor de destinație; țesuturi și celule (substanțe nutritive, produși intermediari, enzime, hormoni, etc.),
– respirația tisulară (transportul oxigenului dinspre plămâni spre celule și a dioxidul de carbon dinspre celule spre plămâni),
– epurarea organismul (descărcarea din mediul intern, prin organele de eliminare, mai ales prin rinichi, a produșilor de dezasimilație și a toxinelor),
– transformarea unor substanțe (prin enzimele pe care le conține și mai ales prin transportul compușilor spre ficat),
– imunitatea organismului (prin anticorpii pe care îi conține),
– repartizarea și reglarea căldurii în organism,
– menținerea constantă a echilibrului acido-bazic și a balanței hidrice,
– reconstrucții organice, acolo unde este necesar. [@]
Prezentarea sistemului respirator
Sistemul respirator este alcatuit din cai respiratorii superioare, inferioare, unitatea respiratorie, cutia toracica, diafragmul si structurile subdiafragmatice.Sistemul respirator are rolul de a oxigena organismul. Alaturi de sistemul circulator, participa la schimbul de gaze necesare fiintelor umane. Alte roluri al sistemului respirator sunt generarea vocii, echilibrul acido-bazic si mirosul.[3] Organul central al sistemului respirator il constituie plamanii. Acestia reprezinta un organ pereche cu rol in respiratie, care furnizeaza oxigen intregului corp si elimina dioxidul de carbon din sange.
Respiratia in corpul uman este alcatuita din doua faze:
prima faza a respiratiei se desfasoara la nivelul plamanilor – respiratia externa sau pulmonara
faza a doua are loc la nivelul celulelor si se numeste respiratie interna sau celulara. La nivelul celulelor se desfasoara procesele de oxidare lenta a substantelor organice simple, rezultate in urma digestiei, rezultand energia necesara functionarii organismului si produsi de dezasimilatie ce sunt eliminati pe diferite cai.
Fig.3 Sistemul respirator
Oxigenul inspirat prin cavitatea nazala sau bucala este transportat pana in plamani, unde se realizeaza schimburile de gaze la nivel molecular. Plamanii sunt cele mai vascularizate organe din corpul omenesc si de aceea, in plamani se oxigeneaza sangele, care apoi este pompat in tot organismul. Acestia sunt dispusi in interiorul cavitatii toracice, in partea superioara. La un adult dezvoltat, masa normala a acestora este in jur de 700 grame. Plamanul stang este putin mai mic, pentru a lasa loc inimii in interiorul cavitatii toracice.
Prezentarea sistemului nervos
Sistemul nervos ce intra in alcatuirea omului reprezinta cel mai complex produs al evolutiei biologice. Este unul din cele mai activ studiate domenii de cercetare din cadrul medicinei si biologiei contemporane. Acesta ramane inca un mister, chiar si dupa atatea milioane de ani de viata pe Pamant. Cunoasterea organizarii complexe a sistemului nervos, cat si a functiilor sale este departe de a fi completa.Este constituit din subuntati aflate intr-o activitate permanenta. Sistemul nervos este impartit in doua componente majore: sistemul nervos central (creierul si maduva spinarii) si sistemul nervos periferic.
Sistemul nervos autonom sau vegetativ este o componenta vitala in cazul tuturor fiintelor vii. Acesta face parte din sistemul nervos periferic. Nu se afla sub control constient si influenteaza procese precum frecventa cardiaca, digestia, respiratia, salivatia, transpiratia, dilatarea pupilei si altele. Perturbari in functionarea acestui sistem atat de important pot sa provoace abateri de la functionarea normala a cordului, tulburari ale presiunii arteriale, dificultati in respiratie si deglutitie. Daca bataile inimii si respiratia sunt controlate de aceasta componenta a organismului nostru, in cazul disfunctiei se poate instala stopul cardiorespirator, cu consecinte fatale asupra celui care intampina aceasta situatie. Pentru a compesa lipsa batailor inimii si a respiratiei si aplica masuri de resuscitare cardiopulmonara, atat de importante, descrise in aceasta lucrare.
Componenta principala a sistemului nervos este creierul. Acesta mai este denumit si encefal ( lat. cerebrum, grec. Ενκέφαλον, encephalon). Intr-un creier uman exista intre 85 si 100 de miliarde de neuroni, fiecare avand in jur de 10.000 de conexiuni).
Creierul este cel mai mare consumator de oxigen din corpul nostru
Fig. 4 Sistemul nervos in corpul uman
Stopul cardiorespirator. Definitie si clasificare
Ghid de resuscitare cardiopulmonara
Dupa cum am precizat in randurile de mai sus, cunoasterea tehnicilor de resuscitare intr-un mod cat mai corect, poate duce la salvarea unor victime aflate in stop cardiorespirator. Nevoia cunoasterii manevrelor necesare ce se impun in astfel de situatie este in crestere de la an la an.
Stopul cardiac este principala cauză de deces, afectând anual aproximativ 700.000 de indivizi în Europa și aproximativ 460.000 de indivizi în SUA. Intervenind corect, putem scadea numarul victimelor. Pe de alta parte in cazul in care nu evaluam corect o victima, ii putem agrava situatia, ajungandu-se pana la a-i provoca decesul. Principalele semne ale unei persoane aflate in stop cardiorespirator sunt:
paloare sau cianoză intensă, generalizată, rapid instalată;
pierderea rapidă a stării de conștiență;
tulburări respiratorii severe rapid instalate: bradipnee aritmică, gasp-uri, neregulate până la apnee;
midriază (dilatarea excesiva a pupilei. Poate sa lipseasca in unele situatii).
In cazul in care se instaleaza stopul cardiorespirator, interventia cat mai rapida este importanta mai ales din prisma mentinerii creierului irigat de sange. Oxigenul existent in sange este suficient pentru sistemul nervos doar pentru o perioada de aproximativ 4 minute, de aceea instituirea măsurilor de resuscitare în acest interval asigură șanse de supraviețuire. Acestea scad cu 7-8 procente la fiecare minut de intarziere in a efectua manevrele de prim ajutor.
Date fiind aceste aspecte, este foarte important sa cunoastem pasii pentru a putea salva pe cineva si pentru a nu deveni chiar noi insine victime. [5]
In fig. 5 este prezentata schema de principiu a intervetiei in cazul resuscitarii.
Fig. 5 Diagrama de resuscitare
Principalele manevre ce trebuiesc invatate si practicate in cazul unei resuscitari cardiopulmonare sunt prezentate in Anexa1. Acestea se aplica pe victima pana la sosirea echipajului de prim-ajutor specializat sau pana la epuizarea salvatorului. Desi persoana aflata in stop cardiorespirator nu prezinta semne vitale, este necesara continuarea masurilor de resuscitare pana la o ora dupa instalarea stopului cardiorespirator. Acesta operatiune este necesara pentru a preveni coagularea sangelui in corp si pentru a oxigena creierul. Este uneori contestata nevoia respiratiei artificiale, pe motive de igiena si transmiterea bolilor pe cale virala. Simpla inclinare a capului si asigurarea permeabilitatii cailor respiratorii, impreuna cu compresii toracice ritmice pe un plan solid, fac sa nu mai fie nevoie de interventia gura-la-gura a salvatorului, schimbul de gaze fiind suficient pentru oxigenarea organismului.
Riscurile salvatorului
În fața unei persoane aflată în stop cardiorespirator, urgența situației nu trebuie să distragă atenția salvatorului astfel încât acesta să nu mai țină cont de măsurile de protecție. De cele mai multe ori, resuscitatorul nu este instruit să salveze victima de la locul accidentului, principala lui menire fiind să efectueze resuscitarea. Prima regulă legată de riscurile RCP este ca viața salvatorului să nu fie pusă în pericol. Resuscitarea cardiopulmonară presupune riscuri legate de locul desfășurării și riscuri legate de victimă.
Înainte de a se apropia de o victimă, salvatorul trebuie să se asigure că nu există nici un pericol iminent care să provină din mediul înconjurător.
Riscuri legate de mediu:
•trafic;
• construcții instabile;
• electricitate;
• gaze;
• apă;
• substanțe toxice.
Riscuri legate de victimă:
• contactarea unor boli transmisibile;
• intoxicații;
Riscuri legate de tehnică:
• utilizarea defibrilatorului;
• utilizarea de instrumente ascuțite.
În concluzie, pentru propria protecție, în scopul evitării contactului cu materiale
biologice sau substanțe toxice, salvatorul va folosi echipament de protecție: mănuși, ochelari, măști, halate, recipiente speciale pentru depozitarea instrumentelor ascuțite.
Simulatorul de resuscitare
Pentru a tine pasul cu ultimele standarde in materie de resuscitare, un simulator este nevoie sa se alinieze standardului AHA elaborat in 2010. Manechinul este destinat invatarii si examinarii cursantilor, in activitatile de invatare a tehnicilor de resuscitare cardiopulmonara prin masaj cardiac si insuflare de aer si acordarii de primului ajutor in cazul ranirilor. In scopul invatarii corecte a tehnicii de resuscitare, cursantul trebuie sa-si poata insusi manevrele corecte, iar in acest sens el trebuie sa aiba in fiecare moment un feed-back al corectitudinii manevrei efectuate. Acest feed-back este sonor si vizual. Ecranul cu leduri, prin aprinderea progresiva in functie de adancimea de compresie si volumul de aer insuflat, permite cursantului sa-si formeze reflexe corecte de apasare sau insuflare. Toate operatiile gresite sunt insotite si de un sunet caracteristic de avertizare. Ciclul de resuscitare este cel standardizat: cinci cicluri 30:2 ( compresii: respiratii). Frecventa compresiilor este de 100 /min
Materiale necesare realizarii simulatorului
Pentru realizarea acestui proiect lista de materiale necesare cuprinde:
Manechin de simulare a manevrelor de resuscitare (cu posibilitate de extensie a capului)
Placa de prototipare din familia Arduino, varianta Mega 2560
Afisaj cu cristale lichide, cu conexiune paralela
Afisaj cu LED-uri
20 rezistori de 220Ω
Dioda Zener cu prag de 4,2V
1 rezistor de 700Ω
Placa de test
Cutie de montaj
Senzor sensibil la apasare
Senzor de proximitate
Buzzer
Motor cu vibrator
Sursa de alimentare
Circuite stabilizatoare de tensiune (5V si 8V)
Descrierea si rolul componentelor in cadrul ansamblului
Piesa centrala a acestui proiect o constituie platforma de prototipare in electronica, Arduino. Aceasta este o platforma de tip open-source, bazata pe microcontroller, creata special pentru a interactiona cu diversi senzori (semnalele de iesire ale acestora). Un alt rol ar fi acela de a gestiona semnalele primite de la senzori catre dispozitive externe cum ar fi motoare, difuzoare, LED-uri. Un aspect important in utilizarea acestei placi este programarea facila chiar si de catre utilizatorii cu cunostinte medii in domeniul programarii, fapt care face ca aceasta platforma sa fie o rampa buna de lansare pentru cei care doresc sa creeze obiecte interactive sau diferite proiecte, precum cel in curs.
In anii `70 una din cele mai importante inovatii in istoria calculatoarelor o reprezenta descoperirea microprocesoarelor. Acestea au miniaturizat componentele electronice ale unitatii centrale al unui calculator intr-un singur circuit integrat, cunoscut sub numele de microcip. Apoi, microcip-ul a reprezentat componenta principala a microcontrollerelor de astazi.
Numele „Arduino” este dat de Massimo Banzi, unul din creatorii placii, in 2005. Denumirea se trage de la un vechi rege numit Arduin. La vremea lansarii a reprezentat un proiect pentru studenti care intre timp a capatat amploare si a creat o revolutie in electronica. Datorita faptului ca Arduino se afla sub incidenta licentei de tip open-source, se gasesc pe Internet programe specializate pentru diversi senzori sau echipamente. Ele s-ar putea sa aiba nevoie de mici ajustari parametrice pentru a le putea include in proiectele personale, cum a fost si cazul de fata. De asemenea se pot face publice toate proiectele pentru a putea schimba experiente cu alti pasionati de electronica, robotica, mecatronica, calculatoare, etc. Toate aceste caracteristici fac din Arduino cea mai influenta platforma open-source din zilele noastre.
Arduino Mega 2560
Arduino Mega 2560 este o placa de dezvoltare care are la baza un microcontroler ATMega 2560. Aceasta placa de dezvoltare are 54 de intrari/iesiri digitale (din care 14 pot fi folosite ca iesiri PWM), 16 intrari analogice, 4 UART (porturi seriale, seriale hardware), un oscilator de 16 MHz, conexiune prin USB, o mufa de alimentare, un antet ICSP si un buton de resetare. Aceasta contine tot ceea ce este necesar pentru a sustine un microcontroler. Se conecteaza pur si simplu la un computer prin cablul USB.
Arduino Mega poate fi alimentat prin portul USB sau printr-o sursa de alimentare externa. In momentul cand este presenta o sursa de alimentare externa se conecteaza automat la aceeasta. [9]
Din multitudinea de placi Arduino, eu am ales aceasta varianta datorita numarului mare de intrari/iesiri precum si a memoriei mari disponibile pentru a incarca programe complexe. Mega 2560 reprezinta cel mai bun raport pret-posibilitati de dezvoltare. Acest proiect se poate extinde pe viitor, existand posibilitatea de conectare a viitoarelor imbunatatiri la intrarile/iesirile ramase libere pe placa.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna. Nunc viverra imperdiet enim. Fusce est. Vivamus a tellus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin pharetra nonummy pede. Mauris et orci. Aenean nec lorem. In porttitor. Donec laoreet nonummy augue. Suspendisse dui purus, scelerisque at, vulputate vitae, pretium mattis, nunc. Mauris eget neque at sem venenatis eleifend. Ut nonummy.
Simulatorul de resuscitare si asemanarea cu corpul uman
Pentru a putea invata tehnicile de resuscitare corecte este nevoie de o simulare cat mai fidela a corpului uman. In acest proiect voi folosi un manechin de resuscitare al firmei Simulaids, varianta numita Adam. Simulaids este o firma cu renume mondial in materie de produse cu rol educational. Compania produce o gama larga de articole destinate simularii corpului uman din punct de vedere medical. In fig.6 este prezentat manechinul de resuscitare folosit in acest proiect.
Fig.6 Manechin de resuscitare
In continuare va voi prezenta celelalte componente folosite pentru a echipa acest torso cu componente electronice menite sa simuleze corpul uman.
Pentru ca tehnicile de resuscitare pun accent pe eliberarea cailor respiratorii cu hiperextensia capului si compresiile toracelui in vederea restabilirii pulsului unei victime aflate in stop cardiorespirator, am selectat senzorii care sa imite cat mai bine acesti parametrii.
Asemeni oricarui echipament electronic si acest simulator va avea nevoie de o sursa de alimentare. Voi folosi pentru aceasta o sursa de 12V, stabilizata, cu intensitatea curentului debitat de pana la 5A. Aceasta sursa se va diviza ulterior in mai multe nivele de tensiune, respectiv 8V si 5V. Operatiunea se executa cu ajutorul circuitelor integrate stabilizatoare din familia LM78XX, unde ultimele doua cifre din codul componentei reprezinta valoarea tensiunii stabilizate de iesire.
Sursa de alimentare a acestui proiect este prezentata in fig. 7
Fig.7 Sursa de alimentare 12V 5A
Circuitul de stabilizare care furnizeaza la iesire 5V va fi folosit pentru alimentarea majoritatii senzorilor folositi. Este necesara folosirea unui circuit extern de alimentare deoarece curentul maxim furnizat de o iesire Arduino, nu depaseste 40mA.
Circuitul de stabilizare de 8V va fi folosit la alimentarea placii Arduino. In cadrul acestei lucrari, tensiunea de 12V este folosita doar pentru a alimenta senzorul de proximitate utilizat in simularea cailor respiratorii blocate.
Normele de resuscitare prevad a se verifica starea de sanatate a victimei, implicit parametrii vitali. Pulsul se verifica pozitionand doua degete peste artera carotida (la gat), iar respiratia se verifica cu urechea peste gura victimei, in timp ce privim la torace, pentru a sesiza eventuale miscari are acestuia. Manevrele complete de resuscitare includ ventilatii artificiale de tip gura-la-gura si compresii toracice ritmice. Resuscitarea este ineficienta in cazul in care nu se verifica starea cailor respiratorii, si degajarea acestora, dupa caz. pentru aceasta operatiune este nevoie de hiperextensia capului. Cu o mana asezata pe fruntea pacientului sau a simulatorului se duce capul acestuia pe spate, pana la punctul la care traheea si caile respiratorii superioare (nasul si gura) sunt cat se poate de coliniare. Aceasta pozitie deschide caile respiratorii si se mentine pe toata durata executarii compresiilor toracice, pentru a permite schimbul de gaze necesar oxigenarii organismului. Din motive de igiena acest manechin nu este prevazut cu orificiu sau senzor pentru ventilatie mecanica (gura-la-gura), deschiderea cailor respiratorii, fiind suficienta pentru ilustrarea principiilor de resuscitare.
Hiperextensia capului in acest proiect este redata de un senzor de inclinare. Acesta functioneaza pe principiul unui contact cu bila. Este prevazut cu doua contacte de alimentare si doua contacte de iesire, care reprezinta starile bilei din interiorul cipului. Senzorul reda aceste doua stari catre Arduino, iar acesta compara matematic valorile si le afiseaza, dupa preferinta. In funtie de pozitia bilei, senzorul poate furniza la iesire 4 stari. In fig. 7 este prezentat senzorul de inclinare al firmei Sparkfun, model RPI-1031
Fig.7 Senzor de inclinare
In vederea simularii cailor respiratorii blocate voi folosi un senzor de proximitate inductiv, montat in cavitatea bucala a manechinului. Acesta detecteaza prezenta metalelor, deci vom simula blocarea/deblocarea acestora cu un obiect metalic. Efectul Hall sta la baza functionarii acestui senzor. Este prevazut cu 3 terminale (V+, GND, OUT). El va actiona ca un comutator, tensiunea de alimentare se va regasi intre borna de iesire si GND doar in cazul prezentei unui metal in raza sa de actiune.
In fig. 8 este prezentat senzorul inductiv folosit pentru simularea cailor respiratorii blocate.
Fig. 8 Senzor de proximitate Omron
Am ales acest senzor datorita constructiei sale robuste si a rezistentei sale din punct de vedere mecanic si electric. Prezenta sau absenta tensiunii de iesire va fi interpretata astfel: daca exista tensiune, inseamna ca senzorul este activ, implicit gura manechinului este obturata de un obiect metalic. In cazul lipsei semnalului, simulatorul va considera caile respiratorii ca fiind eliberate. Deoarece senzorul va furniza la iesire tensiunea cu care este alimentat, 12V, este nevoie de un rezistor de 700Ω o dioda Zener cu prag de 4,2 V (orice valoare intre 2,5÷5V). Dioda are rolul de a cobori tensiunea de la iesirea senzorului pana la un nivel la care sa poata fi interpretata de Arduino, fara a fi riscul de a supraalimenta microcontroller-ul, si deci a distruge intreaga placa. Aceasta tensiune trebuie sa fie intre 2,5V si 5V pentru a putea distinge un nivel de tensiune echivalent cu „1” logic. Acesta va insemna prezenta semnal, deci cai respiratorii blocate.
Compresiile toracice vor fi simulate cu un rezistor sensibil la apasare. Acesta functioneaza ca un senzor care isi schimba valoarea tensiunii de iesire in functie de forta cu care este comprimat. Este prevazut cu 3 terminale (V+, GND, OUT). Tensiunea de alimentare este de 5V. La iesire aceasta tensiune variaza intre 1-5 V, valoare stabilita de nivelul de apasare. In fig. 9 este prezentat un rezistor sensibil la apasare.
Fig. 9 Rezistor sensibil la apasare
Interpretarea datelor de iesire ale acestui senzor se face cu ajutorul platformei Arduino. In cadrul programarii se pot impune praguri de sensibilitate la diferite forte de apasare. In acest caz, am configurat 3 praguri de compresie, pentru a separa compresiile in afara parametrilor de cele corecte. Ghidurile de resuscitare subliniaza ca distanta compresiilor nu trebuie sa depaseasca 5 cm in adancime. Orice compresie sub 5 cm este considerata ineficienta, iar o valoare peste aceasta limita poate provoca ruperea coastelor sau leziuni pe stern. In porttitor. Donec laoreet nonummy augue. Suspendisse dui purus, scelerisque at, vulputate vitae, pretium mattis, nunc. Mauris eget neque at sem venenatis eleifend. Ut nonummy. Fusce aliquet pede non pede. Sus.pendisse dapibus lorem pellentesque magna. Integer nulla. Donec blandit feugiat ligula. Donec hendrerit, felis et imperdiet euismod, purus ipsum pretium metus, in lacinia nulla nisl eget sapien. In porttitor. Donec laoreet nonummy augue. Suspendisse dui purus, scelerisque at, vulputate vitae, pretium mattis, nunc. Mauris eget neque at sem venenatis eleifend. Ut nonummy. Fusce aliquet pede non pede. Suspendisse dapibus lorem pellentesque magna. Integer nulla. Donec blandit feugiat ligula. Donec hendrerit, felis et imperdiet euismod, purus ipsum pretium metus, in lacinia nulla nisl eget sapien.
Mauris eget neque at sem venenatis eleifend. Ut nonummy. Fusce aliquet pede non pede. Suspendisse dapibus lorem pellentesque magna. Integer nulla. Donec blandit feugiat ligula.
Etapele care trebuiesc parcurse in timpul procesului de resuscitare sunt afisate pe un ecran, la finalizarea fiecarui pas este indicat „Pas finalizat”. Ecranul folosit in cadrul acestui proiect este de tip LCD cu posibilitate de afisare a 40 de caractere dispuse pe doua randuri. Conexiunea cu placa Arduino se realizeaza paralel, datele sunt transmise in acelasi timp catre procesorul responsabil de decodarea acestora. Afisajul are integrat cipul Hitachi HD44780, unul dintre cel mai des folosite circuite in materie de afisaje cu cristale lichide cu matrice de puncte. Firma producatoare a proiectat microcontroller-ul special cu destinatia caracterelor alfanumerice, cu posibilitate de conexiune la un microprocesor, pentru a afisa diverse date, cum este si cazul de fata. In figura i.j este prezentat afisajul cu cristale lichide folosit pentru ilustrarea pasilor in timpul efectuarii manevrelor de resuscitare, pentru o cat mai buna experienta educationala.
Fig.i.j Ecran LCD de tip 40×2
In cazul unui ciclu de resuscitare complet, pentru a valida corectitudinea manevrelor execuate, este nevoie de a porni „pulsul” acestui manechin. Aceasta operatiune se face cu ajutorul unui micromotor cu vibrator alimentat din placa Arduino si pozitionat in zona arterei carotide a manechinului, locul unde se verifica pulsul la om. Acesta va fi temporizat din program, va functiona 750ms si tot atat timp este oprit. Acest motor nu porneste decat in cazul efectuarii unui ciclu complet si corect din punct de vedere parametric, conform cu standardele medicale.
Acest motor este un motor ce se alimenteaza cu tensiune continua. Se poate alimenta intre 1-5 V. Pe axul motorului, excentric este presata o greutate, care ii deterioreaza balansul, facandu-l sa vibreze. Este folosit in majoritatea aplicatiilor unde este nevoie de atentionarea utilizatorului in mot tactil. Telefoanele mobile sunt dotate majoritatea cu astfel de motoare vibratoare. Un exemplu de motor cu vibrator este prezentat in figura 10
Fig.10 Micromotor cu vibrator
i.j Asamblarea componentelor
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna. Nunc viverra imperdiet enim. Fusce est. Vivamus a tellus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin pharetra nonummy pede. Mauris et orci. Aenean nec lorem. In porttitor. Donec laoreet nonummy augue. Suspendisse dui purus, scelerisque at, vulputate vitae, pretium mattis, nunc. Mauris eget neque at sem venenatis eleifend. Ut nonummy. Fusce aliquet pede non pede. Suspendisse dapibus lorem pellentesque magna. Integer nulla. Donec blandit feugiat ligula. Donec hendrerit, felis et imperdiet euismod, purus ipsum pretium metus, in lacinia nulla nisl eget sapien. Donec ut est in lectus consequat consequat. Etiam eget dui. Aliquam erat volutpat. Sed at lorem in nunc porta tristique. Proin nec augue.
Quisque aliquam tempor magna. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc ac magna. Maecenas odio dolor, vulputate vel, auctor
?. Introducere in microcontrollere
Circumstanțele în care ne găsim astăzi în domeniul microcontrolerelor și-au avut începuturile în dezvoltarea tehnologiei circuitelor integrate. Această dezvoltare a făcut posibilă înmagazinarea a sute de mii de tranzistoare într-un singur cip. Aceasta a fost o premiză pentru producția de microprocesoare, și primele calculatoare au fost făcute prin adăugarea perifericelor ca memorie, linii intrare-ieșire, timer-i și altele. Următoarea creștere a volumului capsulei a dus la crearea circuitelor integrate. Aceste circuite integrate conțin atât procesorulcât și perifericele. Așa s-a întâmplat cum primul cip conținând un microcalculator, sau ce vadeveni cunoscut mai târziu ca microcontroler a luat ființă.
Privind evoluția istorică a operației de comandă a unui proces putem contura imaginea unui microcontroller. Un controller este un sistem folosit pentru a comanda și a prelua stări de la un proces sau un aspect al mediului inconjurător. La început un controller era un echipament de mari dimensiuni. După apariția microprocesoarelor dimensiunile controller-elor s-au redus. Procesul de miniaturizare a continuat, toate componentele necesare unui controller au fost integrate pe același chip. S-a născut astfel calculatorul pe un singur chip specializat pentru implementarea operațiilor de control; acesta este microcontroller-ul.
a.b Istoric microcontrollere
In anul 1969 o echipa de ingineri japonezi de la firma Busicom ajunsa in Statele Unite a propus firmelor producatoare de calculatoare sa unele circuite integrate sa fie facute folosind proiectele lor. Una din firme careia i s-au adresat a fost Intel. Compania a acceptat propunerea inginerilor japonezi, iar Marcian Hoff a fost denumit responsabil de proiect. Data fiind experienta sa in lucru cu calculatorul de tip PC (PDP8), el a sugerat echipei o solutie diferita in locul structurii propuse. Aceasta solutie implica faptul ca functionarea circuitului integrat este determinata de un program inscris in memoria acestuia. Aceasta idee presupunea o configuratie mult mai simpla, dar era necesar o memorie mai mare decat cea disponibila la acea vreme. Dupa o vreme, dupa toate propunerile aduse de inginerii japonezi de a simplifica cat mai mult proiectul, ideea lui Marcian a castigat, iar primul microprocesor a fost realizat. In ajutorul lui Marcian a venit si Federicco Faggin. Acesta era angajat Intel si in doar 9 luni au reusit sa scoata un produs finit. Intel a obtinut integral drepturile de a vinde acest bloc de circuite in 1971. A achizitionat licenta de la Busicom, companie care nu a stiut ce comoara detine. In timpul acelui an a aparut pe piata un microprocesor numit 4004. Acesta era pe 4 biti si era cababil de a executa 6000 de operatii pe secunda. La scurta vreme, compania americana CTC a cerut firmelor Intel si Texas Instruments sa produca un microprocesor pe 8 biti, pentru a fi folosit in terminale. In aprilie 1972 in urma colaborarii celor 2 colosi industriali, a aparut pe piata primul microprocesor de 8 biti. Acesta avea numele de 8008. Putea sa adreseze 16Kb de memorie si avea 45 de instructiuni si viteza de 300.000 de operatii pe secunda. Acel microprocesor a fost predecesorul tuturor microprocesoarelor de astazi. INTEL au continuat dezvoltarile lor pâna în aprilie 1974 si au lansat pe piata microprocesorul de 8 biti sub numele de 8080 ce putea adresa 64Kb de memorie si avea 75 de instructiuni.
Evolutia galopanta a tehnologiei si concurenta accerba intre companii de a deveni lider pe piata, a facut compania Motorola sa intre in competitie cu celelalte doua companii. A lansat un microprocesor de 8 biti, numit 6800. Motorola a fost prima companie care sa faca alte periferice ca 6820 si 6850. La acel timp multe companii au recunoscut marea importanta a microprocesoarelor si au început propriile lor dezvoltari. Chuck Peddle era responsabilul din cadrul Motorola de acest proiect. La scurta vreme el paraseste Motorola pentru a se muta la MOS Technology si continua sa lucreze intensiv la dezvoltarea microprocesoarelor.
La expozitia WESCON din Statele Unite din 1975 a avut loc un eveniment critic în istoria microprocesoarelor. MOS Technology a anuntat ca produce microprocesoarele 6501 si 6502. Pretul unei bucati, la vremea aceea era de 25$ pe care cumparatorii le puteau cumpara imediat. Aceasta a fost atât de senzational încât au crezut ca este un fel de înselaciune, gândind ca competitorii vindeau 8080 si 6800 la 179$. Ca un raspuns la competitorii lor atât INTEL cât si Motorola au scazut preturile lor în prima zi a expozitiei pâna la 69.95$ pe microprocesor. Motorola intenteaza repede proces contra lui MOS Technology si contra lui Chuck Peddle pentru copierea protejatului 6800. MOS Technology înceteaza de a mai produce 6501 dar continua sa produca 6502. 6502 este un microcontroler pe 8 biti cu 56 de instructiuni si o capabilitate de adresare directa de 64Kb de memorie. Datorita costului scazut, 6502 devine foarte popular, asa ca este instalat în calculatoare ca :KIM-1, Apple I, Apple II, Atari, Comodore, Acorn, Oric, Galeb, Orao, Ultra si multe altele. Curând apar câtiva producatori de 6502 (Rockwell, Sznertek, GTE, NCR, Ricoh si Comodore preiau MOS Technology) ce era în momentul prosperitatii sale vândut la o rata de 15 milioane de microprocesoare pe an.
Federico Faggin paraseste INTEL, si îsi porneste propria sa companie Zilog Inc.
În 1976 Zilog anunta Z80. În timpul crearii acestui microprocesor, Faggin ia o decizie cruciala. stiind ca un mare numar de programe fusesera dezvoltate pentru 8080, Faggin îsi da seama ca multi vor ramâne fideli acelui microprocesor din cauza marii cheltuieli care ar rezulta în urma refacerii tuturor programelor. Astfel el decide ca un nou microprocesor trebuie sa fie compatibil cu 8080, sau ca trebuie sa fie capabil sa execute toate programele care deja fusese scrise pentru 8080. În afara acestor caracteristici, multe altele noi au fost adaugate, asa ca Z80 a fost un microprocesor foarte puternic la vremea lui. Putea adresa direct 64Kb de memorie, avea 176 instructiuni, un numar mare de registre, o optiune incorporata pentru reîmprospatarea memoriei RAM dinamice, o singura sursa, viteza de lucru mult mai mare etc. Z80 a fost un succes mare si toata lumea a facut conversia de 8080 la Z80. Se poate spune ca Z80 comercial, a fost fara nici o îndoiala, cel mai de succes micropocesor de 8 biti a acelui timp. În afara de Zilog, alti noi producatori apar de asemenea ca: Mostek, NEC, SHARP si SGS. Z80 a fost inima a multor calculatoare ca: Spectrum, Partner, TRS703, Z-3. În 1976, INTEL iese pe piata cu o versiune îmbunatatita de microprocesor pe 8 biti numit 8085. Totusi, Z80 era cu mult mai bun încât INTEL curând a pierdut batalia. Chiar daca au aparut pe piata înca câteva microprocesoare (6809, 2650, SC/MP etc.), totul fusese de fapt deja hotarât. Nu mai erau de facut îmbunatatiri importante ca sa-i faca pe producatori sa se converteasca spre ceva nou, asa ca 6502 si Z80 împreuna cu 6800 au ramas ca cei mai reprezentativi ai microprocesoarelor de 8 biti ai acelui timp.
a.b Microcontrolere contra Microprocesoare
Microcontrolerul difera de un microprocesor în multe feluri. În primul rând si cel mai important este functionalitatea sa. Pentru a fi folosit, unui microprocesor trebuie sa i se adauge alte componente ca memorie, sau componente pentru primirea si trimiterea de date. Pe scurt, aceasta înseamna ca microprocesorul este inima calculatorului. Pe de alta parte, microcontrolerul este proiectat sa fie toate acestea într-unul singur. Nu sunt necesare alte componente externe pentru aplicarea sa pentru ca toate perifericele necesare sunt deja incluse în el. Astfel, economisim timpul si spatiul necesare pentru construirea de aparate.
a.b Arhitectura unui microprocesor
a.b.c Unitatea de memorie
Memoria este o parte a microcontrolerului a carei functie este de a înmagazina date. Cel mai usor mod de a explica este de a-l descrie ca un dulap mare cu multe sertare. Daca presupunem ca am marcat sertarele într-un asemenea fel încât sa nu fie confundate, oricare din continutul lor va fi atunci usor accesibil. Este suficient sa se stie desemnarea sertarului si astfel continutul lui ne va fi cunoscut în mod sigur. Pentru o anumita intrare obtinem continutul unei anumite locatii de memorie adresate si aceasta este totul. Doua noi concepte ne sunt aduse: adresarea si locatia de memorie. Memoria consta din toate locatiile de memorie, si adresarea nu este altceva decât selectarea uneia din ele. Aceasta înseamna ca noi trebuie sa selectam locatia de memorie la un capat, si la celalalt capat trebuie sa asteptam continutul acelei locatii. În afara de citirea dintr-o locatie de memorie, memoria trebuie de asemenea sa permita scrierea în ea. Aceasta se face prin asigurarea unei linii aditionale numita linie de control. Vom desemna aceasta linie ca R/W (citeste /scrie). Linia de control este folosita în urmatorul fel: daca r/w=1, se face citirea, si daca opusul este adevarat atunci se face scrierea în locatia de memorie. In figura a.b este prezentata schema simplificata a memoriei unui procesor.
Fig. A.b Dispunerea memoriei unui microprocesor
a.b.c Unitatea de procesare centrala
Daca adaugam alte 3 locatii de memorie pentru un bloc specific ce va avea o capabilitate incorporata de înmultire, împartire, scadere si sa-i mutam continutul dintr-o locatie de memorie în alta. Partea pe care tocmai am adaugat-o este numita "unitatea de procesare centrala" (CPU). Locatiile ei de memorie sunt numite registri. Registrii sunt deci locatii de memorie al caror rol este de a ajuta prin executarea a variate operatii matematice sau a altor operatii cu date oriunde se vor fi gasit datele. Sa privim la situatia curenta. Avem doua entitati independente (memoria si CPU) ce sunt interconectate, si astfel orice schimb de informatii este ascuns, ca si functionalitatea sa. Daca, de exemplu, dorim sa adaugam continutul a doua locatii de memorie si întoarcem rezultatul înapoi în memorie, vom avea nevoie de o conexiune între memorie si CPU. Mai simplu formulat, trebuie sa avem o anumita "cale" prin care datele circula de la un bloc la altul. In figura de mai jos este prezentata schematic Unitatea de procesare centrala.
Fig a.b Structura unitatii centrale de procesare
a.b.c Magistralele microprocesorului
Magistrala reprezinta calea de vehiculare a informatiei. In engleza este denumita bus. Fizic reprezinta un grup de 8, 16, sau mai multe fire. Sunt doua tipuri de magistrale-uri: de adrese si de date. Prima consta din atâtea linii cât este cantitatea de memorie ce dorim sa o adresam, iar celalalta este atât de lata cât sunt datele, în cazul nostru 8 biti sau linia de conectare. Magistrala de adrese serveste la transmiterea adreselor de la CPU la memorie, iar cea de date ajuta la conectarea tuturor blocurilor din interiorul microcoprocesorului. In figura a.b este explicata detaliat dispunerea magistralelor in cadrul unui microprocesor.
Fig. a.b Magistralele unui microprocesor
În ceea ce priveste functionalitatea, situatia s-a îmbunatatit, dar o noua problema a aparut de asemenea: avem o unitate ce este capabila sa lucreze singura, dar ce nu are nici un contact cu lumea de afara, sau cu noi! Pentru a înlatura aceasta deficienta, sa adaugam un bloc ce contine câteva locatii de memorie al caror singur capat este conectat la bus-ul de date, iar celalalt are conexiune cu liniile de iesire la microcontroler ce pot fi vazute cu ochiul liber ca pini la componenta electronica.
a.b.c Unitatea intrare-iesire
Pentru a completa un microprocesor din punct de vedere functional avem nevoie si de acces pentru interactiona cu acesta. Aceste cai se numesc porturi. Sunt de diferite tipuri: de intrare, de iesire sau capabile de ambele stari. Când se lucreaza cu porturi, mai întâi de toate este necesar sa se aleaga cu ce port urmeaza sa se lucreze, si apoi sa se trimita date la, sau sa se ia date de la port. In figura a.b este prezentata unitatea de intrare-iesire.
Fig. A Unitatea de intrare-iesire a microprocesorului
a.b.c Comunicatia seriala
Pentru a comunica cu un microprocesor, cea mai avantajoasa metoda este cea a comunicatiei seriale. Informatia vehiculata catre si dinspre procesor se face pe o singura magistrala. Pentru aceasta operatirune este nevoie de codarea informatiei la emitator si decodificarea ei la receptie. Fluxul de date este impartit in pachete care apoi sunt transmise secvential. Este nevoie de stabilirea regulilor de schimb al datelor. Aceste reguli sunt numite protocol. Protocolul este de aceea definit în avans ca sa nu fie nici o neîntelegere între partile ce comunica una cu alta. Pentru ca avem linii separate de receptie si de transmitere, este posibil sa receptionam si sa transmitem date (informatii) în acelasi timp. Blocul asa numit full-duplex mode ce permite acest mod de comunicare este numit blocul de comunicare seriala. Spre deosebire de transmisia paralela, datele sunt mutate aici bit cu bit, sau într-o serie de biti, de unde vine si numele de comunicatie seriala. Dupa receptia de date trebuie sa le citim din locatia de transmisie si sa le înmagazinam în memorie în mod opus transmiterii unde procesul este invers.
Datele circula din memorie prin bus catre locatia de trimitere, si de acolo catre unitatea de receptie conform protocolului. In figura a.b este redata unitatea seriala pentru a trimite date, varianta pentru 3 linii.
Fig. A.b Schema conexiunii seriale
a.b Unitatea Timer
Pentru a putea fi folosit in industrie, unui microprocesor i s-a mai adaugat si blocul timer. Acesta joaca un rol important in functionaliatea ansamblului de calcul. Ofera utilizatorului informatii de timp, durata, protocol, etc.
Fig. A.b Timer-ul microprocesorului
Unitatea de baza a timer-ului este un contor liber (free-run) care este de fapt un registru a carui valoare numerica creste cu unu la intervale egale, asa încât luându-i valoarea dupa intervalele T1 si T2 si pe baza diferentei lor sa putem determina cât timp a trecut. Acesta este o parte foarte importanta a microcontrolerului al carui control cere cea mai mare parte a timpului nostru.
a.b Watchdog-ul
Înca un lucru ce necesita atentia noastra este functionarea fara defecte a microcontrolerului în timpul functionarii. Sa presupunem ca urmare a unei anumite interferente (ce adesea se întâmpla în industrie) microcontrolerul nostru se opreste din executarea programului, sau si mai rau, începe sa functioneze incorect.
Fig a.b Schema watchdog-ului unui microprocesor
Bineînteles, când aceasta se întâmpla cu un calculator, îl resetam pur si simplu si va continua sa lucreze. Totusi, nu exista buton de resetare pe care sa-l apasam în cazul microcontrolerului care sa rezolve astfel problema noastra. Pentru a depasi acest obstacol, avem nevoie de a introduce înca un bloc numit watchdog – tradus inseamna câinele de paza. Acest bloc este de fapt un alt contor liber (free-run) unde programul nostru trebuie sa scrie un zero ori de câte ori se executa corect. În caz ca programul se "întepeneste", nu se va mai scrie zero, iar contorul se va reseta singur la atingerea valorii sale maxime. Aceasta va duce la rularea programului din nou, si corect de aceasta data pe toata durata. Acesta este un element important al fiecarui program ce trebuie sa fie fiabil fara supravegherea omului.
a.b Convertorul Analog-Digital
Pentru ca semnalele de la periferice sunt substantial diferite de cele pe care le poate întelege microcontrolerul (zero si unu), ele trebuie convertite într-un mod care sa fie înteles de microcontroler. Aceasta sarcina este îndeplinita de un bloc pentru conversia analog-digitala sau de un convertor AD. Acest bloc este responsabil pentru convertirea unei informatii despre o anumita valoare analogica într-un numar binar si pentru a o urmari pe tot parcursul la un bloc CPU asa ca blocul CPU sa o poata procesa. Figura a.b ne ilustreaza covertorul Analog-Digital din structura interna a unui microprocesor
Fig.A.b Convertorul Analog-Digital
Astfel microcontrolerul este acum terminat, si tot ce mai ramâne de facut este de a-l pune într-o componenta electronica unde va accesa blocurile interioare prin pinii exteriori. Imaginea de mai jos arata cum arata un microprocesor în interior.
Fig a.b Configuratia fizica a interiorului unui
Schema se principiu al intregii arhitecturi a microprocesorului este prezentata in fig a.b
Programarea poate fi facuta în câteva limbaje ca Assembler, C si Basic care sunt cele mai folosite limbaje. Assembler apartine limbajelor de nivel scazut ce sunt programate lent, dar folosesc cel mai mic spatiu în memorie si da cele mai bune rezultate când se are în vedere viteza de executie a programului. Pentru ca este cel mai folosit limbaj în programarea microcontrolerelor va fi discutat într-un capitol ulterior. Programele în limbajul C sunt mai usor de scris, mai usor de înteles, dar sunt mai lente în executare decât programele în Assembler. Basic este cel mai usor de învatat, si instructiunile sale sunt cele mai aproape de modul de gândire a omului, dar ca si limbajul de programare C este de asemenea mai lent decât Assembler-ul. În orice caz, înainte de a va hotarî în privinta unuia din aceste limbaje trebuie sa studiati cu atentie cerintele privind viteza de executie, marimea memoriei si timpul disponibil pentru asamblarea sa.
Dupa ce este scris programul, trebuie sa instalam microcontrolerul într-un aparat si sa-l lasam sa lucreze. Pentru a face aceasta trebuie sa adaugam câteva componente externe necesare pentru functionarea sa. Mai întâi trebuie sa dam viata microcontrolerului prin conectarea sa la o sursa (tensiune necesara pentru operarea tuturor instrumentelor electronice) si oscilatorului al carui rol este similar inimii din corpul uman. Bazat pe ceasul sau microcontrolerul executa instructiunile programului. Îndata ce este alimentat microcontrolerul va executa un scurt control asupra sa, se va uita la începutul programului si va începe sa-l execute. Cum va lucra aparatul depinde de multi parametri, cel mai important fiind priceperea dezvoltatorului de hardware, si de experienta programatorului în obtinerea maximului din aparat cu programul sau.
Programarea microcontroller-ului pentru integrarea in simulator
Limbajul de programare
Limbajul C a luat nastere la inceputul anilor 1970, in paralelel cu dezvoltarea microprocesoarelor. Principalul responsabil de aceasta a fost Dennis M. Ritchie, un angajat al firmei americane Bell Labs (componenta AT&T). In anii `60 Ritchie a lucrat impreuna cu alti angajati ai companiei la un proiect denumit Multics. Scopul acestui proiect a fost acela de a dezvolta un sistem de operare pentru un calculator ce urma sa fie folosit de 1000 de utilizatori. In 1969 Bell Labs s-a retras din proiect, motivand ca nu pot produce un sistem util, pe considerente economice. Astfel angajatii firmei, dar in principal Dennis M. Ritchie si Ken Thompson au fost nevoiti sa caute alt proiect la care sa lucreze. Acesta din urma a inceput sa dezvolte un nou sistem de fisiere. A scris o versiune a acestuia pentru calculatorul DEC PDP-7, in limbaj de asamblare. Curand ambii parteneri au facut imbunatatiri si au adaugat extensii. Cunostintele necesare au fost imprumutate de la proiectul Multics. La scurta vreme, a luat nastere un nou sistem de operare, complet. Brian W. Kernighan a denumit acest sistem UNIX, o referinta sarcastica la Multics. Tot programul era scris in limbaj de asamblare.
Pe langa limbajul de asamblare si Fortran, UNIX-ul avea posibilitate de interpretare a limbajului de programare B. Acesta a fost initiat de catre Ken Thompson in 1969-1970. La inceputurile calculatoarelor codul de programare era scris in limbaj de asamblare. Pentru a executa o operatie specifica, erau de scris multe pagini de cod. Un limbaj de nivel inalt, precum limbajul B a facut posibila scrierea aceleiasi instructiuni in doar cateva linii de cod. Acest limbaj a fost folosit in continuare pentru dezvoltarea sistemului UNIX. Datorita superioritatii limbajului B, codul sursa a putut fi mult mai repede transpus in limbaj de asamblare.
Unul din neajunsurile limbajului de progrmare B il constituia faptul ca acesta nu cunostea tipuri de date. O alta problema sesizata era faptul ca limbajul nu oferea folosirea structurilor in cadrul programarii. Lipsa acestor elemente l-a determinat pe Dennis M. Ritchie sa dezvolte limbajul de programare C. Astfel, in 1973 acesta transforma limbajul de programare B in C, pastrand majoritatea sintaxelor de limbaj apoi a adaugat tipuri de date si alte modificari.
Limbajul de programare C dispunea de o puternica functionalitate si caracteristici bine detaliate, necesare programarii unui sistem de operare. Drept urmare, multe din componentele UNIX au fost rescrise in C.
Limbajul de programare C a fost scris intr-o carte de catre Kernighan si Ritchie numita “Programarea in C, prima editie”. Aceasta a stat la baza programarii calculatoarelo multi ani de la aparitie. In 1983 este infiintat American National Standards Institute (ANSI). Aceasta institutie isi propune sa dezvolte o definitie moderna a limbajului de programare C (ANSI X311). Varianta finala a acestui nou cod imbunatatit apare in 1988, dar bazele faceau parte din cartea aparuta cu 15 ani in urma. ANSI C a devenit standard, cu mici modificari la limbajul initial. Mai tarziu ANSI C a fost adoptat de ISO (International Standards Organization)
In paralel, in 1978, Bjarne Stroustrup, matematician si cercetator danez, a preluat codul C, l-a revizuit si i-a adus imbunatatiri. Apoi l-a denumit „C++”. Acesta a ramas ca standard in programare pana in zilele noastre.
Partea de programare a acestui simulator reprezinta jumatate din procesul de asamblare a tuturor componentelor pentru a abtine un un produs finit cat mai apropiat de standardele medicale.
Programarea unei placi electronice precum Arduino, pentru integrarea in prezentul proiect s-a facut in limbaj C++, in cadrul mediului de programare oferit de Arduino, numit IDE (Integrated Development Environment) prezentata in fig a.b
Aceasta etapa este foarte delicata intrucat programarea defectuoasa a placii poate sa influenteze negatic functionalitatea intregului ansamblu. Codul prin care sunt implementate instructiunile de lucru este organizat in interiorul a doua bucle,
Fig a.b Interfata de programare Arduino
Comunicarea placii cu calculatorul de face cu ajutorul conexiunii seriale, prin intermediul magistralei seriale universale (USB). Aceasta conexiune este bidirectionala, Arduino poate primi si trimite instructiuni si mesaje, iar calculatorul afiseaza executia acestora. Comunicarea serială reprezintă o formă de I / O, în care biții dintr-un byte sunt transferați unul câte unul, într-o secvență sincronizată pe un singur fir.
Cele mai des întâlnite funcții în programarea plăcilor Arduino sunt void setup(){} -funcția pentru inițializarea valorilor și void loop(){}-bucla principală a programului. Pe langa acestea in C++ mai sunt folosite librarii, ele reprezintă o colecție de funcții, colecție în care toate funcțiile sunt înrudite. Un aspect foarte important al librariilor este faptul că acestea conțin funcții deja scrise. Acest lucru înbunătățește foarte mult timpul de realizare a unui proiect și deasemenea reduce necesarul de cunoștinte pentru implementarea acestuia.
Cele mai folosite funcții a librariei Serial sunt:
-Serial.begin(viteza) -are rolul de a inițializa biblioteca Serial. Parametrul viteza este dat în biți pe secundă
-Serial.read() – citește date de pe portul serial
-Serial.print() – tiparește date pe portul serial
-Serial.println()- tiparește datele pe o linie nouă
Acesti parametrii sunt declarati in secventa de cod la momentul in care dorim sa le afisam. Datele transmise de Arduino se pot monitoriza pe consola integrata a mediului de programare, numita Serial Monitor, prezentata in coltul din dreapta sus al figurii a.b
In zilele noastre, majoritatea echipamentelor electronice sunt echipate cu microcontroller sau microprocesor. Aceste dotari ating de cele mai multe ori perfomantele de procesare si capacitatile de memorie a unui calculator folosit acum 10-15 ani. Progresul tehnic permite miniaturizarea lor si integrarea acestora pe platforme de prototipare, precum si cea de fata. Acestea depind de calculator prin prisma programarii, pentru a interactiona cu diferiti senzori sau componente si pentru a realiza succesiunea operatiilor dorite.
BIBLIOGRAFIE
[1] http://www.descopera.ro
[2] http://anatomie.romedic.ro/sistemul-circulator
[@]http://www.bioterapi.ro/aprofundat/index_aprofundat_aparate_si_sisteme_si_boli_sistemul_circulator.html
[3] http://anatomie.romedic.ro/sistemul-respirator
[4] http://anatomie.romedic.ro/sistemul-nervos
[5] Ghidurile de resuscitare 2010 – Document tradus si supravegheat de Comisia Europeana de Resuscitare
[6] Britannica Ultimate Reference Suite 2008, “Computer”
[7] History of Arduino – Ken Leung
[8] The Making of Arduino – http://spectrum.ieee.org/geek-life/hands-on/the- aking-of-arduino
[9] http://shop.mecatronica.eu/arduino-mega-2560-plus/
[10] Teguna
[11] Roroid
BIBLIOGRAFIE
[1] http://www.descopera.ro
[2] http://anatomie.romedic.ro/sistemul-circulator
[@]http://www.bioterapi.ro/aprofundat/index_aprofundat_aparate_si_sisteme_si_boli_sistemul_circulator.html
[3] http://anatomie.romedic.ro/sistemul-respirator
[4] http://anatomie.romedic.ro/sistemul-nervos
[5] Ghidurile de resuscitare 2010 – Document tradus si supravegheat de Comisia Europeana de Resuscitare
[6] Britannica Ultimate Reference Suite 2008, “Computer”
[7] History of Arduino – Ken Leung
[8] The Making of Arduino – http://spectrum.ieee.org/geek-life/hands-on/the- aking-of-arduino
[9] http://shop.mecatronica.eu/arduino-mega-2560-plus/
[10] Teguna
[11] Roroid
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Simulator CU Rol Educational DE Resuscitare Cardiopulmonara (ID: 158007)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
