এই প্রকল্পের জন্য সঠিক মাইক্রোকন্ট্রোলার নির্বাচন করা হচ্ছে (Arduino ভিত্তিক)

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

আচ্ছা আইডিয়াসটি সহজ, সিরিয়াল তারের উপর আমার কম্পিউটার (বা ইউএসবিটোসিয়ালিয়াল) আমি আমার আড্ডিনো ইউন বোর্ডে কিছু কমান্ড পাঠাবো: এই কমান্ডটি কয়েকটি বিট (আমার নিজের প্রোটোকলে সংজ্ঞায়িত) এর সাথে গঠিত হয়; যাইহোক, আমার Arduino এই কমান্ড পেয়েছে পরে এটি কিছু পদক্ষেপ নিতে হবে, এই মুহুর্তে শুধুমাত্র একটি কর্ম যে একটি যোগাযোগ বাসের সাথে সংযুক্ত অন্যান্য Arduinos একটি শব্দ পাঠাতে হয় (আইটি2C, সিরিয়াল বা টিটিএল কিনা তা নির্ধারণ করার প্রয়োজন)। এই শব্দটি 1000 বিট দ্বারা গঠিত, প্রথম 8 বিটগুলি শুধুমাত্র শিরোনাম (চিপের ঠিকানা ধারণ করে যা তথ্য পাবে) এবং বিশ্রামটি কেবলমাত্র ডেটা (এই শব্দটির প্রকৃত দৈর্ঘ্য সর্বদা 1000 বিটগুলিতে স্থির থাকে)।

So in summary this is what I will do: enter image description here

উদাহরণস্বরূপ, পিসি থেকে, আমি সিরিয়াল তারের উপর কমান্ড পাঠাচ্ছি: 11011011 1010101010011 ...... .01101। এটি অরুডিনো বোর্ডে যায় যা যোগাযোগ বাসে পাঠায় যেখানে অন্যান্য সকল মাইক্রো কন্ট্রোলার সর্বদা বাস শোনে, তারা প্রথম 8 টি বিট পড়বে এবং তাদের নিজের ঠিকানায় তুলনা করবে: যদি এটি মাইক্রো কন্ট্রোলার ঠিকানা (সংরক্ষিত থাকে) একটি পরিবর্তনশীল), এটি মেমরির পরবর্তী বিটগুলি সংরক্ষণ করবে (যদি বিদ্যুৎ বন্ধ থাকে তবে আমার তথ্যগুলি সংরক্ষণ করা দরকার না, তাই এটি একটি অস্থির মেমরি হতে পারে)।

তারপরে মাইক্রো ভবিষ্যতের কমান্ডের অপেক্ষায় থাকবে যা অবশেষে তাকে আউটপুট পিনের উপর ডেটা বিট আউটপুট আউট করতে বলে। সমস্ত মাইক্রো শুধুমাত্র 1000 বিয়োগ 8 বিটগুলির একটি শব্দ সংরক্ষণ করবে, তাই 99২২ বিটগুলির জন্য মেমরি ঠিক করা হয়েছে।

আমি কোন ছোট মাইক্রোকন্ট্রোলার ব্যবহার করতে হবে, কোন যোগাযোগ প্রোটোকল ব্যবহার করতে এবং সফটওয়্যারের সাথে কিছু সমস্যা সিদ্ধান্ত নিতে সমস্যা হচ্ছে। প্রথম মাইক্রো এবং শেষের মাঝের দূরত্বটি 7 মিটার পর্যন্ত হতে পারে বলে মনে হয়, আমি মনে করি যে I2C কোনও উপায় নয়, সিরিয়ালটি দুর্দান্ত হবে কিন্তু এর অর্থ হল প্রতিটি মাইক্রোতে টিটিএল রূপান্তরকারীকে একটি সিরিয়ালের প্রয়োজন হবে (বিবেচনা করুন যে তারা 128 মাইক্রো পর্যন্ত হতে পারে) যাতে প্রকল্পটি আমার বাজেট থেকে বেরিয়ে যেতে পারে, টিটিএল মহান হবে তবে আমি 7 মিটারেরও বেশি সময় ধরে টিএলএলের মাধ্যমে কোনও যোগাযোগের চেষ্টা করিনি, আপনার কি মনে হয়? আমার মনে হয়, একটি ভাল তারের 7 মিটারে এত ভোল্টেজ হ্রাস করবে না, যে গতিতে আমি ব্যবহার করতে চাই তা সর্বোচ্চ 19২00 বিট/এস।

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

