সুচিপত্র:

BluBerriSix - একটি TFT টাচস্ক্রিন / Arduino টিউটোরিয়াল: 12 টি ধাপ (ছবি সহ)
BluBerriSix - একটি TFT টাচস্ক্রিন / Arduino টিউটোরিয়াল: 12 টি ধাপ (ছবি সহ)

ভিডিও: BluBerriSix - একটি TFT টাচস্ক্রিন / Arduino টিউটোরিয়াল: 12 টি ধাপ (ছবি সহ)

ভিডিও: BluBerriSix - একটি TFT টাচস্ক্রিন / Arduino টিউটোরিয়াল: 12 টি ধাপ (ছবি সহ)
ভিডিও: How to interface a 3.5 INCH TFT LCD TOUCH SCREEN DISPLAY using TFT_eSPI Library & ESP32 2024, জুলাই
Anonim
BluBerriSix - একটি TFT টাচস্ক্রিন / Arduino টিউটোরিয়াল
BluBerriSix - একটি TFT টাচস্ক্রিন / Arduino টিউটোরিয়াল
BluBerriSix - একটি TFT টাচস্ক্রিন / Arduino টিউটোরিয়াল
BluBerriSix - একটি TFT টাচস্ক্রিন / Arduino টিউটোরিয়াল

2019 রিম ব্ল্যাকবেরি 850 এর 20 তম বার্ষিকী! কানাডার এই ছোট্ট আবিষ্কার বিশ্বের যোগাযোগের ধরন বদলে দিয়েছে। এটা অনেক আগে চলে গেছে, কিন্তু এর উত্তরাধিকার অব্যাহত আছে!

এই নির্দেশে, আপনি ইউএনও/মেগা -র জন্য MCUfriend.com 2.4 TFT ডিসপ্লে শিল্ড কিভাবে ব্যবহার করবেন তা শিখবেন। আপনি শিখবেন কিভাবে গ্রাফিক বস্তু এবং পাঠ্য প্রদর্শন করা যায় এবং কিভাবে স্পর্শ গ্রহণ করা যায় এবং স্পর্শ ইভেন্টগুলিতে কীভাবে কাজ করা যায়। এটি স্ক্রিনটি অ্যাডাফ্রুট এবং অন্যান্য টিএফটি শিল্ড/স্ক্রিনের মতোই।

আমরা আমার ব্লুবেরিসিক্স স্কেচের একটি সরলীকৃত 2 অ্যাপ সংস্করণ তৈরি করব।

চল শুরু করি!

ধাপ 1: BluBerriSIX - ওভারভিউ

Image
Image
BluBerriSIX - ওভারভিউ
BluBerriSIX - ওভারভিউ
BluBerriSIX - ওভারভিউ
BluBerriSIX - ওভারভিউ

BluBerriSIX অ্যাপটি একটি ছয় ফাংশন TFT প্রজেক্ট।

এটা অন্তর্ভুক্ত:

একটি টর্চলাইট

একটি সসী '7' অ্যাপ (ম্যাজিক '8' বলের মত)

একটি ক্যালকুলেটর

SR-04 অতিস্বনক দূরত্ব সেন্সর ব্যবহার করে একটি দূরত্ব পরিমাপ অ্যাপ্লিকেশন

একটি তাপমাত্রা এবং আর্দ্রতা অ্যাপ্লিকেশন যা HC-12 ট্রান্সসিভারের সাথে 1.5km পর্যন্ত রিয়েল-টাইম ডেটা লগিং করে

HC-12 ব্যবহার করে একটি টেক্সটিং অ্যাপ।

এই প্রকল্পটি 1100 লাইন কোড নিয়েছে। আমরা একটি যথেষ্ট সহজ সংস্করণ তৈরি করব যা এখনও TFT প্রদর্শন এবং স্পর্শ সেন্সিং ধারণা প্রদর্শন করে।

ধাপ 2: কি প্রয়োজন?

কি প্রয়োজন?
কি প্রয়োজন?
কি প্রয়োজন?
কি প্রয়োজন?

- একটি Arduino Uno বা মেগা 2560

- একটি MCUfriend 2.4 TFT ieldাল

নিম্নলিখিত গ্রন্থাগার:

- Adafruit_GFX লাইব্রেরি

- অ্যাডাফ্রুট টাচস্ক্রিন লাইব্রেরি

- MCUFRIEND_kbv লাইব্রেরি

এই লাইব্রেরিগুলি Arduino IDE এর ভিতরে লাইব্রেরি ম্যানেজারের সাথে ইনস্টল করা যেতে পারে।

একটি লাইব্রেরি লোড করতে, স্কেচ -> লাইব্রেরি অন্তর্ভুক্ত করুন -> লাইব্রেরি পরিচালনা করুন… মেনু বিকল্পে যান।

'আপনার অনুসন্ধান ফিল্টার করুন' ফিল্ডে, লাইব্রেরির নামের প্রথম কয়েকটি অক্ষর লিখুন এবং তারপর উপযুক্ত লাইব্রেরি নির্বাচন করুন এবং ইনস্টল করুন। হয়ে গেলে, এই পর্দা থেকে বেরিয়ে আসুন।

ইউএনও/মেগা -তে টিএফটি ieldাল মাউন্ট করার সময়, আপনি পিনগুলি সঠিকভাবে সারিবদ্ধ করছেন তা নিশ্চিত করার জন্য খুব সতর্ক থাকুন। আমি আমার প্রথম ieldালকে ভুলভাবে সাজিয়ে ভাজলাম। স্ক্রিনটি মরে গেছে তা উপলব্ধি করার আগে আমি সঠিক লাইব্রেরি খুঁজে বের করার চেষ্টা করে দু'সপ্তাহ ক্রমবর্ধমান হতাশায় কাটিয়েছি। সতর্ক হোন

ধাপ 3: আমাদের প্রকল্প

আমাদের প্রকল্প
আমাদের প্রকল্প
আমাদের প্রকল্প
আমাদের প্রকল্প
আমাদের প্রকল্প
আমাদের প্রকল্প
আমাদের প্রকল্প
আমাদের প্রকল্প

আমরা bluBerriSIX স্কেচের একটি সহজ সংস্করণ তৈরি করব।

এটা থাকবে, - একটি স্প্ল্যাশ স্ক্রিন

- দুটি বোতাম সহ একটি প্রধান মেনু পর্দা

- একটি সসি 7 অ্যাপ

- একটি সরলীকৃত টেক্সট এন্ট্রি অ্যাপ

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

যদিও এটি একটি সরলীকৃত প্রকল্প, এটি এখনও বেশ দীর্ঘ। আমি প্রতিটি প্রধান পর্যায়ে Arduino স্কেচগুলির সংস্করণ সরবরাহ করব যাতে আপনি যদি চান তবে সেগুলি আপলোড করতে পারেন।

ধাপ 4: হেডার কোড, গ্লোবাল ভেরিয়েবলস, স্ক্রিন সেটআপ

হেডার কোড, গ্লোবাল ভেরিয়েবলস, স্ক্রিন সেটআপ
হেডার কোড, গ্লোবাল ভেরিয়েবলস, স্ক্রিন সেটআপ
হেডার কোড, গ্লোবাল ভেরিয়েবলস, স্ক্রিন সেটআপ
হেডার কোড, গ্লোবাল ভেরিয়েবলস, স্ক্রিন সেটআপ

পুরো প্রকল্পটি অত্যন্ত নথিভুক্ত। কিন্তু বিস্তারিত অনুসরণ করা হয়।

একটি নতুন Arduino প্রকল্প শুরু করুন এবং এটিকে 'tft ডেমো' বা অন্য কোন নাম যা আপনি চান।

উপরের প্রথম কোড প্যানেল আমাদের দেখায় বৈশ্বিক ভেরিয়েবল। স্ক্রিনের ডিসপ্লে ফাংশন এবং স্ক্রিনের স্পর্শ সনাক্তকরণ উভয়ের জন্যই আমরা লাইব্রেরিতে যোগ করব।

আমরা তাদের স্ক্রিন-নির্দিষ্ট উদ্দেশ্যে রেফারেন্স সহ এনালগ পিনগুলিও সংজ্ঞায়িত করি।

আমরা tft অবজেক্ট (ডিসপ্লে) এবং ts অবজেক্ট (টাচ) কে তাদের নিজ নিজ ফাংশনের রেফারেন্স হিসাবে সংজ্ঞায়িত করি।

পর্দার জন্য এবং টেক্সট এবং গ্রাফিক্স অবজেক্টের জন্য রংগুলি রেন্ডার করা সহজ করার জন্য আমরা কিছু 16 বিট রঙের ধ্রুবক সংজ্ঞায়িত করি। আপনি লক্ষ্য করবেন যে একটি ওয়েবসাইটের একটি ইউআরএল রয়েছে যেখানে একটি কালার পিকার এবং কনভার্টার রয়েছে যা দৃশ্যমান রংগুলিকে তাদের 16 বিট হেক্সাডেসিমাল ভ্যালুতে রূপান্তর করতে পারে। এটি একটি খুব সহায়ক হাতিয়ার।

দ্বিতীয় কোড প্যানেলে, আমরা আমাদের অ্যাপ-নির্দিষ্ট উদ্দেশ্যে বিশ্বব্যাপী ভেরিয়েবলগুলি সংজ্ঞায়িত করি।

সি স্ট্রিং, লেটার এবং লেটার এক্স এবং লেটার ওয়াই স্ট্রিং এবং অ্যারে ব্যবহার করা হয় a) টেক্সট এন্ট্রি অ্যাপের বোতামে অক্ষর প্রদর্শন এবং খ) প্রতিটি স্পর্শের x এবং y কোঅর্ডিনেটগুলির সাথে প্রতিটি সংশ্লিষ্ট অক্ষরের x এবং y কোঅর্ডিনেটগুলির সাথে মেলে। কীবোর্ড এই সম্পর্কে আরো যখন আমরা স্কেচের সেই বিভাগে যাই।

funcX , funcY এবং func এমন একটি অ্যারে যা প্রধান মেনু স্ক্রিনে কোন অ্যাপ বোতামটি চাপানো হয়েছিল তা নির্ধারণ করতে কাজ করে এবং তারপর সংশ্লিষ্ট অ্যাপটি চালু করতে সেই তথ্য ব্যবহার করে।

lastTouch এবং tThresh টাচ পদ্ধতিতে ব্যবহার করা হয় যাতে নিশ্চিত করা যায় যে আমরা স্ক্রিন টিপে অনেকক্ষণ স্পর্শ পাই না। পরে এটি সম্পর্কে আরো।

মোড পরিবর্তনশীল কোন পর্দা প্রদর্শিত হবে তা নিয়ন্ত্রণ করবে এবং tMode পরিবর্তনশীল নিয়ন্ত্রণ করবে কোন স্পর্শ পদ্ধতি কোন সময়ে ব্যবহার করা হচ্ছে।

সেটআপ () ব্লকে, আমরা একটি সিরিয়াল চ্যানেল খুলব যদি আমরা ডিবাগিংয়ের জন্য Serial.println () কমান্ড ব্যবহার করতে চাই। সিরিয়াল মনিটর ডিবাগিং করার ইচ্ছা না থাকলে আপনার এই লাইনের দরকার নেই।

পরবর্তী চারটি লাইন হল tft অবজেক্টের জন্য শুধু সেটআপ কোড।

পরবর্তী আমরা পর্দার অভিযোজনকে পোর্ট্রেট মোডে সেট করি।

র্যান্ডমসিড () কমান্ডটি সসী 7 অ্যাপ দ্বারা পরবর্তী ব্যবহারের জন্য র্যান্ডম নম্বর জেনারেটর শুরু করে।

অবশেষে আমরা স্প্ল্যাশ স্ক্রিন পদ্ধতি বলি।

ধাপ 5: স্প্যাশ স্ক্রিন তৈরি করা এবং ডিসপ্লে বনাম টাচ ম্যাপিং বোঝা

স্প্যাশ স্ক্রিন তৈরি করা এবং ডিসপ্লে বনাম টাচ ম্যাপিং বোঝা
স্প্যাশ স্ক্রিন তৈরি করা এবং ডিসপ্লে বনাম টাচ ম্যাপিং বোঝা
স্প্যাশ স্ক্রিন তৈরি করা এবং ডিসপ্লে বনাম টাচ ম্যাপিং বোঝা
স্প্যাশ স্ক্রিন তৈরি করা এবং ডিসপ্লে বনাম টাচ ম্যাপিং বোঝা

আমরা এখন স্প্যাশ স্ক্রিন তৈরি শুরু করব।

কিন্তু প্রথমে, স্ক্রিন এবং টাচ ম্যাপিং এর জন্য ছবিটি দেখুন। লক্ষ্য করুন যে উৎপত্তি বিভিন্ন স্থানে। প্রদর্শনের জন্য, মূল (0, 0) পর্দার উপরের বাম দিকে (যখন রিসেট বোতামটি উপরে থাকে) এবং বাম থেকে ডানে এবং উপরে থেকে নীচে বৃদ্ধি পায়।

স্পর্শ সনাক্তকরণের জন্য, মূলটি পর্দার নিচের বাম কোণে এবং বাম থেকে ডানে এবং নীচে থেকে উপরের দিকে বৃদ্ধি পায়।

সুতরাং প্রদর্শন এবং স্পর্শ মানচিত্র পৃথকভাবে সংজ্ঞায়িত এবং বিভিন্ন রেজল্যুশন আছে। ডিসপ্লেটির রেজোলিউশন 240 বাই 320 এবং স্পর্শে অনেক বেশি রেজোলিউশন রয়েছে যা আপনি শীঘ্রই দেখতে পাবেন।

লুপ () {} পদ্ধতির নীচে আপনার স্কেচের একটি এলাকায় যান এবং আমরা স্প্ল্যাশ () পদ্ধতি কোড লিখব।

আমরা হেডার কোডে সংজ্ঞায়িত সাদা রঙ দিয়ে পর্দা পূরণ করতে একটি ফিলস্ক্রিন () কমান্ড দিয়ে শুরু করি।

তারপর আমরা টেক্সট সাইজ '5' সেট করেছি। এটি একটি অপেক্ষাকৃত বড় মৌলিক পাঠ্য আকার। আমরা পাঠ্য কার্সারের জন্য x এবং y অবস্থান নির্ধারণ করি এবং আমরা পাঠ্যের রঙ সেট করি। অবশেষে প্রিন্ট ("TFT") কমান্ড আসলে নির্দিষ্ট অবস্থানে নীল, সাইজ '5' পাঠ্য আঁকবে।

আপনি টেক্সটের আকার বাড়ানোর সাথে সাথে, আপনি দেখতে পাবেন যে অক্ষরগুলি আরও বেশি চকচকে হয়ে উঠছে। সুতরাং 5 এর উপরে যাওয়া সম্ভবত সহায়ক নয়। এই টিউটোরিয়ালের শেষে, আমি আপনাকে দেখাব কিভাবে বিটম্যাপ ফন্ট ব্যবহার করে আপনার অ্যাপে সুন্দর দেখতে টেক্সট পাবেন।

