
Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40

Para fazer este tDCS você precisará apenas de um arduino, resistor, kondensaator ja alguns cabosComponentes
-
Arduino
- Pino D13 on PWM (pode ser alterado).
- Pino A0 como entrada analógica (para feedback de corrente).
- Pino GND apenas para GND.
- Takisti (~ 470 Ω, massiivne sissepääs 300-1000 Ω funktsionaalsus, hääletäpsus alternatiivselt ilma koodita)
- Kondensaator (220 μF). Serveeri PWM -i jaoks pulsos.
- Eletrodos de Esponja (kasutage á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. Você também pode alterar o valor do target_mA pelo seeria CLI (konsool).
1. samm: Saiba Mais

Você deve ler mais sobre tDCS primeiro. Não é aprovado pelo FDA e pode ser eelarvamus a sua saúde, principmente se você não sabe nada sobre os efeitos colaterais, prepuações e dentre outros…
2. samm: Monte O Circuito Abaixo

Não se esqueça das esponjas com água salina!
3. samm: installige O Código No Seu Arduino
Lembre-se de alterar as configuraçõeses and parametros na área de RIISTVARA PARAAMID e KONFIGUREERITAVAD PARAMMID.
Você também deve alterar või boud rate do Serial para: 115200 para poder ver o resultado.
Täitekomandod, troque o No Line Ending para Carriage Return.
O código fonte + õpetus também podem ser encontrados no repositório:
Código:
const String ver = "2.0m"; // RIISTVARAAMID const int analogInPin = A0; // Entrada do Analógico const int analogOutPin = 13; // Saida D13 padrão float maxOutV = 5.0; // A Voltagem de saída PWM padrão do Arduino [V] float maxRefInV = 1.1; // Viide pingele analüütiline [V] ujuk R = 470,0; // Resistencia da corrente [Ohm]
// KONFIGUREERITAVAD PARAMMID
bool plotter = vale; // 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 (em minutos) requiredário para desligar [Min] float target_mA = 2,73; // Essa é a corrente que passará pelo seu cérebro !!! [mA] ujuk epsilon_mA = 0,03; // Diferença máxima entre a corrente real e o target_mA (Não altere caso não saiba o que está fazendo!)
// INIT GLOBALS
int olek = 1; /* -1 - Cérebro não identifikaator 0 - Voltagem sendo alterada para definir a corrente padrão 1 - Tudo certo. Você esta na corrente definida -10 - Voltagem desligada */ float outV = maxOutV; // Voltagem int debounced_state = 0; int null_len = 0; ujuk silutud_mA = 0;
String käskString = ""; // CLI jaoks
// TAGASISIDE AITAB
float computeOutVoltage (float V, float new_mA) {if (abs (new_mA -target_mA) maxOutV) {olek = -1; // resistência muito alta -> cérebro não encontrado? return maxOutV; // tagasta maxOutV/5.0; // para segurança} olek = 0; tagasi 0,1*uus_V+0,9*V; // return new_V; }
int convertVtoOutputValue (float V) {
tagasipiirang (int (V/maxOutV*255), 0, 255); }
float sensorValue2mA (int sensorValue) {
float sensorVoltage = sensorValue/1023.0*maxRefInV; ujukandur_mA = sensorVoltage/R*1000,0; tagasivooluandur_mA; }
int debounced_state_compute (int olek) {
kui (olek 5) tagastab 0; } tagasipöördumine 1; }
allkirjata pikk algus, endc;
void process_feedback () {int sensorValue = analogRead (analogInPin); float new_mA = sensorValue2mA (sensorValue); silutud_mA = 0,2*uus_mA+0,8*silutud_mA; ujuk V = väljaV; outV = computeOutVoltage (V, uus_mA); analogWrite (analogOutPin, convertVtoOutputValue (outV)); debounced_state = debounced_state_compute (olek); // Exibir informationções no CLI endc = (millis ()-algus)/1000; String tv = "[", ttm = "mA/", tsm = "V", ts = "mA] | Estado:", h = "| Tempo:", s = ":", leadM = "", leadS = "", plotT = "Target:", plotmA = "\ tSmoothed MA:", plotMin = "\ tMin:", tempo; allkirjata pikk tmin = endc/60-((endc/60)%1); // Formaat if (endc%60 <10) leadS = "0"; kui (tmin = 0) ts = ts + " +"; // Parar automaticamente if (tmin> maxmin) stop_device (); String txt; if (plotter) txt = plotT + target_mA + plotMin + "0" + plotmA + silutud_mA; else txt = tv + V + tsm + silutud_mA + ttm + target_mA + ts + debounced_state + h + tempo; if (kitt) Serial.print ("\ r / e [? 25l" + txt); muu Serial.println (txt);
// oodake 2 millisekundit enne järgmist tsüklit
// analoog-digitaalmuundurile settimiseks // pärast viimast lugemist: delay (5); }
void stop_device () {
olek = -10; analogWrite (analogOutPin, 0); clearAndHome (); Serial.println ("Sessão tDCS interrompida"); Serial.println ("------------------------"); abi (); }
// CLI AITAB
void clearAndHome () {Serial.write (27); Seeria.print ("[2J" "); // limpa a tela Serial.write (27); // ESC Serial.print ("[H"); // kui (! kitt) jaoks (int i = 0; i <= 30; i ++) Serial.println (""); }
tühine abi () {
Serial.println ("tDSC arduino, ver"+ver); Serial.println ("'?' - ajuda"); Serial.println ("'max_time' - atualiza või tempo máximo (em minutos)"); Serial.println ("'target_mA' - eesmärk või sihtmärk (mA)"); Serial.println ("'epsilon_mA' - teostus või epsilon_mA (mA)"); Serial.println ("'R' - riistvara vastastikune vastupidavus (Ohm)"); Serial.println ("'kitt' - muda a formatação de saída pro PuTTY"); Serial.println ("'stop' - para a aprēķin"); Serial.println ("'restart' - inicia/reinicia a appreulação & o timer"); Serial.println ("'jätka' - Continua a Estimulação"); Serial.print ("\ n / rEstado: / n / r * max_time:"); Serial.print (maxmin); Serial.print ("minutid / 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:"); Seeriaprint (R); Serial.println ("oomid"); }
bool parse_param (String & cmdString) {
int spacePos = cmdString.indexOf (''); if (spacePos <= 0) return false; String käsk = cmdString.substring (0, spacePos); String fval = cmdString.substring (tühikPos+1); if (käsk == "kitt") if (fval == "true") {putty = true; tagastama tõene; } else if (fval == "false") {putty = false; tagastama tõene; } float val = fval.toFloat (); if (käsk == "target_mA") {if (val100.0) {return false; } target_mA = val; clearAndHome (); abi (); } else if (käsk == "epsilon_mA") {if (val0.3) {return false; } epsilon_mA = val; clearAndHome (); abi (); } else if (käsk == "R") {R = val; clearAndHome (); abi (); } else if (käsk == "max_time") {maxmin = val; clearAndHome (); abi (); } else {return false; } return true; }
// SEADISTAMINE JA PÕHISILM
void setup () {Serial.begin (115200); analogReference (INTERNAL); //1.1 V Serial.print ("Sessão iniciada!"); algus = millis (); } void loop () {if (state! =-10) {process_feedback (); } kui (Serial.available ()> 0) {char v = Serial.read (); if (bait (v) == 13) {// Vedu tagastamise bool aktsepteeritud = true; if (commandString == "?" || commandString == "stop") {stop_seade (); } else if (commandString == "restart") {clearAndHome (); olek = -1; outV = maxOutV/5,0; algus = millis (); aktsepteeritud = vale; } else if (commandString == "jatka") {clearAndHome (); olek = -1; outV = maxOutV/5,0; aktsepteeritud = vale; } else {bool ok = pars_param (commandString); if (! ok) {clearAndHome (); abi (); aktsepteeritud = vale; Serial.println ("Comando desconhecido: '" + commandString + "'"); }} commandString = ""; kui (aktsepteeritud) {clearAndHome (); abi (); Serial.println ("Ok!"); }} else {commandString+= v; if (olek ==-10) {Serial.print (v); }}}}
Samm 4: Uma kasutajaliidese isikupärastamine

Kui soovite meloodiat kaaslaseks ja segransaks, kasutage PuTTY ferramenta, ja see ei tähenda:
kitt = tõsi
Määratluste soovitused:
-
Aken
- 61 Colunas e 20 Linhas
- Kuva kerimisriba desativado
-
Aken> Välimus
Fonte: Lucida Console, 28 pikslit
5. samm: Dúvidas?
Para abrir a guia de ajuda, digite:
?
ja vajutage [ENTER]
OBS: Caso või Estado seja:
-1 -> Cérebro não identifikaator (corrente aberta) +0 -> Ajustando pingem+1 -> Tudo certo, tDCS funcionando
Soovitan:
Lihtne alalisvoolu - alalisvoolu võimendusmuundur, kasutades 555: 4 sammu

Lihtne alalisvoolu - alalisvoolu võimendusmuundur 555 abil: vooluahelas on sageli kasulik kasutada kõrgemat pinget. Kas anda võimendile +ve ja -ve rööpad, kasutada sumisejaid või isegi relee ilma lisaakuta. See on lihtne 5V kuni 12V alalisvoolu muundur, mis on ehitatud 555 taimeriga a
Diy DC alalisvoolu mõõtmise moodul Arduino jaoks: 8 sammu

Diy Dc võimsuse mõõtmise moodul Arduino jaoks: Selles projektis näeme, kuidas teha alalisvoolu võimsuse mõõtmise moodul Arduino abil
DIY AC/ DC Hack "Mod" RD6006 toiteallikas ja S06A ümbris W/ S-400-60 PSU Ehitus ja täiendatud alalisvoolu sisend: 9 sammu

DIY AC/ DC Hack "Mod" RD6006 toiteallikas ja S06A ümbris W/ S-400-60 PSU Ehitus ja täiendatud alalisvoolu sisend: see projekt on rohkem põhiline RD6006 ehitis, kasutades S06A korpust ja S-400-60 toiteallikat . Kuid ma tõesti tahan valida, kas ühendada aku kaasaskantavuse või elektrikatkestuse jaoks. Nii et ma häkkisin või muutsin ka juhtumit, et see võtaks vastu alalisvoolu või aku
DC to DC Buck Converter DIY -- Kuidas alalisvoolu pinget hõlpsalt vähendada: 3 sammu

DC to DC Buck Converter DIY || Kuidas alalisvoolu pinget hõlpsalt alandada: Buck-muundur (alandusmuundur) on alalisvoolu-alalisvoolu muundur, mis vähendab pinget (suurendades samal ajal voolu) sisendist (toide) väljundisse (koormus). See on lülitusrežiimi toiteallika (SMPS) klass, mis tavaliselt sisaldab vähemalt
Odavad lihtsad DIY Bluetooth -kõrvaklapid: 3 sammu

Odavad lihtsad DIY Bluetooth -kõrvaklapid: see pole kaugeltki eelnev ehitus, igaüks saab seda lihtsat projekti teha. See ei ole mõeldud püsivaks Bluetooth -kõrvaklappide komplektiks, vaid ajutiseks. Materjalide maksumus sõltub sellest, kust te need hankite, kuid minu jaoks oli Bluetooth -vastuvõtja vähe