Obsah:

Arduino TDCS Super Simples. Transkraniálny stimulátor jednosmerného prúdu (tDCS): 5 krokov
Arduino TDCS Super Simples. Transkraniálny stimulátor jednosmerného prúdu (tDCS): 5 krokov

Video: Arduino TDCS Super Simples. Transkraniálny stimulátor jednosmerného prúdu (tDCS): 5 krokov

Video: Arduino TDCS Super Simples. Transkraniálny stimulátor jednosmerného prúdu (tDCS): 5 krokov
Video: Can I Use Electricity to Make Her Dance? DIY SHOCK MACHINE 2024, November
Anonim
Arduino TDCS super jednoduché. Transkraniálny stimulátor jednosmerného prúdu (tDCS)
Arduino TDCS super jednoduché. Transkraniálny stimulátor jednosmerného prúdu (tDCS)

Para fazer este tDCS você precisará apenas de um arduino, resistor, kondenzator e alguns cabosComponentes

  1. Arduino

    • Pino D13 je kompatibilné s PWM (rad alter alterado).
    • Pino A0 má rovnakú analógovú (ako spätnú väzbu).
    • Pino GND apenas GND.
  2. Rezistor (~ 470 Ω, s celkovým výkonom 300-1 000 Ω, rôzna presnosť striedania)
  3. Kondenzátor (220 μF). Slúži na zavedenie pulzov do PWM.
  4. Eletrodos de Esponja (Použite água salina para molhá-lo).

Como funciona

O Arduino calcula a corrente padrão (pode ser alterado) que passará pelo seu cérebro apenas por mudar a voltagem de saída. Väčšie množstvo zmien alebo zmien v cieľovej mA pelo sériovej CLI (konzola).

Krok 1: Saiba Mais

Saiba Mais
Saiba Mais

Viac informácií o hlavnom meste. Všetky opatrenia FDA môžu mať za následok predsudky a výhrady, hlavne ich dodržiavanie, prevencia a prevencia…

Krok 2: Okruh Monte O Abaixo

Monte O Circuito Abaixo
Monte O Circuito Abaixo

Teraz sa musíte vrátiť do saliny!

Krok 3: Nainštalujte O Código No Seu Arduino

Zmeniť konfiguráciu a konfiguráciu parametrov hardvérových parametrov a konfigurovateľných parametrov.

Pozrite sa, ako sa menia rôzne hrubé sadzby podľa sériového bodu: 115200 ods.

Para executar comandos, troque o No Line Ending para Carriage Return.

O código fonte + tutorial também podem ser encontrados no repositório:

Código:

const Reťazec ver = "2,0 m"; // HARDWAROVÉ PARAMETRE const int analogInPin = A0; // Entrada do Analogico const int analogOutPin = 13; // Saida D13 padrão float maxOutV = 5,0; // Voltagem of Pida PWM padrão do Arduino [V] float maxRefInV = 1.1; // Referencia à voltagem analógica [V] float R = 470,0; // Rezistencia da corrente [Ohm]

// KONFIGUROVATEĽNÉ PARAMETRE

bool plotter = nepravda; // Defina: true, caso esteja usando o Serial plotter bool putty = false; // Defina: true, caso esteja usando o PuTTT (pode ser alterado no CLI) int maxmin = 30; // Tempo (minúty) nevyhnutné pre desligar [Min] float target_mA = 2,73; // Essa é a corrente que passará pelo seu cérebro !!! [mA] float epsilon_mA = 0,03; // Rozdielna maximálna vstupná a skutočná veľkosť cieľovej mA (Najvyššia možná zmena!)

// INIT GLOBALS

int stav = 1; /* -1 - Hlavné identifikačné číslo 0 - Počet odoslaných zmien definovaných ako hlavné 1 - Tudo certo. Você esta na corrente definida -10 - Voltagem desligada */ float outV = maxOutV; // Voltagem int debounced_state = 0; int nuly_len = 0; float smoothed_mA = 0;

Reťazec commandString = ""; // pre CLI

// POMOCNÍCI SPRÁVY

float computeOutVoltage (float V, float new_mA) {if (abs (new_mA -target_mA) maxOutV) {state = -1; // odolávať mnohým -> starať sa o to? vrátiť maxOutV; // návrat maxOutV/5.0; // para segurança} stav = 0; návrat 0,1*nový_V+0,9*V; // návrat new_V; }

intvertVtoOutputValue (float V) {

spätné obmedzenie (int (V/maxOutV*255), 0, 255); }

float sensorValue2mA (int sensorValue) {

plavákový senzorVoltage = sensorValue/1023,0*maxRefInV; plavákový senzor_mA = senzorVoltage/R*1000,0; snímač návratu_mA; }

int debounced_state_compute (int stav) {

if (state 5) return 0; } vrátiť 1; }

nepodpísaný dlhý štart, endc;

void process_feedback () {int sensorValue = analogRead (analogInPin); float new_mA = sensorValue2mA (sensorValue); vyhladený_mA = 0,2*nový_mA+0,8*vyhladený_mA; plavák V = outV; outV = computeOutVoltage (V, new_mA); analogWrite (analogOutPin, convertVtoOutputValue (outV)); debounced_state = debounced_state_compute (štát); // Informácie o exibire nie sú CLI endc = (millis ()-start)/1000; Reťazec tv = "[", ttm = "mA/", tsm = "V,", ts = "mA] | Estado:", h = "| Tempo:", s = ":", leadM = "", leadS = "", plotT = "Cieľ:", plotmA = "\ tHladené MA:", plotMin = "\ tMin:", tempo; bez znamienka dlhé tmin = endc/60-((endc/60)%1); // Formatação if (endc%60 <10) leadS = "0"; ak (tmin = 0) ts = ts + " +"; // Parar automaticamente if (tmin> maxmin) stop_device (); Reťazec txt; if (plotter) txt = plotT + target_mA + plotMin + "0" + plotmA + smoothed_mA; inak txt = tv + V + tsm + vyhladený_mA + ttm + cieľový_mA + ts + debounced_state + h + tempo; if (tmel) Serial.print ("\ r / e [? 25l" + txt); else Serial.println (txt);

// počkajte 2 milisekundy pred ďalšou slučkou

// aby sa analógovo-digitálny prevodník usadil // po poslednom čítaní: delay (5); }

neplatné stop_device () {

stav = -10; analogWrite (analogOutPin, 0); clearAndHome (); Serial.println ("Sessão tDCS interrompida"); Serial.println ("------------------------"); Pomoc(); }

// POMOCNÍCI CLI

neplatné clearAndHome () {Serial.write (27); Serial.print ("[2J"); // limpa a tela Serial.write (27); // ESC Serial.print ("[H"); // / r if (! putty) for (int i = 0; i <= 30; i ++) Serial.println (""); }

void help () {

Serial.println ("arduino tDSC, ver"+ver); Serial.println ("'?' - ajuda"); Serial.println ("" max_time " - maximálna rýchlosť (maximálne minúty)"); Serial.println ("'target_mA' - atualiza o target (mA)"); Serial.println ("'epsilon_mA' - atualiza o epsilon_mA (mA)"); Serial.println ("'R' - atualiza a resistência do hardware (Ohm)"); Serial.println ("'putty' - muda a formatação de saída pro PuTTY"); Serial.println ("'stop' - para a odhadulação"); Serial.println ("" reštart " - inicializácia/reinicia a odhadulação & o timer"); Serial.println ("'continue' - continua a odhadulação"); Serial.print ("\ n / rEstado: / n / r * max_time:"); Serial.print (maxmin); Serial.print ("minutos / n / r * target_mA:"); Serial.print (target_mA); Serial.print ("mA / n / r * epsilon_mA:"); Serial.print (epsilon_mA); Serial.print ("mA / n / r * R:"); Serial.print (R); Serial.println ("Ohmy"); }

bool parse_param (String & cmdString) {

int spacePos = cmdString.indexOf (''); if (spacePos <= 0) return false; Reťazcový príkaz = cmdString.substring (0, spacePos); Reťazec fval = cmdString.substring (spacePos+1); if (príkaz == "tmel") if (fval == "true") {putty = true; návrat true; } else if (fval == "false") {putty = false; návrat true; } float val = fval.toFloat (); if (príkaz == "target_mA") {if (val100.0) {return false; } target_mA = val; clearAndHome (); Pomoc(); } else if (príkaz == "epsilon_mA") {if (val0.3) {return false; } epsilon_mA = val; clearAndHome (); Pomoc(); } else if (príkaz == "R") {R = val; clearAndHome (); Pomoc(); } else if (príkaz == "max_time") {maxmin = val; clearAndHome (); Pomoc(); } else {return false; } return true; }

// NASTAVENIE A HLAVNÁ SLUČKA

void setup () {Serial.begin (115200); analogReference (VNÚTORNÝ); //1.1 V Serial.print ("Sessão iniciada!"); štart = milis (); } void loop () {if (state! =-10) {process_feedback (); } if (Serial.available ()> 0) {char v = Serial.read (); if (byte (v) == 13) {// Návrat bool akceptovaný = true; if (commandString == "?" || commandString == "stop") {stop_device (); } else if (commandString == "restart") {clearAndHome (); stav = -1; outV = maxOutV/5,0; štart = milis (); prijatý = nepravda; } else if (commandString == "continue") {clearAndHome (); stav = -1; outV = maxOutV/5,0; prijatý = nepravda; } else {bool ok = parse_param (commandString); if (! ok) {clearAndHome (); Pomoc(); prijatý = nepravda; Serial.println ("Comando desconhecido: '" + commandString + "'"); }} commandString = ""; ak (prijatý) {clearAndHome (); Pomoc(); Serial.println („Ok!“); }} else {commandString+= v; if (state ==-10) {Serial.print (v); }}}}

Krok 4: Personalizácia používateľského rozhrania Uma

Personalizácia používateľského rozhrania Uma
Personalizácia používateľského rozhrania Uma

Ako hlavnú spoločnosť môžete použiť ferramenta PuTTY, ako je uvedené nižšie:

tmel = pravda

Odporúčané definície:

  • Okno

    • 61 Colunas e 20 Linhas
    • Zobraziť desativado posuvníka
  • Okno> Vzhľad

    Písmo: konzola Lucida, 28 pixlov

Krok 5: Dúvidas?

Para abrir a guia de ajuda, digite:

?

Stlačte tlačidlo [ENTER]

OBS: Caso o Estado seja:

-1 -> Identifikačné číslo (corrente aberta) +0 -> Ajustando voltagem+1 -> Tudo certo, tDCS funcionando

Odporúča: