সুচিপত্র:

64 পিক্সেল আরজিবি LED ডিসপ্লে - আরেকটি আরডুইনো ক্লোন: 12 টি ধাপ (ছবি সহ)
64 পিক্সেল আরজিবি LED ডিসপ্লে - আরেকটি আরডুইনো ক্লোন: 12 টি ধাপ (ছবি সহ)

ভিডিও: 64 পিক্সেল আরজিবি LED ডিসপ্লে - আরেকটি আরডুইনো ক্লোন: 12 টি ধাপ (ছবি সহ)

ভিডিও: 64 পিক্সেল আরজিবি LED ডিসপ্লে - আরেকটি আরডুইনো ক্লোন: 12 টি ধাপ (ছবি সহ)
ভিডিও: ULEFONE POWER ARMOR 21 আনবক্সিং পর্যালোচনা, প্রযুক্তিগত ডেটা শীট এবং মূল্য 2024, নভেম্বর
Anonim
64 পিক্সেল আরজিবি LED ডিসপ্লে - আরেকটি আরডুইনো ক্লোন
64 পিক্সেল আরজিবি LED ডিসপ্লে - আরেকটি আরডুইনো ক্লোন
64 পিক্সেল আরজিবি LED ডিসপ্লে - আরেকটি আরডুইনো ক্লোন
64 পিক্সেল আরজিবি LED ডিসপ্লে - আরেকটি আরডুইনো ক্লোন
64 পিক্সেল আরজিবি LED ডিসপ্লে - আরেকটি আরডুইনো ক্লোন
64 পিক্সেল আরজিবি LED ডিসপ্লে - আরেকটি আরডুইনো ক্লোন

এই ডিসপ্লেটি 8x8 RGB LED ম্যাট্রিক্সের উপর ভিত্তি করে। পরীক্ষার উদ্দেশ্যে এটি 4 টি শিফট রেজিস্টার ব্যবহার করে একটি স্ট্যান্ডার্ড Arduino বোর্ড (Diecimila) এর সাথে সংযুক্ত ছিল। এটি কাজ করার পরে আমি একটি ফ্যাবড পিসিবিতে এটিকে পারম্যাটাইজ করেছি। শিফট রেজিস্টার 8-বিট প্রশস্ত এবং সহজেই SPI প্রোটোকলের সাথে ইন্টারফেস করা হয়। পালস প্রস্থ মডুলেশন রং মিশ্রিত করার জন্য ব্যবহার করা হয়, আরো পরে যে। এমসিইউর র‍্যামের একটি অংশ ছবিটি ধরে রাখার জন্য ফ্রেমবফার হিসেবে ব্যবহৃত হয়। ভিডিও র RAM্যাম পটভূমিতে একটি বাধা রুটিন দ্বারা বিশ্লেষণ করা হয়, তাই ব্যবহারকারী পিসির সাথে কথা বলা, পড়ার বোতাম এবং পোটেন্টিওমিটারের মতো অন্যান্য দরকারী কাজ করতে পারে। "Arduino" সম্পর্কে আরও তথ্য: www.arduino.cc

ধাপ 1: রং মেশানোর জন্য পালস প্রস্থ মডুলেশন

রং মেশানোর জন্য পালস প্রস্থ মডুলেশন
রং মেশানোর জন্য পালস প্রস্থ মডুলেশন

পালস প্রস্থ মডু - কি? একটি সময়ের ব্যবধানে গৃহীত বর্গ-তরঙ্গ ফাংশনের গাণিতিক গড় থেকে ব্যবহারযোগ্য শক্তি ফলাফল। ফাংশনটি যতক্ষণ ON অবস্থানে থাকবে, তত বেশি শক্তি পাবেন। পিডব্লিউএম এলইডি -র উজ্জ্বলতার উপর একই প্রভাব ফেলে যেমন এসি লাইটের ডিমার। সামনের কাজটি স্বতন্ত্রভাবে একটি সস্তা এবং সহজ উপায়ে 64 আরজিবি এলইডিএস (= 192 সিঙ্গেল এলইডি!) এর উজ্জ্বলতা নিয়ন্ত্রণ করা, যাতে কেউ পুরোটা পেতে পারে রঙের বর্ণালী। বিশেষত কোন ঝলকানি বা অন্যান্য বিরক্তিকর প্রভাব থাকা উচিত নয়। মানুষের চোখ দ্বারা প্রদর্শিত উজ্জ্বলতার অ -রৈখিক উপলব্ধি এখানে বিবেচনায় নেওয়া হবে না (যেমন 10% এবং 20% উজ্জ্বলতার পার্থক্য 90% এবং 100% এর মধ্যে "বড়" বলে মনে হয়)। PWM অ্যালগরিদম। বলুন LED এর উজ্জ্বলতার জন্য কোডটি 7 এর মান দেওয়া হয়েছে (0, 0)। উপরন্তু এটি জানে যে উজ্জ্বলতায় সর্বাধিক N ধাপ রয়েছে। কোডটি সমস্ত সম্ভাব্য স্তরের উজ্জ্বলতার জন্য N লুপ চালায় এবং সমস্ত সারিতে প্রতিটি একক LED পরিষেবা দেওয়ার জন্য সমস্ত প্রয়োজনীয় লুপ। যদি উজ্জ্বলতা লুপে লুপ কাউন্টার x 7 এর চেয়ে ছোট হয়, LED চালু হয়। যদি এটি 7 এর চেয়ে বড় হয়, LED বন্ধ থাকে। সমস্ত LEDs, উজ্জ্বলতার মাত্রা এবং বেস কালার (RGB) এর জন্য এটি খুব দ্রুত করা, প্রতিটি LED কে পছন্দসই রঙ দেখানোর জন্য পৃথকভাবে সমন্বয় করা যেতে পারে। একটি অসিলোস্কোপ দিয়ে পরিমাপ দেখিয়েছে যে ডিসপ্লে রিফ্রেশ কোড প্রায় 50% CPU সময় নেয়। বাকিটা পিসির সাথে সিরিয়াল কমিউনিকেশন, বোতাম পড়া, আরএফআইডি রিডারের সাথে কথা বলা, I পাঠাতে ব্যবহার করা যেতে পারে2অন্যান্য মডিউলগুলিতে সি ডেটা …

ধাপ 2: শিফট রেজিস্টার এবং এলইডি এর সাথে কথা বলা

শিফট রেজিস্টার এবং এলইডি এর সাথে কথা বলা
শিফট রেজিস্টার এবং এলইডি এর সাথে কথা বলা
শিফট রেজিস্টার এবং এলইডি এর সাথে কথা বলা
শিফট রেজিস্টার এবং এলইডি এর সাথে কথা বলা

একটি শিফট রেজিস্টার এমন একটি ডিভাইস যা ক্রমানুসারে ডেটা লোড করার অনুমতি দেয় এবং একটি সমান্তরাল আউটপুট। যথাযথ চিপের সাথে বিপরীত কাজটিও সম্ভব। Arduino ওয়েবসাইটে শিফট রেজিস্টারের একটি ভাল টিউটোরিয়াল আছে। LEDs 74HC595 টাইপের 8-বিট শিফট রেজিস্টার দ্বারা চালিত প্রতিটি পোর্ট 25mA কারেন্টের উৎস বা ডুবতে পারে। ডুবে যাওয়া বা সোর্স করা প্রতি চিপের মোট বর্তমান 70mA এর বেশি হওয়া উচিত নয়। এই চিপগুলি অত্যন্ত সস্তা, তাই প্রতি টুকরা প্রায় 40cents এর বেশি অর্থ প্রদান করবেন না। যেহেতু LEDs একটি সূচকীয় বর্তমান / ভোল্টেজ বৈশিষ্ট্য আছে, বর্তমান সীমাবদ্ধ প্রতিরোধক হতে হবে ওহমের আইন ব্যবহার করে: R = (V - Vf) / IR = সীমিত প্রতিরোধক, V = 5V, Vf = LED এর ফরোয়ার্ড ভোল্টেজ, I = কাঙ্ক্ষিত বর্তমান লাল LEDs প্রায় 1.8V, নীল এবং সবুজ পরিসরের 2.5V থেকে 3.5V এর ফরওয়ার্ড ভোল্টেজ রয়েছে। এটি নির্ধারণ করতে একটি সাধারণ মাল্টিমিটার ব্যবহার করুন সঠিক রঙের প্রজননের জন্য কয়েকটি বিষয় বিবেচনায় নেওয়া উচিত: মানুষের চোখের বর্ণালী সংবেদনশীলতা (লাল/নীল: খারাপ, সবুজ: ভাল), একটি নির্দিষ্ট তরঙ্গদৈর্ঘ্য এবং স্রোতে LED এর দক্ষতা। অনুশীলনে একজন কেবল 3 টি পোটেন্টিওমিটার নেয় এবং সেগুলি সামঞ্জস্য করে যতক্ষণ না LED সঠিক সাদা আলো দেখায়। অবশ্যই সর্বাধিক LED কারেন্ট অতিক্রম করা উচিত নয়। এখানে আরও গুরুত্বপূর্ণ বিষয় হল যে সারিগুলি চালানোর জন্য শিফট রেজিস্টারটি 3x8 LEDs তে বর্তমান সরবরাহ করতে হবে, তাই বর্তমানকে খুব বেশি উপরে না চাপানো ভাল। আমি সব LEDs জন্য 270Ohm প্রতিরোধক সীমিত সঙ্গে সফল ছিল, কিন্তু যে অবশ্যই LED ম্যাট্রিক্স তৈরীর উপর নির্ভর করে। শিফট রেজিস্টার SPI সিরিয়াল সঙ্গে interfaced হয়। SPI = সিরিয়াল পেরিফেরাল ইন্টারফেস (চিত্র (1))। পিসিতে সিরিয়াল পোর্টের বিপরীতে (অ্যাসিঙ্ক্রোনাস, ক্লক সিগন্যাল নেই), SPI এর জন্য একটি ক্লক লাইন প্রয়োজন (SRCLK)। তারপরে একটি সংকেত লাইন রয়েছে যা ডিভাইসটিকে বলছে যখন ডেটা বৈধ (চিপ সিলেক্ট / ল্যাচ / আরসিএলকে)। অবশেষে দুটি ডেটা লাইন আছে, একটিকে বলা হয় MOSI (মাস্টার আউট স্লেভ ইন), অন্যটিকে MISO (মাস্টার ইন স্লেভ আউট) বলা হয়। এসপিআই ব্যবহার করা হয় ইন্টিগ্রেটেড সার্কিটগুলিকে, যেমন আমি2C. এই প্রকল্পের জন্য MOSI, SRCLK এবং RCLK প্রয়োজন। উপরন্তু সক্রিয় লাইন (G) পাশাপাশি ব্যবহার করা হয়। একটি SPI চক্র আরসিএলকে লাইনকে টেনে নিয়ে শুরু হয় (চিত্র (2)) MCU MOSI লাইনে তার ডেটা পাঠায়। এর যৌক্তিক অবস্থা এসআরসিএলকে লাইনের উঠতি প্রান্তে শিফট রেজিস্টার দ্বারা নমুনা করা হয়। আরসিএলকে লাইনটি আবার হাইতে টেনে চক্রটি বন্ধ করা হয়েছে। এখন আউটপুটে ডেটা পাওয়া যায়।

ধাপ 3: পরিকল্পিত

পরিকল্পিত
পরিকল্পিত
পরিকল্পিত
পরিকল্পিত

চিত্র (1) দেখায় কিভাবে শিফট রেজিস্টারগুলি তারযুক্ত হয়। এগুলি ডেইজি-শৃঙ্খলযুক্ত, তাই এই চেইনে এবং এর মাধ্যমে ডেটা স্থানান্তর করা যেতে পারে। অতএব আরো শিফট রেজিস্টার যোগ করা সহজ।

ইমেজ (2) এমসিইউ, কানেক্টর, কোয়ার্টজ সহ বাকি পরিকল্পনাকে দেখায়… সংযুক্ত পিডিএফ ফাইলে পুরো কাজ রয়েছে, মুদ্রণের জন্য সেরা।

ধাপ 4: C ++ সোর্স কোড

C ++ সোর্স কোড
C ++ সোর্স কোড
C ++ সোর্স কোড
C ++ সোর্স কোড
C ++ সোর্স কোড
C ++ সোর্স কোড

C/C ++ এ সাধারণত তাদের কোডিং করার আগে ফাংশনগুলিকে প্রোটোটাইপ করতে হয়।#int main (void) অন্তর্ভুক্ত করা হয়; } Arduino IDE- এর এই ধাপের প্রয়োজন নেই, কারণ ফাংশন প্রোটোটাইপ স্বয়ংক্রিয়ভাবে উৎপন্ন হয়। অতএব ফাংশন প্রোটোটাইপগুলি এখানে দেখানো কোডে প্রদর্শিত হবে না। একটি টাইমার 1 ওভারফ্লো ইন্টারাপ্ট while (! (SPSR & (1 << SPIF))) {} MCU- এর রেজিস্টার সরাসরি ব্যবহার করুন। কথায় এই উদাহরণ: "যখন এসপিআইএফ-বিট রেজিস্টার এসপিএসআর সেট করা নেই কিছুই করবেন না"। আমি শুধু এই বিষয়ে জোর দিতে চাই যে স্ট্যান্ডার্ড প্রজেক্টের জন্য হার্ডওয়্যারের সাথে এত ঘনিষ্ঠভাবে সম্পর্কিত বিষয়গুলি মোকাবেলা করার প্রয়োজন নেই। নতুনদের এই দ্বারা ভীত হওয়া উচিত নয়।

ধাপ 5: সমাপ্ত গ্যাজেট

সমাপ্ত গ্যাজেট
সমাপ্ত গ্যাজেট
সমাপ্ত গ্যাজেট
সমাপ্ত গ্যাজেট
সমাপ্ত গ্যাজেট
সমাপ্ত গ্যাজেট

সমস্ত সমস্যার সমাধান করার পরে এবং কোডটি চালানোর পরে, আমাকে কেবল একটি পিসিবি লেআউট তৈরি করতে হয়েছিল এবং এটি একটি ফ্যাব হাউসে পাঠাতে হয়েছিল। এটা অনেক পরিষ্কার দেখাচ্ছে:-) চিত্র (1): সম্পূর্ণ জনবহুল নিয়ন্ত্রক বোর্ড চিত্র (2): খালি PCBI এর সামনের দিক চিত্র (2): পিছনের দিক ATMEGA168/328 চিপ এবং 5V/GND এর PORTC এবং PORTD ভেঙ্গে সংযোগকারী আছে । এই পোর্টগুলিতে সিরিয়াল RX, TX লাইন, I থাকে2সি লাইন, ডিজিটাল I/O লাইন এবং 7 ADC লাইন। এটি বোর্ডের পিছনে ieldsাল স্ট্যাক করার উদ্দেশ্যে করা হয়েছে। স্পেসিং পারফোর্ড (0.1in) ব্যবহার করার জন্য উপযুক্ত। যত তাড়াতাড়ি এটি সম্পন্ন করা হয়, শুধু একটি আদর্শ FTDI USB/TTL সিরিয়াল অ্যাডাপ্টার বা অনুরূপ ব্যবহার করুন। আমি একটি অটো-রিসেট-অক্ষম জাম্পার যোগ করেছি। আমি একটি ছোট পার্ল স্ক্রিপ্টও রান্না করেছি (আমার ব্লগ দেখুন), যা FTDI তারের সাথে অটো-রিসেট সক্ষম করে যা সাধারণত বাক্সের বাইরে কাজ করে না (RTS বনাম DTR লাইন)। এটি লিনাক্সে কাজ করে, হয়তো MAC- তে মুদ্রিত সার্কিট বোর্ড এবং কয়েকটি DIY কিট আমার ব্লগে পাওয়া যায়। SMD সোল্ডারিং প্রয়োজন! LED ম্যাট্রিক্সের জন্য নির্দেশাবলী এবং উত্স তৈরির জন্য PDF ফাইলগুলি দেখুন।

ধাপ 6: অ্যাপ্লিকেশন: পার্ল ব্যবহার করে লিনাক্সের জন্য CPU লোড মনিটর

এটি একটি ইতিহাসের চক্রান্ত সহ একটি খুব মৌলিক লোড মনিটর। এটি একটি পার্ল স্ক্রিপ্টের উপর ভিত্তি করে যা iostat ব্যবহার করে প্রতি 1 সেকেন্ডে সিস্টেমের "লোড এভারেজ" সংগ্রহ করে। ডেটা একটি অ্যারেতে সংরক্ষিত থাকে যা প্রতিটি আপডেটের উপর স্থানান্তরিত হয়। তালিকার শীর্ষে নতুন তথ্য যোগ করা হয়, প্রাচীনতম এন্ট্রি ধাক্কা দেওয়া হয়। আরো বিস্তারিত তথ্য এবং ডাউনলোড (কোড…) আমার ব্লগে পাওয়া যায়।

ধাপ 7: আবেদন: I²C ব্যবহার করে অন্যান্য মডিউলের সাথে কথা বলা

আবেদন: I²C ব্যবহার করে অন্যান্য মডিউলের সাথে কথা বলা
আবেদন: I²C ব্যবহার করে অন্যান্য মডিউলের সাথে কথা বলা

এটি কেবল নীতির প্রমাণ এবং এই কাজের জন্য সবচেয়ে সহজ সমাধান নয়2সি সরাসরি 127 "স্লেভ" বোর্ড সম্বোধন করার অনুমতি দেয়। এখানে ভিডিওতে ডান পাশের বোর্ডটি হল "মাস্টার" (যা সমস্ত স্থানান্তর শুরু করে), বাম বোর্ডটি দাস (তথ্যের জন্য অপেক্ষা করছে)। আমি2C- এর 2 টি সিগন্যাল লাইন এবং স্বাভাবিক পাওয়ার লাইন (+, -, SDA, SCL) প্রয়োজন। যেহেতু এটি একটি বাস, সমস্ত ডিভাইস সমান্তরালভাবে এর সাথে সংযুক্ত।

ধাপ 8: অ্যাপ্লিকেশন: "গেম কিউব":-)

আবেদন
আবেদন

শুধু একটি অদ্ভুত চিন্তা এটি একটি ভূমিকা পাতায় দেখানো কাঠের ঘেরের মধ্যেও ফিট করে। এটির পিছনে 5 টি বোতাম রয়েছে যা একটি সাধারণ গেম খেলার জন্য ব্যবহার করা যেতে পারে।

ধাপ 9: ম্যাট্রিক্সে ছবি / অ্যানিমেশন প্রদর্শন - দ্রুত হ্যাক

ম্যাট্রিক্সে ছবি / অ্যানিমেশন প্রদর্শন - দ্রুত হ্যাক
ম্যাট্রিক্সে ছবি / অ্যানিমেশন প্রদর্শন - দ্রুত হ্যাক
ম্যাট্রিক্সে ছবি / অ্যানিমেশন প্রদর্শন - দ্রুত হ্যাক
ম্যাট্রিক্সে ছবি / অ্যানিমেশন প্রদর্শন - দ্রুত হ্যাক
ম্যাট্রিক্সে ছবি / অ্যানিমেশন প্রদর্শন - দ্রুত হ্যাক
ম্যাট্রিক্সে ছবি / অ্যানিমেশন প্রদর্শন - দ্রুত হ্যাক
ম্যাট্রিক্সে ছবি / অ্যানিমেশন প্রদর্শন - দ্রুত হ্যাক
ম্যাট্রিক্সে ছবি / অ্যানিমেশন প্রদর্শন - দ্রুত হ্যাক

তাই এটি শুধুমাত্র 8x8 পিক্সেল এবং কয়েকটি রঙ পাওয়া যায়। প্রথমে আপনার পছন্দের ছবিটি ঠিক 8x8 পিক্সেল করার জন্য জিম্পের মতো কিছু ব্যবহার করুন এবং এটি ".ppm" কাঁচা বিন্যাস (ASCII নয়) হিসাবে সংরক্ষণ করুন। পিপিএম একটি পার্ল স্ক্রিপ্টে পড়া এবং প্রক্রিয়া করা সহজ। ImageMagick এবং কমান্ড লাইন টুল "কনভার্ট" ব্যবহার করা ঠিকভাবে কাজ করবে না। নতুন arduino কোড আপলোড করুন, তারপর কন্ট্রোলারে আপলোড করার জন্য পার্ল স্ক্রিপ্ট ব্যবহার করুন। ঝলকানি কেবল LED রিফ্রেশ এবং আমার ক্যামেরার ফ্রেম রেটের একটি অসামঞ্জস্যতা। কোডটি কিছুটা আপডেট করার পরে, এটি বেশ জিপ্পি চালায়। সমস্ত ছবি সিরিয়ালে লাইভ ট্রান্সফার করা হয় যেমন আপনি তাদের দেখতে পান।

ধাপ 10: সঞ্চিত অ্যানিমেশনের ইন্টারেক্টিভ কন্ট্রোল

কেন মাইক্রোকন্ট্রোলার সব মজা আছে? Arduino সংস্কৃতি সব শারীরিক কম্পিউটিং এবং মিথস্ক্রিয়া সম্পর্কে, তাই শুধু একটি potentiometer যোগ করুন এবং নিয়ন্ত্রণ নিতে! 8 টি এনালগ থেকে ডিজিটাল কনভার্টার ইনপুট ব্যবহার করা খুব সহজ করে তোলে।

ধাপ 11: লাইভ ভিডিও দেখাচ্ছে

একটি পার্ল স্ক্রিপ্ট এবং কয়েকটি মডিউল ব্যবহার করে X11 সিস্টেমে আধা লাইভ ভিডিও দেখানো বেশ সহজ করে তোলে। এটি লিনাক্সে কোডেড ছিল এবং MAC- তেও কাজ করতে পারে। এটি এইরকম কাজ করে:- মাউস কার্সার পজিশন পান- কার্সারে কেন্দ্রিক NxN পিক্সেলের একটি বাক্স ক্যাপচার করুন- ছবিটি 8x8 পিক্সেল-এ LED বোর্ডে পাঠান- পুনরাবৃত্তি

ধাপ 12: আরো হালকা প্রায় বিনামূল্যে

আরো হালকা প্রায় বিনামূল্যে
আরো হালকা প্রায় বিনামূল্যে

মাত্র দুটি ধাপে উজ্জ্বলতা কিছুটা বাড়ানো যেতে পারে। 270Ω প্রতিরোধকগুলিকে 169Ω এর সাথে প্রতিস্থাপন করুন এবং পিগিব্যাক আইসি 5 তে আরেকটি 74HC595 শিফট রেজিস্টার দিন।

প্রস্তাবিত: