স্মৃতিশক্তি সহ খুব কম ওজন কম লো মাইক্রোকন্ট্রোলার?


9

আমি আরডুইনো ব্যবহার করে বেশ কয়েকটি প্রকল্প তৈরি করেছি। একটি নতুন প্রকল্পের জন্য আমি ত্বকের পৃষ্ঠের তাপমাত্রা বনাম সময় (খুব সম্ভবত প্রতিদিন কয়েকবার) লগ করতে চাইছি এবং সম্ভবত ভোল্টেজের মতো আরও সহজে তথ্য প্রাপ্ত করতে চাই।

আমাকে যতটা সম্ভব ছোট এবং লাইটওয়েট করা দরকার (যেহেতু এটি একটি ছোট স্তন্যপায়ী স্তরের ত্বকের তাপমাত্রা পরিমাপ করা হবে), যেমন 5 জি এর নীচে, সম্ভব হলে হালকা, ব্যাটারি সহ আদর্শভাবে 3 জি, যাতে এটি 50- এ বিরক্ত না হয় 100g প্রাণী খুব বেশি।

আমি পড়েছি ভোল্টেজ নিয়ন্ত্রক থেকে মুক্তি পেয়ে কম বর্তমান ব্যবহার করতে আরডুইনো প্রো মিনি পরিবর্তন করা সম্ভব? তবে সম্ভবত এটি সম্পূর্ণরূপে পরিবর্তন করা এবং অন্য ধরণের মাইক্রোকন্ট্রোলার প্রোগ্রাম করা শিখার চেয়ে আরও বুদ্ধিমান, যার প্রস্তাব কেউ দিতে পারে? এটি কোনও লাইটওয়েট কয়েন সেল বা অনুরূপ লাইটওয়েট ব্যাটারি থেকে সরাসরি পরিচালনা করা সম্ভব হবে। (আর্দুইনো প্রো মিনিটির জন্য হালকা ওজনের 3.3V ব্যাটারি কীভাবে সন্ধান করতে হবে তা আমি নিশ্চিত নই, আমি অনুমান করি তারা বিদ্যমান আছে তবে আমি এখনও 3V ব্যাটারি খুঁজে পেতে পারি)। যদি তাপমাত্রা প্রতি কয়েক ঘন্টার মধ্যে সংরক্ষণের জন্য এটিতে চালিত মেমরি থাকে যা পরে ডাউনলোড করা যায় যা আদর্শ হবে (যদি কারও স্মৃতিতে সুপারিশ থাকে তবে আমি আগ্রহীও হব)। আমি জানি একটি "আইবুটন" কেনা সম্ভব


... দুঃখিত, আমার আসল প্রশ্নটি: কেউ কি কম উপযুক্ত চালিত লাইটওয়েট মাইক্রোকন্ট্রোলারের পরামর্শ দিতে পারেন, বা আপনি কি মনে করেন আমার আরডুইনো দিয়ে চালিয়ে যাওয়া উচিত এবং তা খাপ খাইয়ে নেওয়ার চেষ্টা করা উচিত? যেকোনো সাহায্য সত্যি - ই প্রশান্সাযোগ্য!
এসএইচ

আপনি 8MHz এ ATmega328 ব্যবহার করতে পারেন, সিরিজের দুটি 1.5V ব্যাটারি সহ চালিত। এরপরে আপনি আরডুইনো লাইব্রেরি এবং আইডিই ব্যবহার চালিয়ে যেতে পারেন।
jfpoil ব্যাখ্যা

@ jfpoil ব্যাখ্যা, 2AA খুব ভারী হবে বলে আমি মনে করি। একটি 2032 3V কয়েন সেল আরও ভাল হতে পারে।
ডেটা হা

2
আপনি এটি কীভাবে প্রোগ্রাম করবেন তার উপর নির্ভর করে কোনও এটিমেগ 328 বা একটি এটিটিনি 84 বা 85 এর খুব হালকা বর্তমান খরচ থাকতে পারে এবং বেশ কিছু সময়ের জন্য লিথিয়াম সিআর2032 সেল দিয়ে কাজ করতে পারে। যাইহোক, একটি সার্কিটের বিদ্যুতের খরচ হ্রাস (এটিমেল বা অন্য কোনও) বরং জটিল হয়ে উঠতে পারে।
jfpoil ব্যাখ্যা

উত্তর:


15

আমি একটি ছোট টর্চ লোকেটার তৈরি করেছি যা একটি বোতাম-সেল (সিআর2032) থেকে চালিত এটিটিইনি 85 ব্যবহার করেছে। দেখে মনে হচ্ছে:

টর্চ লোকেটার

অন্য দিক:

অন্য দিক

এটির ওজন বর্তমানে 5.9g। ব্যাটারি ধারকটির ওজন ১.6 গ্রাম হয় যাতে আপনি আরও হালকা ওজন হোল্ডার (সম্ভবত কিছুটা প্লাস্টিকের ইনসুলেশনের জন্য, এবং সরাসরি ব্যাটারিতে সোল্ডারিং) তৈরি করে এটিকে বাঁচাতে পারেন। চিপ সকেটের ওজন কমপক্ষে 0.5 গ্রাম, যাতে আপনি প্রসেসরের পিনগুলিতে সোল্ডারিং করে সেটিও সঞ্চয় করতে পারেন। সুতরাং আমরা 3.8g এ নেমেছি।

এটিটিনি 85 এর EEPROM এর 512 বাইট রয়েছে যা আপনি রিডিংগুলিতে লগ করতে ব্যবহার করতে পারেন। আপনি যদি ওজন বাঁচানোর চেষ্টা করছেন তবে আমি একটি ঘড়ির বিষয়ে নিশ্চিত নই, তবে আপনি যদি এটি একটি পরিচিত সময়ে শুরু করেন তবে শুরু millis()থেকেই মিলিসেকেন্ডগুলি সন্ধান করার জন্য ফাংশনটি ব্যবহার করে আপনার কাছে সময়ের যুক্তিসঙ্গত অনুমান হতে পারে ।

আমি কিছুক্ষণ আগে আরেকটি তৈরি করেছি যা প্রতি কয়েক সেকেন্ডের মধ্যে একটি এলইডি জ্বলজ্বল করে:

এলইডি ফ্ল্যাশার

একই রকম। প্রসেসরটি সেখানে রয়েছে (চিপ সকেটের নীচে উল্টো দিকে) এবং ব্যাটারিটি নীচে রয়েছে। যার ওজন 6 জি। ব্যাটারি কয়েক বছর স্থায়ী হয়েছে, এবং এটি প্রতি কয়েক সেকেন্ডের মধ্যে একটি এলইডি ফ্ল্যাশ করছে!

এলইডিটির পরিবর্তে তাপমাত্রা পড়তে আপনার কাছে থার্মিস্টর থাকতে পারে।

আপনি প্রতি ঘন্টা কয়েক ঘন্টা পড়তে এবং এটি EEPROM এ সংরক্ষণ করতে প্রোগ্রাম করতে পারেন। তারপরে যখন নির্দেশ দেওয়া হয় (উদাহরণস্বরূপ কয়েক পিনে যোগ দিয়ে) এটি রিডিংগুলিকে অন্য পিনে (সিরিয়াল দিয়ে) আউটপুট করতে পারে।

আপনি এসএমডি (সারফেস মাউন্ট করা) ডিভাইসগুলি ব্যবহার করে এবং সম্ভবত একটি ছোট সার্কিট বোর্ড ব্যবহার করে আপনি আরও ওজন বাঁচাতে পারবেন।


কোড

আমার টর্চ লোকেটারের জন্য কোডটি নীচে। আগ্রহের বিষয়টি এটি বেশিরভাগ সময় ঘুমায়। এছাড়াও এটি ADC স্যাম্পলিংয়ের সময় ঘুমায়। যদিও আমার ক্ষেত্রে আমি একটি এলডিআর (হালকা নির্ভর রোধকারী) পরিমাপ করছি তবে থার্মিস্টর পরিমাপের কোডটি একই রকম হবে। পড়াটিকে তাপমাত্রায় রূপান্তর করতে আপনার শেষে কয়েকটি গণনা করা দরকার।

// ATtiny85 torch detector
// Author: Nick Gammon
// Date: 25 February 2015

// ATMEL ATTINY 25/45/85 / ARDUINO
// Pin 1 is /RESET
//
//                  +-\/-+
// Ain0 (D 5) PB5  1|    |8  Vcc
// Ain3 (D 3) PB3  2|    |7  PB2 (D 2) Ain1 
// Ain2 (D 4) PB4  3|    |6  PB1 (D 1) pwm1
//            GND  4|    |5  PB0 (D 0) pwm0
//                  +----+

/*

  Pin 2 (PB3) <-- LDR (GL5539) --> Pin 7 (PB2) <----> 56 k <----> Gnd

  Pin 5 (PB0) <---- LED ---> 100 R <-----> Gnd

*/


#include <avr/sleep.h>    // Sleep Modes
#include <avr/power.h>    // Power management
#include <avr/wdt.h>      // Watchdog timer

const byte LED = 0;          // pin 5 
const byte LDR_ENABLE = 3;   // pin 2
const byte LDR_READ = 1;     // Ain1 (PB2) pin 7
const int LIGHT_THRESHOLD = 200;  // Flash LED when darker than this

 // when ADC completed, take an interrupt 
EMPTY_INTERRUPT (ADC_vect);

// Take an ADC reading in sleep mode (ADC)
float getReading (byte port)
  {
  power_adc_enable() ;
  ADCSRA = bit (ADEN) | bit (ADIF);  // enable ADC, turn off any pending interrupt

  // set a2d prescale factor to 128
  // 8 MHz / 128 = 62.5 KHz, inside the desired 50-200 KHz range.

  ADCSRA |= bit (ADPS0) | bit (ADPS1) | bit (ADPS2); 

  if (port >= A0)
    port -= A0;

#if defined(__AVR_ATtiny85__)  
  ADMUX = (port & 0x07);  // AVcc   
#else   
  ADMUX = bit (REFS0) | (port & 0x07);  // AVcc   
#endif

  noInterrupts ();
  set_sleep_mode (SLEEP_MODE_ADC);    // sleep during sample
  sleep_enable();  

  // start the conversion
  ADCSRA |= bit (ADSC) | bit (ADIE);
  interrupts ();
  sleep_cpu ();     
  sleep_disable ();

  // reading should be done, but better make sure
  // maybe the timer interrupt fired 

  // ADSC is cleared when the conversion finishes
  while (bit_is_set (ADCSRA, ADSC))
    { }

  byte low  = ADCL;
  byte high = ADCH;

  ADCSRA = 0;  // disable ADC
  power_adc_disable();

  return (high << 8) | low;

  }  // end of getReading

// watchdog interrupt
ISR (WDT_vect) 
{
   wdt_disable();  // disable watchdog
}  // end of WDT_vect

#if defined(__AVR_ATtiny85__)  
  #define watchdogRegister WDTCR
#else
  #define watchdogRegister WDTCSR
#endif

void setup ()
  {
  wdt_reset();  
  pinMode (LED, OUTPUT);
  pinMode (LDR_ENABLE, OUTPUT);
  ADCSRA = 0;            // turn off ADC
  power_all_disable ();  // power off ADC, Timer 0 and 1, serial interface
  }  // end of setup

void loop ()
  {
  // power up the LDR, take a reading
  digitalWrite (LDR_ENABLE, HIGH);
  int value = getReading (LDR_READ);
  // power off the LDR
  digitalWrite (LDR_ENABLE, LOW);

  // if it's dark, flash the LED for 2 mS
  if (value < LIGHT_THRESHOLD)
    {
    power_timer0_enable ();
    delay (1);  // let timer reach a known point
    digitalWrite (LED, HIGH);
    delay (2); 
    digitalWrite (LED, LOW);
    power_timer0_disable ();
    }

  goToSleep ();
  }  // end of loop

void goToSleep ()
  {
  set_sleep_mode (SLEEP_MODE_PWR_DOWN);
  noInterrupts ();       // timed sequence coming up

  // pat the dog
  wdt_reset();  

  // clear various "reset" flags
  MCUSR = 0;     
  // allow changes, disable reset, clear existing interrupt
  watchdogRegister = bit (WDCE) | bit (WDE) | bit (WDIF);
  // set interrupt mode and an interval (WDE must be changed from 1 to 0 here)
  watchdogRegister = bit (WDIE) | bit (WDP2) | bit (WDP1) | bit (WDP0);    // set WDIE, and 2 seconds delay

  sleep_enable ();       // ready to sleep
  interrupts ();         // interrupts are required now
  sleep_cpu ();          // sleep                
  sleep_disable ();      // precaution
  }  // end of goToSleep 

আপনার ঝলকানি নেতৃত্বাধীন "জিনিস" এর জন্য, 555 টাইমার চিপ ব্যবহার করা কি ভাল নয়? আমি কিছুটা বর্জ্যর সাথে এটিটিইনি ব্যবহার করছি।
ডেটা হা

2
আমি কম বিদ্যুৎ খরচ করতে যাচ্ছিলাম। প্রসেসর বেশিরভাগ সময় ঘুমায় এবং তারপরে একটি মিলিসেকেন্ড বা তার জন্য এলইডি ফ্ল্যাশ করে।
নিক গ্যামন

ধন্যবাদ! এটি ব্যবহার করা সম্ভব বলে মনে হচ্ছে, কীভাবে সেট আপ করতে এবং এটি প্রোগ্রাম করা যায় তা শিখতে হবে।
এসএইচ

পুনরায় এলইডিটির পরিবর্তে তাপমাত্রা পড়ার জন্য আপনার কাছে থার্মিস্টর থাকতে পারে ", এটি পরিবর্তে বোর্ডের তাপমাত্রা সংবেদক এডিসি চ্যানেল 15 পড়তে পারে। [তবে এটি অত্যন্ত সংবেদনশীল বা নির্ভুল নয়]]
জেমস ওয়াল্ডবি - jwpat7

আপনার মশাল সন্ধানকারী ডিজাইনের একটি দুর্দান্ত টুকরা এবং আপনি যে বিদ্যুৎ খরচ অনুমান করেছেন তা আরডুনিওর আত্মার "ইঞ্জিনিয়ারের যতটুকু আপনার প্রয়োজন" তত বেশি। পুরো বিষয়টি আমার হৃদয়ের কাকলিকে উষ্ণ করেছে (সে যেখানেই হোক না কেন)।
সিজেএস

8

আমি ব্যক্তিগতভাবে 45/85 এর একটি এ্যাটিনির পরামর্শ দেব। এটি 5 জিপিআইও সহ একটি খুব ছোট এভিআর। আপনি এটি আরডুইনো আইডিই দিয়ে প্রোগ্রাম করতে পারেন এবং আরডুইনোকে আইএসপি হিসাবে ব্যবহার করতে পারেন। আপনি যদি নিজের কাস্টম পিসিবি ডিজাইন করতে পারেন তবে এটিটিইনের একটি এসএমডি সংস্করণ ছোট, কম এবং কমপ্যাক্ট। এটিটিনি ফাংশনটি তৈরি করতে মোট সার্কিটটিও ন্যূনতম।

এখানে চিত্র বর্ণনা লিখুন

এছাড়াও, একটি কম ঘড়ির গতিতে (0-4MHz), আপনি 1.8V এর চেয়ে কম ভোল্টেজ এটিটিনিকে শক্তি দিতে পারেন। আপনি সম্ভবত এটি 1.5V এ চালাতে পারেন, তবে এটি সম্পূর্ণরূপে প্রস্তাবিত নয়। আপনি যদি নিরাপদে থাকতে চান তবে একটি 3 ভি কয়েন সেল ছোট, সমতল এবং এটি সম্ভবত বহু বছর স্থায়ী হতে পারে। এটি অনেকটা ঝুঁকিপূর্ণ লাইপোগুলির সাথে তুলনা করাও একটু সুরক্ষিত, বিশেষত আপনি যদি এমন কোনও প্রাণীর উপরে মাউন্ট করেন যা আপনি সত্যিই নিয়ন্ত্রণ করতে পারবেন না।

এখানে চিত্র বর্ণনা লিখুন

আমি সম্ভব হলে এসএমডি উপাদানগুলিও সুপারিশ করব। এটি সমস্ত উপাদানকে কম করতে দেয় এবং এটি আপনি যে ব্যক্তি / প্রাণীটিকে পর্যবেক্ষণ করছেন তার ত্বক আঘাত বা আঘাত করতে পারে না।


দেখে মনে হচ্ছে আমাদের দুজনেরই একই ধারণা ছিল!
নিক গ্যামন

ধন্যবাদ !! এটি দুর্দান্ত দেখাচ্ছে, সত্যিই সাহায্যের প্রশংসা করুন! আমি প্রথম সার্কিট থেকে কীভাবে মাইক্রোকন্ট্রোলার ইত্যাদি সেট আপ করতে হবে তার বেসিকগুলি শিখতে চেষ্টা করব এবং এটি কাজ করার পরে আপনার পরামর্শ অনুসারে সম্ভবত এসএমডি উপাদানগুলিতে পরিবর্তিত হবে। আমি মনে করি বাস্তবে এটি যথেষ্ট ছোট করার জন্য আমার এটি করা দরকার I
এসএইচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.