Obsah:
- Krok 1: Saiba Mais
- Krok 2: Okruh Monte O Abaixo
- Krok 3: Nainštalujte O Código No Seu Arduino
- Krok 4: Personalizácia používateľského rozhrania Uma
- Krok 5: Dúvidas?
Video: Arduino TDCS Super Simples. Transkraniálny stimulátor jednosmerného prúdu (tDCS): 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Para fazer este tDCS você precisará apenas de um arduino, resistor, kondenzator e alguns cabosComponentes
-
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.
- Rezistor (~ 470 Ω, s celkovým výkonom 300-1 000 Ω, rôzna presnosť striedania)
- Kondenzátor (220 μF). Slúži na zavedenie pulzov do PWM.
- 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
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
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
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:
AC až +15V, -15V 1A variabilný a 5V 1A pevný zdroj jednosmerného prúdu: 8 krokov
AC až +15V, -15V 1A variabilný a 5V 1A pevný stojan DC napájací zdroj: Napájací zdroj je elektrické zariadenie, ktoré dodáva elektrickú energiu elektrickému zaťaženiu. Tento model napájania je vybavený tromi polovodičovými zdrojmi jednosmerného prúdu. Prvá dodávka poskytuje variabilný výkon kladných 1,5 až 15 voltov až do 1 ampéra.
Samostatne vzrušujte alternátor bez generátora jednosmerného prúdu, kondenzátorovej banky alebo batérie: 5 krokov (s obrázkami)
Self Excite alternátor bez akéhokoľvek generátora jednosmerného prúdu, kondenzátorovej banky alebo batérie: Ahoj! Tento návod je určený na konverziu alternátora budeného z poľa na samobudený. Výhodou tohto triku je, že pole tohto poľa nebudete musieť napájať. alternátor s 12 voltovou batériou, ale namiesto toho sa sám zapne, aby ste
Malý zdroj jednosmerného prúdu: 5 krokov
Malý zdroj jednosmerného prúdu: Asi sa toho už urobilo dosť, ale myslím si, že je to tak užitočné, že sa chystám urobiť aj ja. Tento návod prejde základnými krokmi vytvorenia vlastného malého napájacieho zdroja, podobne ako „nástenné bradavice“v prípade, že potrebujete
Premeňte zdroj ATX na bežný zdroj jednosmerného prúdu!: 9 krokov (s obrázkami)
Premeňte zdroj ATX na bežný zdroj jednosmerného prúdu !: Napájanie jednosmerným prúdom môže byť ťažké nájsť a drahé. S funkciami, ktoré sú viac -menej zasiahnuté alebo vynechané pre to, čo potrebujete. V tomto návode vám ukážem, ako previesť napájanie počítača na bežný zdroj jednosmerného prúdu s 12, 5 a 3,3 v
Vylepšený jednoduchý nastaviteľný zdroj jednosmerného prúdu: 5 krokov
Vylepšený jednoduchý nastaviteľný zdroj jednosmerného prúdu: Prebieha: Prebieha ďalší text, ktorý vysvetľuje, ako táto vec skutočne funguje, a schematický obrázok v najbližších dňoch. Existuje už niekoľko inštrukcií o použití čipov lineárneho regulátora napätia na napájanie nízkeho napätia experimenty a projekty.