enter image description here

এবং আমার চূড়ান্ত প্রশ্ন সফটওয়্যার সম্পর্কে, যখন আমি পিকএক্স ব্যবহার করছিলাম, মাইক্রোকন্ট্রোলারগুলির জন্য একটি খুব সহজ ডেভেলপমেন্ট কিট যখন আমাকে একটি সিরিয়াল ইনপুটের উপর একটি শব্দ সঞ্চয় করতে হবে আমি এইটি তৈরি করব:

serin serpin,N2400,(27),seraddr, b4,b5 

সিরিয়াল অধিগ্রহণ শুরু করার কমান্ড serin , serpin আমি ব্যবহার করতে চাই ইনপুট পিনের সংখ্যা এবং b4 এবং b5 চারটি বিট ভেরিয়েবল তাই তারা দুই ব্যবহার করে আমি একটি 8 বিট শব্দ আছে। পিকএক্সে প্ল্যাটফর্মটি 10 ​​4 বিট ওয়ারস (বি0, বি 1 ...... .b9) এর সাথে সংশোধন করা হয়েছে যাতে বহিরাগত মেমরির তথ্যটি পাস না করে 1000 বিট শব্দ সংরক্ষণ করা অসম্ভব। Attiny সঙ্গে আমি প্রোগ্রাম var যে পরিমাণ তথ্য সংরক্ষণ করতে পারেন? আমি সর্বোচ্চ সঞ্চয় করতে পারেন কি? বিন্দুতে কি এখনও আপনি মনে করেন যে এ্যাটিনিটি যাওয়ার উপায়?

কোন মতামত এবং পরামর্শ জন্য অনেক ধন্যবাদ!

3
"সমস্ত মাইক্রো শুধুমাত্র 1000 বিয়োগ 8 বিটগুলির একটি শব্দ সংরক্ষণ করবে, তাই 99২২ বিটগুলির জন্য মেমরি ঠিক করা হয়েছে।" আপনি 992 বিট (1000-8) মানে?
যোগ লেখক kender, উৎস
মাইক্রোকন্ট্রোলার প্রতি কয়েক লাইন; অনেক তথ্য; "দীর্ঘ" দূরত্ব -> IMHO UART যেতে উপায়
যোগ লেখক clabacchio, উৎস

4 উত্তর

আপনি ইতিমধ্যে একটি Arduino ব্যবহার করার পরিকল্পনা করছেন, কেন Arduino এর লাঠি না? অথবা নিজেকে একটি AVR প্রোগ্রামার পেতে এবং বেয়ার ATMega328 চিপ ব্যবহার করুন।

যোগাযোগের জন্য: RS485 একটি খুব নির্ভরযোগ্য বাস, এবং ট্রান্সসিভার চিপস সস্তা। এমনকি কম খরচের জন্য আপনি একটি টিটিএল-লেভেল সিগন্যাল পাঠাতে পারেন এবং প্রতিটি নোডে এটি পুনরায় তৈরি করতে পারেন

3
যোগ
ভাল উত্তর, কিন্তু অতিরিক্ত প্রোগ্রামারের কোন প্রয়োজন নেই, এআরডিনসগুলি এভিআর চিপস প্রোগ্রামে ব্যবহার করা যেতে পারে: arduino.cc/এন/টিউটোরিয়াল/ArduinoISP :)
যোগ লেখক Trygve Laugstøl, উৎস

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

1
যোগ

সবচেয়ে ছোট মাইক্রোকন্ট্রোলার আপনি প্রয়োজন কি করতে সক্ষম হবে। আপনি এমনকি Arduino "মোড়ক" খিঁচুনি এবং তার জায়গায় একটি ইউএসবি সক্ষম মাইক্রো ব্যবহার করতে পারে।

মাইক্রোচিপ, এটেল, টিআই, এসটি, ইত্যাদিগুলির মধ্যে 8, 16, 32 বিট ইউসি বিভিন্ন RAM/FLASH/EEPROM মাপ থেকে বাছাই করা আছে। সমস্ত আধুনিক ইউসি অন্তত UART, SPI, I2C পেরিফেরালগুলি সহ আসে যা আপনার যোগাযোগের জন্য ব্যবহার করা যেতে পারে।
তাদের মধ্যে অনেক কিছুই নেই, আমি কেবল একটি পছন্দ করব এবং দেখতে পাব কিভাবে আপনি এটি পছন্দ করেন।
আমি (বর্তমানে) এসটি এর 32-বিট এআরএম এবং মাইক্রোচিপ 8, 16, 32-বিট পিআইসি ব্যবহার করি।
আমি সম্ভবত ক্রীতদাসদের জন্য একটি PIC12F বা 16Fs এবং একটি PIC18F বা PIC24F মাস্টারের জন্য ব্যবহার করব।

আপনি ~ 10kbits মেমরির প্রয়োজন উল্লেখ করেছেন (তবে আপনার বিবরণ থেকে কী ধরনের টাইপ বা আপনার এটির প্রয়োজন তা আমার কাছে পরিষ্কার নয়)
যদিও এটি উপযুক্ত কিনা তা নির্ধারণ করা সহজ, তবে আপনার প্রতিটি ইউসি এর RAM/ROM/EEPROM স্পেসগুলি দেখুন।
উদাহরণস্বরূপ PIC16F1938 আছে:

 Parameter Name          Value
 Program Memory Type     Flash
 Program Memory (KB)     28
 CPU Speed (MIPS)        8
 RAM Bytes               1,024
 Data EEPROM (bytes)     256 

সুতরাং প্রোগ্রামের মেমরির 28KB অ-ভলটিআইলে ডেটা সঞ্চয় করার জন্য যথেষ্ট নয় যদি আপনার প্রোগ্রামটি যথেষ্ট ছোট (নতুন পিকগুলিতে আপনি রান টাইম এ প্রোগ্রাম মেমরিতেও পড়তে/লিখতে পারেন) 10kbits RAM তে বেশ মাপসই হবে না, যদিও 1024 * 8 = 819২ বিট।
16F1527 এর মধ্যে 1536 বাইট RAM আছে, তাই যদি প্রয়োজন হয় তবে আপনি এটি ব্যবহার করতে পারেন।

For the master (alternatives to Arduino) there is something like the 18F25J50 or similar, which has a USB 2.0 peripheral. Microchip provide a USB stack an plenty of example firmware to get you started with USB.
If you need something more powerful for the master, have a look at the PIC24 series with up to 256K of Flash and 96K of RAM. Or even the PIC32 which is 32-bit and up to 80MIPS. The PICKit3 is a low price programmer that will program all the above mentioned PICs, and MPLAB (or MPLABX) is a free IDE for firmware development.

যোগাযোগ I2C দিয়ে করা যেতে পারে, যা মাস্টার/স্লেভ কনফিগারেশনের সাথে সম্পর্কিত এবং সহজেই ঠিকানা দেয়। আপনি চিন্তা করতে হবে সব তথ্য পাঠানো হয়। 7 মিটার একটি যুক্তিসঙ্গতভাবে শান্ত পরিবেশ এবং সঠিক সেটআপের সাথে কোনও সমস্যা হওয়া উচিত নয় (কম মূল্যের পুলআপগুলি - 2.2 কে বলুন, কম ক্যাপ্যাসিট্যান্স কেবল)

1
যোগ

আপনার দূরত্ব সম্পর্কিত উদ্বেগের বিষয়ে, এই চিপগুলি দেখুন: I2C বাস প্রসারিতকারী । তারা কয়েকটি ভিন্ন নির্মাতারা দ্বারা তৈরি করা হয়, আপনি আপনার প্রয়োজন এবং বাজেট ফিট করে এমন একটি খুঁজে পেতে পারেন।

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

@ অলি গ্লেজার উল্লেখ করেছেন যে, একটি শক্তিশালী (ছোট) পুল-আপ প্রতিরোধক ব্যবহার করেও এটি সাহায্য করবে, তবে যদি এটি আপনাকে এতদূর পেতে পারে তবে নিশ্চিতভাবেই বাস সম্প্রসারণকারীদের চেক করুন যেমন আমি তাদের সাথে সফলতা অর্জন করেছি।

আপনার আকারের উদ্বেগের বিষয়ে, আপনি যে মাইক্রোকন্ট্রোলারটি দেখছেন তার চশমাগুলি দেখুন। বিশেষ করে আপনি এটি দেখতে চান কত SRAM । আপনি উল্লেখ করেছেন যে আপনি 1000 বিট == 125 বাইট বাফার করতে চান। এসআরএএমএ নমুনাটি সাধারণত কেবি (কিলো-বাইট) এ দেওয়া হয় তাই তার থেকে বড় একটি বেছে নিন। আপনি যদি আপনার কোডে আরও বাফারগুলি ব্যবহার করেন তবে আপনার প্রোগ্রামটি কিছুটা জটিল (বড় এবং অনেকগুলি ফাংশন কল) তাহলে আপনি সম্ভবত কমপক্ষে 512 বাইট - SRAM এর 1KB চান। অ্যাপ্লিকেশন সম্পর্কে আরও জানার পরে আপনি কতটা প্রয়োজন তা নির্ধারণ করা কঠিন। যদি আপনি একবারে 1২5 টি বাইটের সমস্ত প্রয়োজন না করেন, তবে আপনি এটি ইইপিআরওমের ভিতরে এবং বাইরে স্ট্রিম করতে পারেন।

0
যোগ
@ ক্লাবাচুইও, যদি না আপনি প্রোটোকলে চেকসাম যোগ করার পরামর্শ দিচ্ছেন তবে আমি কল্পনা করতে পারব না যে UART কোনও কম বা কম নির্ভরযোগ্য হবে, যেহেতু আপনি ক্যাবলিং বা সুরক্ষা দেওয়ার বিষয়ে কোনো মন্তব্য না করেই বা কোনও তথ্য বা প্রমাণ সরবরাহ করেছেন। আপনি কিভাবে ব্যাখ্যা করতে পারেন? আমি সেটি উল্লেখযোগ্য মাস্টার/স্লেভ আর্কিটেকচারের উপর ভিত্তি করে I2C- এর জন্য আমার পরামর্শ তৈরি করেছিলাম, এবং কারণ আইসিটি ইতিমধ্যেই এর সমস্ত যত্ন নেয়।
যোগ লেখক kender, উৎস
@ ক্লাবাকচিও, একমত, এটি অদ্ভুত, তাই আমি সেই ক্ষমতাটি সক্ষম করার জন্য বাস এক্সটেন্ডার আইসি এর পরামর্শ দিয়েছি। আমি সম্মত হচ্ছি যে RS232 সিগন্যালিংয়ের উপর UART সম্ভবত সেই দৈর্ঘ্যের চেয়ে ভাল সঞ্চালন করবে, তবে আমি একটি হার্ডওয়্যার পেরিফেরাল ব্যবহার করার পরিবর্তে আপনার নিজের মাস্টার/স্লেভ প্রোটোকল লিখতে হবে। সব কিছু বিবেচনা করা হয়, আমি মনে করি না হয় খারাপ ধারনাগুলি, কেবল আপোষ। প্রতিক্রিয়ার জন্য আপনাকে ধন্যবাদ.
যোগ লেখক kender, উৎস
আমি মনে করি না যে এই পথ যেতে হবে, বিশেষ করে সেই পরিমাণ তথ্য পাঠাতে; আমার কাছে UART আরো নির্ভরযোগ্য প্রোটোকল মনে হয় কারণ এটি পিন বা লাইনগুলির পরিপ্রেক্ষিতে সংরক্ষণ করার দরকার নেই।
যোগ লেখক clabacchio, উৎস
প্রাইজেস: আমার ধারণাটি ভিত্তিক এটি আমার ধারণা এবং আমি পরম সত্যের জন্য সর্বদা জাহির করি না। তারপরে, AFAIK, I2C ইন্টারফেস-পিসিবি যোগাযোগের জন্য ডিজাইন করা হয়েছে, যেমন নাম প্রস্তাব করে। খোলা ড্রেন হচ্ছে, এটি সত্যিই শক্তসমর্থ নয়, এবং আমি বরং UART হিসাবে একটি শক্তিশালী প্রোটোকল ব্যবহার করব। তারপরে, এটি সত্য যে ক্যাবলিং এবং সুরক্ষা দেওয়ার প্রয়োজনীয়তা অপরিহার্য, তবে আমার আপত্তিটি সত্যই ছিল যে আইটি 2 এর সাথে 7m তারের সংকেত পাঠানো অদ্ভুত ব্যাপার, এবং আমি কখনও এটি দেখেছি না।
যোগ লেখক clabacchio, উৎস
যাইহোক, যদি আমি চয়ন করতে হয়, আমি একটি বেতার নেটওয়ার্ক ব্যবহার করবে :)
যোগ লেখক clabacchio, উৎস
@ অলিগ্লেজার বাহ! যাইহোক, এটা শুধুমাত্র সম্ভব বা এটি সুপারিশযোগ্য?
যোগ লেখক clabacchio, উৎস
@ অলিগ্লেজার আমি সত্যিই আপনাকে বিশ্বাস করতে পারি, আমি কখনোই পিসিবি থেকে আইসিটি বের করে দেখিনি ... কিন্তু আসলে আমি এটা মাত্র কয়েকবার দেখেছি ...
যোগ লেখক clabacchio, উৎস
@ ক্লাব্যাকচিও - আইটিইউটি বেশিরভাগই ইনট্র্রা-পিসিবি স্টাফের জন্য ব্যবহার করা হয়, তবে এটি আর দূরত্বের জন্য ব্যবহার করা যাবে না এমন কোনো কারণ নেই। বাফার আইসি উপলব্ধ কেন এই। আমি মনে করি ক্রীতদাসদের সংখ্যা এবং সঠিক সেটআপের উপর নির্ভর করে 7 মিটার একটি বাফার ছাড়া অর্জনযোগ্য হওয়া উচিত। এখানে কয়েকটি রেফারেন্স উল্লেখ করা হয়েছে যা I2C ব্যবহার করে 100m পর্যন্ত 1. I2C প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী 2. I2C দূরত্ব সম্পর্কিত পোস্ট
যোগ লেখক Skilldrick, উৎস
@ ক্লাবাকচিও - কম গতিতে 7 মিটার পর্যন্ত আমি এটির সুপারিশ করব। যদি আপনি I2C দৌড়ে বলেন, 22kHz এটি 19200 baud উল্লেখ করা হবে এবং ত্রুটি এমনকি একটি বৃহত্তর মার্জিন থাকবে। আপনি এটি অতিরিক্ত কঠিন হতে চেয়েছিলেন আপনি সবসময় একটি বাফার আইসি ব্যবহার করতে পারে, কিন্তু আমি সম্ভবত যে overkill মনে হয়। আমরা কেবল "স্বাভাবিক" পরিসরের পূর্বের কয়েকটি অতিরিক্ত মিটার কথা বলছি, যাতে যতক্ষণ মনোযোগ দেওয়া হয়, ততক্ষণ মনোযোগ দেওয়া হয়, পুল ক্যাপ্যাসিট্যান্স এবং তারের সংকেত এবং সংকেতগুলি সীমার সাথে চেক করা হয় যে তারা সীমিত নয় তা নিশ্চিত করার জন্য আমি নিশ্চিত এটা ভাল হবে.
যোগ লেখক Skilldrick, উৎস