আমরা স্প্ল্যাশ স্ক্রিনে অন্য দুটি পাঠ্য আইটেমের জন্য অনুরূপ আদেশ পুনরাবৃত্তি করি।

অবশেষে আমরা অ্যাপটি মূল মেনু স্ক্রিনে যাওয়ার আগে ব্যবহারকারীকে স্ক্রিনের বিষয়বস্তু পড়ার সুযোগ দেওয়ার জন্য 2.5 সেকেন্ড বিলম্ব করি।

এগিয়ে যান এবং আপনার Arduino এ এই স্কেচ আপলোড করুন। এটি স্প্ল্যাশ স্ক্রিন প্রদর্শন করা উচিত।

ধাপ 6: টাচ ম্যাপিং ডায়াগনস্টিক টুল তৈরি করা

টাচ ম্যাপিং ডায়াগনস্টিক টুল তৈরি করা
টাচ ম্যাপিং ডায়াগনস্টিক টুল তৈরি করা
টাচ ম্যাপিং ডায়াগনস্টিক টুল তৈরি করা
টাচ ম্যাপিং ডায়াগনস্টিক টুল তৈরি করা

পর্দার বিভিন্ন অংশের স্পর্শ স্থানাঙ্ক পেতে সাহায্য করার জন্য showTouch () পদ্ধতিটি খুবই উপকারী। আপনার বোতামের স্পর্শ অঞ্চলগুলি নির্ধারণ করার জন্য আপনাকে এটি করতে হবে।

এগিয়ে যান এবং আপনার স্প্ল্যাশ () পদ্ধতির পূর্বে এই পদ্ধতিটি প্রবেশ করুন।

এখানে কিভাবে এটা কাজ করে.

If স্টেটমেন্ট নির্ধারণ করে যে শেষ স্পর্শের পর পর্যাপ্ত সময় পার হয়েছে কিনা। এটি বর্তমান সিস্টেমের সময় মিলিস () নেয় এবং শেষ টাচ সময় বিয়োগ করে। যদি এটি tThresh মানের (200 মিলিসেকেন্ড) চেয়ে বড় হয়, তাহলে এটি স্পর্শ গ্রহণ করে। অন্যথায়, এটি দুর্ঘটনাক্রমে মাল্টি-টাচ ইভেন্টগুলি উপেক্ষা করবে।

পরবর্তী, getpoint () কমান্ডটি স্পর্শের x, y এবং z স্থানাঙ্ক পায়। জেড কোঅর্ডিনেট হল স্পর্শ চাপের একটি পরিমাপ।

যদি চাপ স্কেচ হেডারে সংজ্ঞায়িত সর্বোচ্চ এবং সর্বনিম্ন ধ্রুবকগুলির মধ্যে থাকে, পদ্ধতিটি প্রথমে YP এবং XM পিনগুলিকে আউটপুটে পরিবর্তন করবে, স্ক্রিনটিকে ডিসপ্লে মোডে রাখবে।

এরপরে এটি একটি সাদা আয়তক্ষেত্র আঁকবে যা আগে প্রদর্শিত হতে পারে এমন কোন স্থানাঙ্ক মুছে দিতে পারে।

স্কেচ তারপর ফন্টটি আকার 2, কালো রঙে সেট করে এবং পর্দায় x (p.x) এবং y (p.y) স্থানাঙ্ক প্রদর্শন করে। আপনি আপনার নিজের স্কেচগুলির জন্য আপনার স্পর্শ অঞ্চলগুলি প্রোগ্রাম করতে সহায়তা করার জন্য এই অবস্থানগুলির একটি নোট তৈরি করতে পারেন।

স্ক্রিনে 'হোম' বোতাম টিপে ছিল কিনা তা দেখতে পদ্ধতির নীচে if স্টেটমেন্টটি পরীক্ষা করুন। '<=' অপারেটররা হোম বোতামের প্রস্থ এবং উচ্চতার অনুমতি দেয়। নির্দিষ্ট স্থানাঙ্কগুলি হোম বোতামের x- কেন্দ্র এবং y- কেন্দ্র স্থানাঙ্ক। যদি এটি চাপা হয়, মোডটি 0 তে সেট করা হয় যার অর্থ শেষ পর্যন্ত 'প্রধান মেনু স্ক্রিনে যান'। পরে এটি সম্পর্কে আরো।

অবশেষে আমরা লাস্ট টাচকে আপডেট করি বর্তমান সিস্টেম টাইম মিলিসে () পরবর্তী স্পর্শ ইভেন্টের জন্য প্রস্তুত হতে।

অনুগ্রহ করে এখন লুপ () ব্লকে যান এবং showTouch () লাইন যোগ করুন;

এই মুহুর্তে, আপনার স্কেচ আপলোড করুন এবং এটি চেষ্টা করুন। এটি স্প্ল্যাশ স্ক্রিনটি আঁকবে এবং আপনি যদি স্ক্রিনটি স্পর্শ করতে শুরু করেন তবে স্ক্রিনে টাচ এক্স এবং ওয়াই কোঅর্ডিনেটগুলি প্রদর্শিত হবে।

এগিয়ে যাওয়ার আগে, আসুন কোডের দুটি গুরুত্বপূর্ণ লাইন পুনর্বিবেচনা করি:

পিনমোড (ওয়াইপি, আউটপুট); // টিএফটি নিয়ন্ত্রণ পিনগুলি পুনরুদ্ধার করুন

পিনমোড (এক্সএম, আউটপুট); // একটি স্পর্শ সনাক্ত করার পরে প্রদর্শনের জন্য

যখনই আপনি স্ক্রিনে কিছু প্রদর্শন করতে চান, তখন স্ক্রিন টাচ মোড থেকে ডিসপ্লে মোডে পরিবর্তন করার জন্য আপনাকে এই দুটি কমান্ড চালাতে হবে। অন্যথায়, আপনার ডিসপ্লে কমান্ড কাজ করবে না।

এখন পর্যন্ত ভালো হয়েছে! বিরতি নাও!

ধাপ 7: প্রধান মেনু পর্দা তৈরি করুন

মূল মেনু পর্দা তৈরি করুন
মূল মেনু পর্দা তৈরি করুন
মূল মেনু পর্দা তৈরি করুন
মূল মেনু পর্দা তৈরি করুন
মূল মেনু পর্দা তৈরি করুন
মূল মেনু পর্দা তৈরি করুন

আমরা এখন আমাদের মূল মেনু পর্দাটি দুটি বোতাম দিয়ে তৈরি করব যা আপনি প্রতিটি অ্যাপ্লিকেশন সক্রিয় করতে টিপতে পারেন। পদ্ধতিটিকে মেনুস্ক্রিন () বলা হয়।

আমরা ডিসপ্লে মোডে স্ক্রিন লাগিয়ে শুরু করি।

তারপর আমরা ফন্ট সাইজ, কালার এবং পজিশন সেট করে 'মেন মেনু' টেক্সট প্রিন্ট করি।

আমরা এখন দুটি আয়তক্ষেত্র আঁকছি যা বোতাম।

সমস্ত গ্রাফিক্স কমান্ডের অনুরূপ কাঠামো রয়েছে:

গ্রাফিক শেপ (x স্থানাঙ্ক, y সমন্বয়, প্রস্থ, উচ্চতা, রঙ)

- x সমন্বয় - আয়তক্ষেত্রাকার বস্তুর জন্য উপরের বাম দিক, বৃত্তের কেন্দ্র

- y সমন্বয় - আয়তক্ষেত্রাকার বস্তুর জন্য উপরের বাম দিকে, বৃত্তগুলির জন্য কেন্দ্র

- প্রস্থ - পিক্সেলে বস্তুর প্রস্থ

- রঙ - একটি রঙ ধ্রুবক যা আমরা হেডারে সংজ্ঞায়িত করেছি

অবশেষে আমরা সসি 7 আইকন এবং QWERTY টেক্সট এন্ট্রি আইকন আঁকার জন্য দুটি পদ্ধতি কল করি। এগুলি পৃথক পদ্ধতি।

ড্র 7 আইকন (0) পদ্ধতি একটি পূর্ণসংখ্যা প্যারামিটার নেয় যা বল আঁকার জন্য ওয়াই-অফসেট। আমরা এটি করি যাতে আমরা মেনু স্ক্রিনে এবং সসি 7 অ্যাপ স্ক্রিনে বল অঙ্কনের জন্য একই পদ্ধতি ব্যবহার করতে পারি। অফসেট শুধু আমাদেরকে বলের y- স্থানাঙ্ককে উপরে বা নিচে প্রোগ্রামগতভাবে সামঞ্জস্য করতে দেয়।

ড্র 7 বল (0) পদ্ধতিটি ড্র 7 আইকন (0) থেকে বলা হয়। এটি একটি প্যারামিটারও নেয় যা আমাদের মেনু স্ক্রিনে বা অ্যাপ স্ক্রিনে অঙ্কন করলে তার উপর নির্ভর করে বলের উল্লম্ব অবস্থান সামঞ্জস্য করতে দেয়।

FillCircle () কমান্ড 4 টি আর্গুমেন্ট নেয়।

- বৃত্তের কেন্দ্রের x সমন্বয়

- বৃত্তের কেন্দ্রের সমন্বয়

- বৃত্তের ব্যাসার্ধ (পিক্সেলে)

- রঙ - একটি রঙ ধ্রুবক যা আমরা হেডারে সংজ্ঞায়িত করেছি

অবশেষে টেক্সট এন্ট্রি অ্যাপের আইকন আঁকার জন্য drawTextIcon () পদ্ধতি বলা হয়।

আপনি সেটআপ () এ স্প্ল্যাশ () পদ্ধতিটি মন্তব্য করে এবং মেনুস্ক্রিন () যোগ করে পদ্ধতিটি চালানোর চেষ্টা করতে পারেন।

আপনার Arduino এ স্কেচ আপলোড করুন এবং এটি ব্যবহার করে দেখুন!

ধাপ 8: সসি 7 অ্যাপ এবং প্রধান মেনু পদ্ধতি

সসি 7 অ্যাপ এবং প্রধান মেনু পদ্ধতি
সসি 7 অ্যাপ এবং প্রধান মেনু পদ্ধতি
সসি 7 অ্যাপ এবং প্রধান মেনু পদ্ধতি
সসি 7 অ্যাপ এবং প্রধান মেনু পদ্ধতি
সসি 7 অ্যাপ এবং প্রধান মেনু পদ্ধতি
সসি 7 অ্যাপ এবং প্রধান মেনু পদ্ধতি
সসি 7 অ্যাপ এবং প্রধান মেনু পদ্ধতি
সসি 7 অ্যাপ এবং প্রধান মেনু পদ্ধতি

সেভেনস্ক্রিন () পদ্ধতিটি বলের ছবি আঁকার এবং তারপর নির্দেশাবলী প্রদর্শন সহ অ্যাপের জন্য পর্দা আঁকবে।

SevenInstr () পদ্ধতি নির্দেশনা প্রদর্শন করে এবং আগের প্রতিক্রিয়া থেকে পর্দা সাফ করে। এটি 'প্রতিক্রিয়া' বোতামটিও আঁকছে।

Show7Response () পদ্ধতিটি স্ক্রিন থেকে পূর্ববর্তী প্রতিক্রিয়া পদ্ধতি পরিষ্কার করে, একটি অ্যানিমেটেড 'চিন্তা …' বার্তা প্রদর্শন করে এবং তারপর এলোমেলোভাবে নির্বাচিত প্রতিক্রিয়া বার্তা প্রদর্শন করে।

read7Touch () হল একটি পদ্ধতি যা এলোমেলোভাবে তৈরি বার্তা তৈরির জন্য একটি স্পর্শ ইভেন্টের জন্য অপেক্ষা করে। টাচ কোডটি পূর্বে বর্ণিত showTouch () ডায়গনিস্টিক পদ্ধতির অনুরূপ। সরলতার জন্য, পদ্ধতিটি 'রেসপন্ড' বোতাম স্পর্শ হিসাবে স্ক্রিনের যেকোনো জায়গায় স্পর্শ গ্রহণ করবে।

পদ্ধতির শীর্ষে, আমরা স্ট্রিংগুলির একটি প্রতিক্রিয়া অ্যারে সংজ্ঞায়িত করি যা একটি বার্তা যা একটি স্পর্শ ইভেন্ট থেকে উৎপন্ন হতে পারে।

যদি হোম বোতাম টিপে থাকে, তাহলে এটি অ্যাপটি শেষ করে প্রধান মেনু স্ক্রিনে ফিরে আসবে। অন্যথায়, পদ্ধতিটি 0 এবং 7 (একচেটিয়া) এর মধ্যে একটি এলোমেলো সংখ্যা তৈরি করবে এবং প্রতিক্রিয়া অ্যারে থেকে show7Response () পদ্ধতিতে সংশ্লিষ্ট পাঠ্য বার্তাটি প্রেরণ করবে।

অবশেষে, ব্যাকটোমেনু () পদ্ধতিটি হোম বোতামের একটি স্পর্শের জন্য দেখে এবং প্রধান মেনু স্ক্রিনে নিয়ন্ত্রণ ফিরিয়ে দেয়।

আপনি যখন প্রধান মেনু স্ক্রিনে থাকবেন তখন readMenuTouch () পদ্ধতি টাচ ইভেন্টের জন্য দেখে। যখন একটি স্পর্শ সনাক্ত করা হয়, এটি x এবং y স্থানাঙ্কগুলিকে getFunc (x, y) পদ্ধতিতে পাস করে যা funcX এবং funcY অ্যারে দেখায় যা স্পর্শের x এবং y স্থানাঙ্কের সাথে মেলে। এটি তারপর নির্বাচিত অ্যাপ্লিকেশনটির জন্য func অ্যারে থেকে নম্বরটি ফেরত দেয়। '1' হল সসি 7 এবং '2' হল টেক্সট এন্ট্রি অ্যাপ। এটি তখন সেই অ্যাপের মান অনুযায়ী মোড সেট করে যাতে অ্যাপটি চালানো হয়।

ধাপ 9: লুপ () ব্লক

লুপ () ব্লক
লুপ () ব্লক

আমরা এখন উপযুক্ত স্ক্রিন প্রদর্শন করার জন্য লুপ () ব্লক কোড তৈরি করতে শুরু করব এবং তারপরে বর্তমানে নির্বাচিত বিকল্পের উপর ভিত্তি করে উপযুক্ত স্পর্শ পদ্ধতিতে কল করব।

লুপ () পদ্ধতিতে দুটি সুইচ () কাঠামো থাকে।

কোন বিকল্পটি নির্বাচন করা হয়েছে তার উপর নির্ভর করে উপরের সুইচ কাঠামোটি উপযুক্ত পর্দা প্রদর্শন করে। এটি বর্তমান নির্বাচিত বিকল্পের জন্য উপযুক্ত স্পর্শ পদ্ধতির জন্য tMode মান নির্ধারণ করে। অবশেষে এটি মোডের মান 9 তে সেট করে যাতে ডিসপ্লে স্ক্রিন অবিরামভাবে পুনরায় আঁকা না হয়।

নিচের সুইচ স্ট্রাকচারটি নিয়ন্ত্রণ করে যা ব্যবহারকারীর দ্বারা নির্বাচিত অ্যাপ অপশনের উপর ভিত্তি করে কোন স্পর্শ পদ্ধতি কার্যকর করা হচ্ছে টিমোডের মান দ্বারা প্রতিনিধিত্ব করে।

আপনার আরডুইনোতে স্কেচটি লোড করুন এবং আপনি সসি 7 অ্যাপটি নির্বাচন এবং ব্যবহার করতে সক্ষম হবেন।

আপনি অনেক কাজ করেছেন! বিরতি নাও:-)

ধাপ 10: টেক্সট এন্ট্রি অ্যাপ - আমরা হোম স্ট্রেচে আছি

টেক্সট এন্ট্রি অ্যাপ - আমরা হোম স্ট্রেচে আছি!
টেক্সট এন্ট্রি অ্যাপ - আমরা হোম স্ট্রেচে আছি!
টেক্সট এন্ট্রি অ্যাপ - আমরা হোম স্ট্রেচে আছি!
টেক্সট এন্ট্রি অ্যাপ - আমরা হোম স্ট্রেচে আছি!
টেক্সট এন্ট্রি অ্যাপ - আমরা হোম স্ট্রেচে আছি!
টেক্সট এন্ট্রি অ্যাপ - আমরা হোম স্ট্রেচে আছি!
টেক্সট এন্ট্রি অ্যাপ - আমরা হোম স্ট্রেচে আছি!
টেক্সট এন্ট্রি অ্যাপ - আমরা হোম স্ট্রেচে আছি!

আমরা এখন টেক্সট এন্ট্রি অ্যাপের পদ্ধতিগুলি অন্তর্ভুক্ত করব।

makeKbd () স্ক্রিনে কীবোর্ড আঁকে।

এটি ছয়টি ভরাট গোলাকার আয়তক্ষেত্র আঁকে এবং তারপরে cString স্ট্রিং থেকে চিঠি পেয়ে যা 'কী'র উপর স্ক্রিনে প্রিন্ট করে প্রতিটি' কী' -তে উপযুক্ত অক্ষর ওভারলে করে। লক্ষ্য করুন যে fillRoundedRect () কমান্ডের দ্বিতীয় শেষ প্যারামিটার হল পিক্সেলের প্রতিটি কোণের ব্যাসার্ধ। এই মান যত বেশি হবে, কোণগুলি তত বেশি গোল হবে।

ReadKbdTouch () পদ্ধতি অন্যান্য স্পর্শ সনাক্তকরণ পদ্ধতির অনুরূপ কাজ করে।

যদি একটি স্পর্শ ধরা পড়ে যেটি হোম বোতামে নেই, এটি x এবং y স্থানাঙ্কগুলিকে curChar (x, y) পদ্ধতিতে প্রেরণ করে যা পর্দায় সেই x এবং y অবস্থানের সাথে সম্পর্কিত অক্ষরটি ফেরত দেয়। 'টাইপ করা' বার্তাটি 'displayMsg (theChar) পদ্ধতি ব্যবহার করে স্ক্রিনে প্রদর্শিত হয়।

CurChar (x, y) পদ্ধতি অক্ষর X এবং letterY অ্যারের মাধ্যমে সার্চ করে একটি মিল খুঁজে বের করার চেষ্টা করে যা x এবং y কোঅর্ডিনেটগুলির কাছাকাছি রয়েছে যা readKbdTouch () থেকে পাস হয়েছে। যদি এটি একটি মিল খুঁজে পায়, এটি readKbdTouch পদ্ধতিতে সংশ্লিষ্ট চিঠিটি ফেরত দেয়। লক্ষ্য করুন যে আমরা চার্চ ভেরিয়েবলকে 32 থেকে শুরু করি যা একটি স্পেস ক্যারেক্টারের ASCII কোড, । আমরা এটি করি যাতে ব্যবহারকারী যদি কীবোর্ড থেকে দূরে কোনো এলাকা স্পর্শ করে, তাহলে এটি অ-উপলভ্য অক্ষর প্রদর্শন করবে না।

DisplayMsg (theChar) পদ্ধতিটি curChar (x, y) থেকে ফিরে আসা অক্ষরটি গ্রহণ করে এবং মেসেজ স্ট্রিং এর সাথে যুক্ত করে। এটি তখন স্ক্রিনে বার্তা প্রদর্শন করে।

অবশেষে, আমরা পাঠ্য এন্ট্রি অ্যাপ্লিকেশন নির্বাচন গ্রহণ করতে লুপ () ব্লক আপডেট করব।

আপনার Arduino তে tftDemo স্কেচ আপলোড করুন এবং আপনি সম্পূর্ণ অ্যাপ্লিকেশনটি ব্যবহার করতে সক্ষম হবেন।

অভিনন্দন! আপনি একটি TFT টাচস্ক্রিন অ্যাপ তৈরি করেছেন! বাকি দিনের ছুটি নিন!

ধাপ 11: চকচকে হচ্ছে! - আপনার স্কেচে অ্যাডাফ্রুট বিটম্যাপ ফন্ট ব্যবহার করা।

স্ট্যান্ডার্ড টিএফটি ফন্ট সেট ঠিক আছে। কিন্তু আমরা যদি আমাদের টিএফটি স্কেচগুলিতে সঠিক বিটম্যাপড ফন্ট ব্যবহার করতে পারি তবে এটি আরও ভাল।

নেতিবাচক দিক হল যে Arduino মেমরিতে ফন্ট সেট লোড করা উল্লেখযোগ্য স্থান নেয়। আসলে, আপনার স্কেচটি এতগুলি ফন্ট দিয়ে পূরণ করা খুব সহজ যে এটি আরডুইনোতে লোড হবে না।

ফন্টগুলি Adafruit_GFX লাইব্রেরি ফোল্ডারের মধ্যে উপলব্ধ যা আপনি ইতিমধ্যে এই প্রকল্পের জন্য ইনস্টল করেছেন। ফন্ট ব্যবহারের একটি চমৎকার টিউটোরিয়াল এই সাইটে আছে।

আপনার স্কেচের হেডার এলাকায়, আপনি যে ফন্টটি ব্যবহার করতে চান তার ফন্ট রেফারেন্স যোগ করুন। আমরা এই উদাহরণের জন্য FreeSerifBoldItalic18p7b ফন্ট ব্যবহার করব।

#অন্তর্ভুক্ত

আপনার স্প্ল্যাশ () পদ্ধতিতে, tft.setTextSize () মন্তব্য করুন; কমান্ড

নিম্নলিখিত কমান্ড যোগ করুন,

tft.setFont (& FreeSerifBoldItalic18pt7b);

এখন যেকোন প্রিন্ট () কমান্ডগুলি বর্তমানে নির্দিষ্ট ফন্ট ব্যবহার করবে। একটি ভিন্ন ফন্টে পরিবর্তন করতে, আপনি পরবর্তী ফন্টের সাথে অন্য tft.setFont () কমান্ডটি ব্যবহার করতে চান যা আপনি ব্যবহার করতে চান।

ফন্টটি স্ট্যান্ডার্ড টিএফটি ফন্টে সেট করতে, শুধু একটি tft.setFont () ব্যবহার করুন; কোন প্যারামিটার ছাড়া কমান্ড।

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

ধাপ 12: চূড়ান্ত চিন্তা

আপনার কাছে আরও অনেক গ্রাফিক অবজেক্ট কমান্ড রয়েছে। তারা সংযুক্ত:

tft.drawRect (x, y, প্রস্থ, উচ্চতা, রঙ);

tft.drawLine (x1, y1, x2, y2, রঙ);

নিম্নলিখিত উদাহরণগুলি tft.color565 পদ্ধতি ব্যবহার করে আপনাকে লাল, সবুজ এবং নীল মানের উপর ভিত্তি করে রঙ নির্দিষ্ট করতে দেয়। আমরা আমাদের স্কেচে ব্যবহৃত ধ্রুবক সংজ্ঞায়িত HEX রঙের মানগুলি ব্যবহার করার এটি একটি বিকল্প উপায়।

tft.drawRoundRect (x, y, প্রস্থ, উচ্চতা, ব্যাসার্ধ, tft.color565 (255, 0, 0)); // এটি লাল হবে

tft.drawCircle (x, y, radius, tft.color565 (0, 255, 0)); // এটি সবুজ হবে

tft.draw ত্রিভুজ (vertex1x, vertex1y, vertex2x, vertex2y, vertex3x, vertex3y, tft.color565 (0, 0, 255)); // নীল

tft.fill ত্রিভুজ (vertex1x, vertex1y, vertex2x, vertex2y, vertex3x, vertex3y, tft.color565 (255, 0, 0);

এই কমান্ডগুলি নিয়ে খেলুন এবং দেখুন কিভাবে তারা আপনার TFT প্রকল্পে যোগ করতে পারে।

একটি টিএফটি স্ক্রিন ব্যবহার করা শেখা চ্যালেঞ্জিং এবং এই প্রথম পদক্ষেপগুলি শিখতে সময় নেওয়ার জন্য আপনার নিজের জন্য গর্বিত হওয়া উচিত।

টিএফটি স্ক্রিনগুলি আপনার আরডুইনো প্রকল্পগুলিতে একটি আকর্ষণীয় এবং দরকারী গ্রাফিকাল ইউজার ইন্টারফেস দিক যোগ করতে পারে।

এই টিউটোরিয়ালের মাধ্যমে কাজ করার জন্য ধন্যবাদ।

এখন বাইরে যান এবং কিছু দুর্দান্ত করে তুলুন!

প্রস্তাবিত: