সুচিপত্র:
- ধাপ 1: সাইবা মাইস
- পদক্ষেপ 2: মন্টে হে সার্কিটো অ্যাবাইক্সো
- ধাপ 3: ইনস্টল করুন O Código No Seu Arduino
- ধাপ 4: উমা ইউআই ব্যক্তিগতকরণ
- ধাপ 5: ডেভিডাস?
ভিডিও: Arduino TDCS সুপার সিম্পলস। ট্রান্সক্রানিয়াল ডাইরেক্ট কারেন্ট স্টিমুলেটর (টিডিসিএস) DIY: 5 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
Para fazer este tDCS você precisará apenas de um arduino, resistor, capacitor e alguns cabos কম্পোনেন্টস
-
আরডুইনো
- Pino D13 como saída PWM (pode ser alterado)।
- Pino A0 como entrada analógica (para feedback de corrente)।
- পিনো GND apenas para GND।
- প্রতিরোধক (~ 470 Ω, mas provavelmente entre 300-1000 Ω funciona, você precisará alterar no código fonte)
- ক্যাপাসিটর (220 μF)। PWST এর জন্য পরিবেশন করুন।
- Eletrodos de Esponja (á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 serial CLI (Console)।
ধাপ 1: সাইবা মাইস
Você deve ler mais sobre tDCS primeiro। Não é aprovado pelo FDA e pode ser prejudicial a sua saúde, Principmente se você não sabe nada sobre os efeitos colaterais, precauções e dentre outros…
পদক্ষেপ 2: মন্টে হে সার্কিটো অ্যাবাইক্সো
Não se esqueça das esponjas com água salina!
ধাপ 3: ইনস্টল করুন O Código No Seu Arduino
Lembre-se de alterar as configurações e parametros na área de HARDWARE PARAMS e CONFIGURABLE PARAMS।
Você também deve alterar o boud rate do Serial para: 115200 para poder ver o resultado।
প্যারা এক্সিকিউটার কম্যান্ডোস, ট্রোক ও নো লাইন এন্ডিং প্যারা ক্যারেজ রিটার্ন।
O código fonte + tutorial também podem ser encontrados no repositório:
ক্যাডিগো:
const স্ট্রিং ver = "2.0m"; // হার্ডওয়্যার পারম কনস্ট int analogInPin = A0; // Entrada do Analógico const int analogOutPin = 13; // সাইদা ডি 13 পাদ্রিও ফ্লোট maxOutV = 5.0; // A voltagem de saída PWM padrão do Arduino [V] float maxRefInV = 1.1; // রেফারেন্সিয়া à ভোল্টেজম অ্যানালজিক [ভি] ফ্লোট R = 470.0; // রেসিস্টেন্সিয়া দা কোরেন্টে [ওহম]
// কনফিগারযোগ্য প্যারাম
বুল প্লটার = মিথ্যা; // Defina: true, caso esteja usando o সিরিয়াল প্লটার বুল পুটি = মিথ্যা; // Defina: true, caso esteja usando o PuTTT (pode ser alterado no CLI) int maxmin = 30; // Tempo (em minutos) essentialário para desligar [Min] float target_mA = 2.73; // Essa é a corrente que passará pelo seu cérebro !!! [mA] ফ্লোট 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 গ্লোবাল
int অবস্থা = 1; /* -1 - Cbrebro não identificado 0 - Voltagem sendo alterada para definir a corrente padrão 1 - Tudo certo। Você esta na corrente definida -10 - Voltagem desligada */ float outV = maxOutV; // ভোল্টেজ int debounce_state = 0; int zeros_len = 0; ভাসমান smoothed_mA = 0;
Command commandString = ""; // CLI এর জন্য
// মতামত সাহায্যকারী
float computeOutVoltage (float V, float new_mA) {if (abs (new_mA -target_mA) maxOutV) {state = -1; // resistência muito alta -> cérebro não encontrado? maxOutV ফেরত; // রিটার্ন maxOutV/5.0; // para segurança} state = 0; রিটার্ন 0.1*new_V+0.9*V; // নতুন_ভি ফিরে; }
int convertVtoOutputValue (ভাসা V) {
রিটার্ন সীমাবদ্ধতা (int (V/maxOutV*255), 0, 255); }
ভাসমান সেন্সরভ্যালু 2 এমএ (int sensorValue) {
ফ্লোট সেন্সরভোল্টেজ = সেন্সরভ্যালু/1023.0*maxRefInV; float sensor_mA = sensorVoltage/R*1000.0; রিটার্ন সেন্সর_এমএ; }
int debounce_state_compute (int state) {
যদি (রাষ্ট্র 5) 0 ফেরত; } ফেরত 1; }
স্বাক্ষরবিহীন দীর্ঘ শুরু, শেষ;
void process_feedback () {int sensorValue = analogRead (analogInPin); ভাসা new_mA = sensorValue2mA (sensorValue); smoothed_mA = 0.2*new_mA+0.8*smoothed_mA; ভাসা V = outV; outV = computeOutVoltage (V, new_mA); analogWrite (analogOutPin, convertVtoOutputValue (outV)); debounce_state = debounce_state_compute (রাষ্ট্র); // Exibir informações no CLI endc = (millis ()-start)/1000; স্ট্রিং tv = "[", ttm = "mA/", tsm = "V,", ts = "mA] | Estado:", h = "| Tempo:", s = ":", leadM = "", leadS = "", plotT = "Target:", plotmA = "\ tSmoothed MA:", plotMin = "\ tMin:", টেম্পো; স্বাক্ষরবিহীন দীর্ঘ tmin = endc/60-((endc/60)%1); // Formatação if (endc%60 <10) leadS = "0"; যদি (tmin = 0) ts = ts + " +"; // Parar automaticamente if (tmin> maxmin) stop_device (); স্ট্রিং txt; যদি (চক্রান্তকারী) txt = plotT + target_mA + plotMin + "0" + plotmA + smoothed_mA; অন্যথায় txt = tv + V + tsm + smoothed_mA + ttm + target_mA + ts + debounce_state + h + tempo; যদি (পুটি) Serial.print ("\ r / e [? 25l" + txt); অন্য সিরিয়াল.প্রিন্টলন (txt);
// পরবর্তী লুপের আগে 2 মিলিসেকেন্ড অপেক্ষা করুন
// এনালগ-টু-ডিজিটাল কনভার্টার স্থির করার জন্য // শেষ পড়ার পরে: বিলম্ব (5); }
অকার্যকর stop_device () {
অবস্থা = -10; analogWrite (analogOutPin, 0); clearAndHome (); Serial.println ("Sessão tDCS interrompida"); Serial.println ("------------------------"); সাহায্য (); }
// CLI সাহায্যকারী
অকার্যকর clearAndHome () {Serial.write (27); সিরিয়াল.প্রিন্ট ("[2J"); // limpa a tela Serial.write (27); // ESC Serial.print ("[H"); // / r যদি (! putty) জন্য (int i = 0; i <= 30; i ++) Serial.println (""); }
অকার্যকর সাহায্য () {
Serial.println ("tDSC arduino, ver"+ver); Serial.println ("'?' - আজুদা"); Serial.println ("'max_time' - atualiza o tempo máximo (em minutos)"); 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 estimulação"); Serial.println ("'restart' - inicia/reinicia a estimulação & o timer"); Serial.println ("'continue' - continuea a estimulaçã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:"); সিরিয়াল.প্রিন্ট (epsilon_mA); Serial.print ("mA / n / r * R:"); সিরিয়াল.প্রিন্ট (আর); Serial.println ("Ohms"); }
bool parse_param (String & cmdString) {
int spacePos = cmdString.indexOf (''); যদি (spacePos <= 0) মিথ্যা ফেরত দেয়; স্ট্রিং কমান্ড = cmdString.substring (0, spacePos); স্ট্রিং fval = cmdString.substring (spacePos+1); if (command == "putty") if (fval == "true") {putty = true; সত্য ফিরে; } অন্যথায় যদি (fval == "মিথ্যা") {putty = false; সত্য ফিরে; } float val = fval.toFloat (); if (command == "target_mA") {if (val100.0) {return false; } target_mA = val; clearAndHome (); সাহায্য (); } অন্যথায় if (command == "epsilon_mA") {if (val0.3) {return false; } epsilon_mA = val; clearAndHome (); সাহায্য (); } অন্যথায় যদি (কমান্ড == "R") {R = val; clearAndHome (); সাহায্য (); } অন্যথায় যদি (কমান্ড == "max_time") {maxmin = val; clearAndHome (); সাহায্য (); } অন্যথায় {মিথ্যা প্রত্যাবর্তন; } সত্য ফিরে; }
// সেটআপ এবং মেইন লুপ
অকার্যকর সেটআপ () {Serial.begin (115200); analogReference (অভ্যন্তরীণ); //1.1 V Serial.print ("Sessão iniciada!"); শুরু = মিলিস (); } void loop () {if (state! =-10) {process_feedback (); } যদি (Serial.available ()> 0) {char v = Serial.read (); যদি (বাইট (v) == 13) {// ক্যারেজ রিটার্ন বুল গৃহীত = সত্য; if (commandString == "?" || commandString == "stop") {stop_device (); } অন্যথায় যদি (commandString == "restart") {clearAndHome (); অবস্থা = -1; outV = maxOutV/5.0; শুরু = মিলিস (); গৃহীত = মিথ্যা; } অন্যথায় যদি (commandString == "continue") {clearAndHome (); অবস্থা = -1; outV = maxOutV/5.0; গৃহীত = মিথ্যা; } অন্যথায় {bool ok = parse_param (commandString); যদি (! ঠিক আছে) {clearAndHome (); সাহায্য (); গৃহীত = মিথ্যা; Serial.println ("Comando desconhecido: '" + commandString + "'"); }} commandString = ""; যদি (গৃহীত) {clearAndHome (); সাহায্য (); Serial.println ("ঠিক আছে!"); }} অন্য {commandString+= v; যদি (state ==-10) {Serial.print (v); }}}}
ধাপ 4: উমা ইউআই ব্যক্তিগতকরণ
Para melhor acompanhamento e segurança, a ferramenta PuTTY, e defina no código fonte:
পুটি = সত্য
Recomendações de definições:
-
জানলা
- 61 কলুনাস ই 20 লিনহাস
- স্ক্রলবার desativado প্রদর্শন করুন
-
জানালা> চেহারা
Fonte: Lucida Console, 28px
ধাপ 5: ডেভিডাস?
Para abrir a guia de ajuda, digite:
?
ই প্রেসিওন [ENTER]
OBS: ক্যাসো ও এস্তাদো সেজা:
-1 -> Cérebro não identificado (corrente aberta) +0 -> Ajustando voltagem+1 -> Tudo certo, tDCS funcionando
প্রস্তাবিত:
DIY - সুপার সস্তা এবং সুপার কুল আর্ক রিঅ্যাক্টর: 8 টি ধাপ (ছবি সহ)
DIY - সুপার সস্তা এবং সুপার কুল আর্ক রিঅ্যাক্টর: এই নির্দেশে আমি আপনাকে দেখাব কিভাবে আপনি বাসায় অত্যন্ত সস্তা আর্ক রিঅ্যাক্টর তৈরি করতে পারেন। LED আমার খরচ 2.5 INR এবং আমি 25 ব্যবহার করেছি তাই মোট খরচ 1 এর কম
একটি মানব উন্নতি ডিভাইস তৈরি করুন (বেসিক টিডিসিএস সরবরাহ): 3 টি ধাপ
একটি মানব উন্নতি ডিভাইস তৈরি করুন (বেসিক টিডিসিএস সরবরাহ): এই নির্দেশযোগ্য একটি সম্মানিত উৎস (পিডিএফ লিঙ্ক) দ্বারা উদ্ধৃত হয়েছে! কাগজে উদ্ধৃতি #10 " নিউরোহেনসমেন্টের জন্য নতুন সরঞ্জাম - নিউরোইথিক্স সম্পর্কে কি? " (এইচটিএমএল লিঙ্ক) ক্রোয়েট মেড জে। 57 (4): 392 - 394। doi: 10.3325/cmj.2016.57.392
কিভাবে LED দিয়ে সুপার ব্রাইট ফ্ল্যাশ লাইট তৈরি করবেন - DIY: সুপার ব্রাইট লাইট: 11 টি ধাপ
কিভাবে LED দিয়ে সুপার ব্রাইট ফ্ল্যাশ লাইট তৈরি করবেন - DIY: সুপার ব্রাইট লাইট: প্রথমে ভিডিওটি দেখুন
সুপার পোর্টেবল, সুপার লাউড, দীর্ঘস্থায়ী, ব্যাটারি চালিত স্পিকার: 9 টি ধাপ (ছবি সহ)
সুপার পোর্টেবল, সুপার লাউড, লং লাস্টিং, ব্যাটারি চালিত স্পিকার: কখনোই চেয়েছিলেন যারা প্রগতিশীল গার্ডেন পার্টি/ফিল্ড রেভসের জন্য একটি শক্তিশালী স্পিকার সিস্টেম আছে। অনেকেই বলবেন এটি একটি অপ্রয়োজনীয় নির্দেশযোগ্য, কারণ সস্তাভাবে পাওয়া যায় এমন অনেক বুমবক্স স্টাইলের রেডিও আছে, অথবা এই সস্তা আইপড স্টাইল mp3 d
সুপার ইজি এবং সুপার কম ম্যাগনেটো স্ক্র্যাচার !: 3 ধাপ
সুপার ইজি এবং সুপার কম ম্যাগনেটো স্ক্র্যাচার !: " ম্যাগনারো স্ক্র্যাচার " এমন একটি যন্ত্র যা শুধুমাত্র " আঁচড়ানোর " চৌম্বকীয় উপকরণ যেমন অডিও টেপ, ভিডিও টেপ, ক্রেডিট কার্ড, চুম্বকীয় ডিস্ক ইত্যাদি … এখানে একটি তৈরির একটি সহজ উপায়। সোল্ডারির দরকার নেই