Neurochirurgie minim invazivă
"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv. Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice. www.neurohope.ro |
Arduino - automatizare DIY
#955
Posted 24 March 2017 - 09:27
Citisem si mi-am notat in memorie, ca dispozitivele de la vechile mouse-uri sunt potrivite pentru sa ceva. Daca cumva gasesti unul, poti incerca...
Defapt, cred ca asa ceva e reprezentat in prima ta poza. |
#956
Posted 24 March 2017 - 09:38
Pai nu stiu daca are sens sa ma apuc de desfacut maus-uri vechi ca sa le iau "potentiometrele", atita timp cit un "buton" dinasta (Modul Codor Rotativ), ca ala din poza, l-am cumparat din Ro cu 8,98lei. Din China vad ca-l pot lua pe la un 0,50$ (Rotary Encoder Module Brick Sensor Development for arduino KY-040)
Mai trebuie doar sa aflu cum sa-i fac codul, ca sa faca ce vreau eu. |
#957
Posted 24 March 2017 - 10:11
Pai cu denumirea de potentiometru m-ai indus in eroare.
Dupa descrierea erorii as incerca sa numar cel putin 2 pasi intr-o directie ca sa derulez meniul in acea directie. Si poti sa ignori obiectia cu fiabilitatea sau sugestia cu joystick-ul. Dpdv fiabilitate ai ales ce trebuie. Edited by automatecasa, 24 March 2017 - 10:14. |
#958
Posted 24 March 2017 - 10:13
Encoderele de la mouse fac aceeasi treaba dar nu cu contacte mecanice ci cu 2 fotocelule IR.
Encoderul chinezesc cred ca este inscriptionat gresit. DT si CLK sunt de fapt iesirile A si B ale encoderului in cuadratura. Sunt 2 semnale dreptunghiulare defazate intre ele in functie de directia de rotire. Nu am vazut nici un exemplu de cod pentru encoder dar vezi http://playground.ar.../RotaryEncoders Edited by radurus, 24 March 2017 - 10:14. |
#959
Posted 24 March 2017 - 10:22
automatecasa, on 24 martie 2017 - 10:11, said:
Pai cu denumirea de potentiometru m-ai indus in eroare. automatecasa, on 24 martie 2017 - 10:11, said:
... as incerca sa numar cel putin 2 pasi intr-o directie .... Buna idee radurus, on 24 martie 2017 - 10:13, said:
Encoderul chinezesc cred ca este inscriptionat gresit. DT si CLK sunt de fapt iesirile A si B ale encoderului in cuadratura. Sunt 2 semnale dreptunghiulare defazate intre ele in functie de directia de rotire. La fel zic si eu. radurus, on 24 martie 2017 - 10:13, said: Am citit acolo, insa exemplele respective ma cam depasesc. Mai dureaza pina o sa le inteleg Singurul limbaj de programare pe care am incercat sa-l invat si ma descurcam in el acceptabil, a fost BASIC-ul, de care m-am apucat cu 1-2 ani inainte de revolutie si fireste ca la scurt timp l-am abandonat. Asa ca acum merg mai mult pe bijbiite si pe ghicite cu arduino asta . ------ Codul de la care am pornit si am inceput sa-l modific si care merge bine, numai ca nu face ce vreau eu, este asta:
Spoiler
Am mai incercat si alt cod care a mers bine:
Spoiler
Fireste, ambele coduri le-am modificat putin, ca sa mearga pe LCD-ul meu. Edited by florin71_skoda, 24 March 2017 - 10:29. |
#960
Posted 24 March 2017 - 10:32
Ideea simpla din spatele encoderului este urmatoarea:
- ambele semnale sunt pull-up cu rezistoare 10k. - un semnal se considera activ cand trece din high in low. - daca semnalul B trece in low si A este deja low, inseamna ca avem o directie (stanga de ex) - daca semnalul A trece in low si B este deja low asta inseamna ca encoderul a fost miscat in cealalta directie. Adica atunci cand un semnal trece in low, trebuie sa verifici starea celuilalt semnal pereche |
#961
Posted 24 March 2017 - 10:40
Am gasit si un cod cu low si high, insa pe mine ala ma incurca, deoarece as vrea sa leg "butonul" la 3 pini analogici. Legat butonul pe pini digitali, functiona si ala cu low si high, dar cind am mutat butonul pe analogici, nu a mai vrut sa mearga si pina la urma am renuntat la el.
------ Eu am gasit pe net ca ar functiona asa: RotaryEncoderWaveform.gif 3.25K 4 downloads De aici eu inteleg ca atunci cind fac o rotire, de 1 clik, spre dreapta - prima data B trece sus, - dupaia trece si A sus - dupaia B revine jos si A ramine sus - dupaia vine si A jos Edited by florin71_skoda, 24 March 2017 - 10:56. |
#962
Posted 24 March 2017 - 10:52
Asa e cu encoderul.
Doar ca noi folosim ca activa trecerea din 1in 0 deoarece avem rezistoare de pull-up. Privind ciclic semnalul, devine neimportant daca are sau nu pull-up's. Pinii digitali e recomandat sa fie folositi pentru encoder. Aceia au si intrerupere, adica nu trebuie sa citesti starea tot timpul ci, in momentul evenimentului programul este intrerupt si controlerul afla ca s-a schimbat ceva. Uzual, noi facem citire ciclica la 5-15-50ms. Este inutil sa citesti un encoder timp de 2 ore doar pentru ca din timp in timp s-ar putea sa fie miscat. Te complici daca vrei sa folosesti pinii analogici. Trebuie sa citesti nivele de tensiune in prima faza, sa stabilesti stari high/low unor praguri, sa compari tensiunile citite cu pragurile... Edited by radurus, 24 March 2017 - 11:01. |
#963
Posted 24 March 2017 - 11:19
Problema ar fi ca nu am pini digitali destui, ca de la 4 la 10 sunt ocupati cu LCD-ul. Pina acum foloseam doar 11, 12, 13 pentru relee si acum as fi vrut sa folosesc si pini 2, 3 tot pentru relee.
Ar mai fi pini 0 si 1, adica RX si TX, pe astia am voie sa-i folosesc ? Fie pentru relee, fie pentru buton ? Pina acum aveam 6 intrerupatoare legate la un pin analogic, cu rezistente intre ele. Pe astea nu trebuia sa le tot citesc ? Daca da, atunci parca nu-i asa de deranjant ca acum citesc 2 pini de la enconder |
#964
Posted 24 March 2017 - 11:32
|
#965
Posted 24 March 2017 - 11:47
florin71_skoda, on 24 martie 2017 - 11:19, said: Problema ar fi ca nu am pini digitali destui, ca de la 4 la 10 sunt ocupati cu LCD-ul. Pina acum foloseam doar 11, 12, 13 pentru relee si acum as fi vrut sa folosesc si pini 2, 3 tot pentru relee. Ar mai fi pini 0 si 1, adica RX si TX, pe astia am voie sa-i folosesc ? Fie pentru relee, fie pentru buton ? Pina acum aveam 6 intrerupatoare legate la un pin analogic, cu rezistente intre ele. Pe astea nu trebuia sa le tot citesc ? Daca da, atunci parca nu-i asa de deranjant ca acum citesc 2 pini de la enconder La fel citesc si eu ADC la 100ms. Te sfatuiesc sa treci pe un display cu i2c. Poti pune si releele pe i2c sau 8 leduri (modulul poate fi configurat ca input sau output) I2c foloseste pinii analogici 4 si 5. Asa iti poti elibera pinii digitali pe care poti conecta ulterior card/network (SPI), buzzer, comunicatie OneWire, serial Wifi module... Yellow Display IIC I2C TWI SP I Serial Interface 2004 20X4 Character LCD Module http://s.aliexpress.com/euiI3YZ3 NEW IIC/I2C/TWI/SPI Serial Interface Board Module Port for Arduino 1604 2004 LCD http://s.aliexpress.com/J7neQ3YJ PCF8574 IO Expansion Board I/O Expander I2C-Bus Evaluation Development Module http://s.aliexpress.com/qAFVvQzQ Edited by radurus, 24 March 2017 - 11:50. |
#966
Posted 24 March 2017 - 17:37
Deocamdata mai am 3 module LCD shield si pina nu ma scap de ele nu stiu daca mai cumpar altele. Doar daca o sa constat ca nu am de ales.
lcd_shield3.jpg 37.54K 5 downloads ------- Am uitat ca mai am si sondele de temperatura DS18B20 Deci mai trebuie si pentru astea un pin digital Radurus, nu mi-ai spus daca pot folosi pini RX si TX pentru enconderul KY-040, sau pentru comanda relee, sau sonde DS18B20 Edited by florin71_skoda, 24 March 2017 - 17:43. |
#967
Posted 24 March 2017 - 18:04
Rx si tx sunt semnalele pe care le folosesti cand incarci sketch-ul si cand monitorizezi serial (serial. print, etc.)
Din ce am mai auzit, astea 2 resurse pot fi folosite dar cand incarci program trebuie sa nu ai nimic conectat pe ele. |
#968
Posted 24 March 2017 - 18:07
#969
Posted 25 March 2017 - 00:12
radurus, on 24 martie 2017 - 18:04, said:
Rx si tx sunt semnalele pe care le folosesti cand incarci sketch-ul .... Acum mi-am adus aminte. Mi-ai mai spus odata, dar am uitat. Am mai studiat intre timp ceva sketch-uri, dar momentan nu am ajuns la un rezultat final. Mai sap si miine internetul. Edited by florin71_skoda, 25 March 2017 - 00:13. |
|
#970
Posted 25 March 2017 - 05:50
1. Poți citi pinii analogici in mod digital, cu DigitalRead.
https://www.arduino....AnalogInputPins 2. O implementare cu rotary encoder, cu filmulet, tutorial, cod, detaliat frumos - [ https://www.youtube-nocookie.com/embed/eObcgJHtQHw?feature=oembed - Pentru incarcare in pagina (embed) Click aici ] |
#971
Posted 25 March 2017 - 13:01
Cred ca am gasit pina la urma un sketch care functioneaza ok si urmeaza sa vad cum o sa-l transform intr-un meniu simplu. Deocamdata zic ca am inteles cum sta treaba (sa vedem daca o fi asa)
Acum am o alta "dilema" care ma dispera ca nu stiu sa o rezolv . Am inceput sa invat cum este cu enconderul cu sketch-uri care numara din 1 in 1. Problema ar fi ca daca trec de 10 si dupaia ma intorc inapoi la 9, pe afisaj ramine "coada" ca nu-si face clear si-mi afiseaza 90 in loc de 9. Cum as putea rezolva problema ? Fie prin stergerea cozi, adica un soi de clear, fie prin afisarea de zerouri in fata, adica in loc de 1 sa-mi afiseze de la bun inceput 01 ??? |
#972
Posted 25 March 2017 - 13:34
Trebuie sa transformi variabila ta in "string" cu lungime fixa si apoi sa ii dai print pe ecran la coordonatele dorite.
Uite exemplu din codul meu. Definesti variabila string si lungimea stringului. Convertesti variabila in string prin sprintf (serial print) Ce inseamna ceea ce este intre ghilimele? - rezervi 2 caractere pentru o variabila u(nsigned) - pui 2 puncte - rezervi inca 2 caractere pentru o variabila u(nsigned) dar daca variabila are doar o cifra pe spatiul gol pui un 0 (procent, zero, doi, u) -... -... - urmeaza denumirea celor 3 variabile pentru care am rezervat cate 2 caractere lcd.setCursor(12, 0); char ceas_hhmmss[8]; sprintf(ceas_hhmmss, "%2u:%02u:%02u", hours, minutes, seconds); lcd.print(ceas_hhmmss); Codul acesta imi arata ceasul pe ecran, primul rand, incepand cu coloana 12 pana la 19. Ora este extrasa de pe i2c de la ds3231. Codul trebuie rulat cel putin o data pe secunda daca vreau sa vad cum se incrementeaza secundele. Daca ora se schba de la 23 in 1, ceasul este in acelasi loc iar locul unde a fost 2, ramane gol. Edited by radurus, 25 March 2017 - 13:51. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users