
সুচিপত্র:
2025 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2025-01-23 14:36



এই নির্দেশযোগ্য কোডটি একটি Arduino TFT স্ক্রিনের জন্য একটি অঙ্কন প্রোগ্রাম তৈরির ক্ষেত্রে বিশদ বিবরণ দেয়। এই প্রোগ্রামটি অনন্য, তবে এটি SD কার্ডে একটি অঙ্কন সংরক্ষণের অনুমতি দেয় এবং আরও সম্পাদনা করার জন্য পরে এটি লোড করার অনুমতি দেয়!
সরবরাহ
- Arduino Uno - মূল বা একটি সামঞ্জস্যপূর্ণ ক্লোন
- টিএফটি টাচস্ক্রিন - আমি একটি এলিগু স্ক্রিন ব্যবহার করেছি, মানে আমার ইলেগু ড্রাইভার দরকার।
- মাইক্রো এসডি রিডার বোর্ড - ড্রয়িং ডেটা এসডি কার্ডে সংরক্ষণ করতে ব্যবহৃত হয়। আমার স্ক্রিনের ডিসপ্লের নীচে একটি অন্তর্নির্মিত পাঠক ছিল।
- স্টাইলাস - আমার পর্দা এক সঙ্গে এসেছিল। আঙুলের নখগুলিও ভাল কাজ করে।
- মাইক্রো এসডি কার্ড - এক্সএফএটি ফরম্যাটিং সীমাবদ্ধতার কারণে 32 গিগাবাইটের বেশি না এটি এমন ধরনের যা আপনি প্রসারিতযোগ্য স্টোরেজ সহ একটি ফোনে রাখবেন।
- Arduino IDE সহ কম্পিউটার
- প্রোগ্রামিং ক্যাবল - USB A থেকে USB B.
- এসডি কার্ড অ্যাডাপ্টার - মাইক্রো এসডি কার্ডকে এসডি স্লটে বা একটি এসডি কার্ডকে ইউএসবি স্লটে সংযুক্ত করার জন্য একটি সাধারণ এসডিতে রূপান্তর করতে ব্যবহৃত হয়।
ধাপ 1: এসডি কার্ড ফরম্যাট করুন


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


- আপনার স্ক্রিন ieldালটি Arduino এর উপরে চাপুন, পিনের সারিবদ্ধতার যত্ন নিন।
- স্ক্রিনের নীচে পাঠকের মধ্যে এসডি কার্ড োকান।
ধাপ 3: Arduino স্কেচ
যদিও অংশগুলির তালিকা বেশ সহজ ছিল, সেখানে এক টন কোড রয়েছে। আমি এখানে ধাপে ধাপে এটি মাধ্যমে যেতে হবে।
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত
Elegoo_GFX, _TFTLCD, এবং TouchScreen সব হার্ডওয়্যার-নির্দিষ্ট। আপনি যদি আলাদা স্ক্রিন ব্যবহার করেন, প্রস্তুতকারকের দেওয়া লাইব্রেরি ব্যবহার করুন।
এসপিআই এবং এসডি এসডি কার্ডের সাথে যোগাযোগের জন্য ব্যবহৃত হয়। এসপিআই হল এসডি কার্ড নিয়ামক দ্বারা ব্যবহৃত প্রোটোকল।
#if সংজ্ঞায়িত (_ SAM3X8E _) #undef _FlashStringHelper:: F (string_literal) #define F (string_literal) string_literal #endif
এটি হার্ডওয়্যার-নির্দিষ্টও।
#YP A3 সংজ্ঞায়িত করুন // একটি এনালগ পিন হতে হবে #XM A2 সংজ্ঞায়িত করুন // অবশ্যই একটি এনালগ পিন হতে হবে
// নতুন ILI9341 TP এর জন্য টাচ করুন
#TS_MINX 120 নির্ধারণ করুন #TS_MAXX 900 নির্ধারণ করুন
#CSPIN 10 নির্ধারণ করুন
#LCD_CS A3 নির্ধারণ করুন
#LCD_CD A2 নির্ধারণ করুন #LCD_WR A1 #নির্ধারণ করুন LCD_RD A0 #LCD_RESET A4 নির্ধারণ করুন
এই প্রতিটি #সংজ্ঞায়িত বিবৃতি আইডিইকে মান দিয়ে নাম প্রতিস্থাপন করে। এখানে, তারা LCD এবং SD I/O পিন সেট করে।
// কিছু 16-বিট রঙের মান নির্ধারণ করুন: #ডিফাইন ব্ল্যাক 0x0000 #ডিফাইন হোয়াইট 0xFFFF #ডিফাইন রেড 0xF800 #ডিফাইন ব্লু 0x001F #ডিফাইন গ্রিন 0x07E0
এগুলি কোডে ব্যবহৃত কয়েকটি রঙ। #তাদের সংজ্ঞায়িত করলে কোড পড়া সহজ হয়।
#পেনারডিয়াস সংজ্ঞায়িত করুন 3
এটি অঙ্কন কলমের আকার নির্ধারণ করে।
#ন্যূনতম চাপ 10 নির্ধারণ করুন MAXPRESSURE 1000 নির্ধারণ করুন
// ভাল চাপ স্পষ্টতা জন্য, আমরা প্রতিরোধের জানতে হবে
// X+ এবং X- এর মধ্যে যে কোন মাল্টিমিটার ব্যবহার করুন এটি পড়ার জন্য // আমি যা ব্যবহার করছি তার জন্য X প্লেট টাচস্ক্রিন ts = TouchScreen (XP, YP, XM, YM, 300) জুড়ে এর 300 ohms;
Elegoo_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
এই বিবৃতিগুলি একটি স্পর্শ নিবন্ধন, স্পর্শ ফাংশন আরম্ভ এবং পর্দা শুরু করার জন্য প্রয়োজনীয় চাপ সংজ্ঞায়িত করে।
ফাইল স্টোরেজ; int storageSize; int stoX = 1; int stoY = 1;
এগুলি প্রোগ্রামের স্টোরেজ অংশের জন্য ভেরিয়েবল।
অকার্যকর সেটআপ (অকার্যকর) {Serial.begin (9600); Serial.println ("পেইন্ট প্রোগ্রাম");
tft.reset ();
uint16_t শনাক্তকারী = tft.readID ();
যদি (শনাক্তকারী == 0x0101) {শনাক্তকারী = 0x9341; Serial.println (F ("0x9341 LCD ড্রাইভার পাওয়া গেছে")); }
// পর্দা শুরু করুন
tft.begin (শনাক্তকারী); tft.setRotation (2);
পিনমোড (13, আউটপুট);
// এসডি কার্ড শুরু করুন
যদি (! SD.begin (CSPIN)) {Serial.println ("SD আরম্ভ ব্যর্থ"); প্রত্যাবর্তন; } Serial.println ("SD আরম্ভ");
// পটভূমি আঁকুন
drawBackground (); }
সেটআপ ফাংশন সিরিয়াল শুরু করে যদি এটি পাওয়া যায়, স্ক্রিন রিসেট করে, TFT ড্রাইভার সনাক্ত করে, স্ক্রিন শুরু করে, কার্ড শুরু করে এবং ব্যাকগ্রাউন্ড আঁকার জন্য একটি ফাংশন কল করে।
আমি লুপ ফাংশনের প্রধান অংশ এড়িয়ে যাব। অন্য সবকিছু শুধু টাচস্ক্রিন চালানোর জন্য ব্যবহৃত হয়।
// স্ক্রিন প্রেস সনাক্ত করুন এবং ভেরিয়েবলে সংরক্ষণ করুন যদি (p.z> MINPRESSURE && p.z <MAXPRESSURE) {// স্কেল p.x = মানচিত্র (p.x, TS_MINX, TS_MAXX, tft.width (), 0); p.y = (tft.height () - মানচিত্র (p.y, TS_MINY, TS_MAXY, tft.height (), 0));
// আঁকা
যদি (p.y> 21) {// SD কার্ড স্টোরেজে ডেটা সংরক্ষণ করুন = SD.open ("storage.txt", FILE_WRITE); storage.print (p.x); storage.print (","); storage.println (p.y); storage.close ();
// স্পর্শ অবস্থানে বিন্দু
tft.fillCircle (p.x, p.y, PENRADIUS, WHITE); }
// মুছুন বোতাম
যদি ((p.y 198) && (p.x <219)) {deleteStorage (); }
// লোড বোতাম অ্যাকশন
যদি ((p.y 219)) {loadStorage (); }}
যদি একটি প্রেস সনাক্ত করা হয়, প্রেসের অবস্থানের জন্য ভেরিয়েবল সেট করুন।
তারপর, যদি প্রেসটি ড্রয়িং এরিয়ার মধ্যে থাকে, স্টোরেজ.টিএক্স -এ এসডি কার্ডে পয়েন্টটি সেভ করুন এবং একটি নির্ধারিত আকার এবং রঙের সাহায্যে চাপানো পয়েন্টে একটি বৃত্ত আঁকুন।
তারপরে, যদি প্রেসটি মুছে ফেলার বোতামের অবস্থানে থাকে তবে সঞ্চিত অঙ্কনটি মুছে ফেলা একটি ফাংশন চালান। আপনি যদি ভিন্ন আকারের স্ক্রিন ব্যবহার করেন, তাহলে বোতামের লোকেশন ভ্যালুর সাথে খেলার চেষ্টা করুন।
তারপরে, যদি চাপটি লোড বোতামের অবস্থানে থাকে তবে সঞ্চিত অঙ্কনটি লোড করে এমন একটি ফাংশন চালান। আপনি যদি ভিন্ন আকারের স্ক্রিন ব্যবহার করেন, তাহলে বোতামের লোকেশন ভ্যালুর সাথে খেলার চেষ্টা করুন।
এখন, আমি ফাংশন ব্যাখ্যা করব।
পটভূমি এবং বোতামগুলি আঁকার জন্য প্রথম ফাংশনটিকে সেটআপ বলা হয়।
void drawBackground () {// ব্যাকগ্রাউন্ড tft.fillScreen (BLACK) সেট করুন;
// পেইন্ট টেক্সট
tft.setTextColor (সাদা); tft.setTextSize (3); tft.setCursor (0, 0); tft.println ("পেইন্ট");
// লোড বোতাম
tft.fillRect (219, 0, 21, 21, GREEN);
// পরিষ্কার বোতাম
tft.fillRect (198, 0, 21, 21, RED); }
এটি স্ক্রিনকে কালো করে, পেইন্ট শব্দটি লিখে, এবং বোতামগুলির জন্য রঙিন স্কোয়ার আঁকে। আপনি যদি ভিন্ন আকারের স্ক্রিন ব্যবহার করেন, তাহলে বোতামের লোকেশন ভ্যালুর সাথে খেলার চেষ্টা করুন।
void deleteStorage () {// SD মুছে দিন SD.remove ("storage.txt");
//ব্যাকগ্রাউন্ড সেট
tft.fillScreen (কালো);
// সাফল্যের পাঠ্য মুছুন
tft.setTextColor (সাদা); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("storage.txt মুছে ফেলা হয়েছে");
// ব্যবহারকারীকে এটি পড়তে দিন
বিলম্ব (2000);
// আঁকা চালিয়ে যান
drawBackground (); }
DeleteStorage ফাংশন storage.txt সরিয়ে দেয়, পর্দা কালো করে দেয় এবং মুছে ফেলার জন্য একটি সফল বার্তা দেয়। এটি তখন ড্রব্যাকগ্রাউন্ড ফাংশনকে কল করে যা আপনাকে অন্য কিছু আঁকা শুরু করতে দেয়।
অকার্যকর লোডস্টোরেজ () {// ধীর আঙ্গুলের বিলম্ব (250) থেকে পুনরাবৃত্তি এড়িয়ে চলুন;
// স্টোরেজ ফাইল চেক করুন
যদি (! SD.exists ("storage.txt")) {Serial.println ("No storage.txt file"); প্রত্যাবর্তন; }
// শুধুমাত্র-পঠন মোডে ফাইল খুলুন
storage = SD.open ("storage.txt", FILE_READ);
// যখন তথ্য আছে, while (stoY> 0) {// আপডেট পজিশন ভেরিয়েবল stoX = storage.parseInt (); stoY = storage.parseInt ();
// স্টোরেজ থেকে আঁকুন
tft.fillCircle (stoX, stoY, PENRADIUS, WHITE); } // ফাইল স্টোরেজ বন্ধ করুন বন্ধ করুন (); }
অবশেষে, লোডস্টোরেজ ফাংশন একটি স্টোরেজ ফাইলের জন্য পরীক্ষা করে, এটি কেবল পঠনযোগ্য মোডে খোলে, তারপর এই লুপটি পুনরাবৃত্তি করে:
যতদিন আরো তথ্য আছে,
- Storage.txt থেকে পার্সড ডেটা দিয়ে পজিশন ভেরিয়েবল আপডেট করুন
- লোড পয়েন্টে একটি বৃত্ত আঁকুন
যখন লুপ সম্পূর্ণ হয় এবং আর কোন ডেটা থাকে না, তখন এটি স্টোরেজ ফাইল বন্ধ করে দেয়।
এই স্কেচের কোডটি নীচে পাওয়া যাবে। শুধু এটি ডাউনলোড করুন, এটি আরডুইনোতে খুলুন এবং আপনার বোর্ডে আপলোড করুন!
ধাপ 4: এই প্রোগ্রাম ব্যবহার করে

শুধু আপনার Arduino কে পাওয়ার সোর্সে প্লাগ করুন - কম্পিউটার, ব্যাটারি, ওয়াল ওয়ার্ট ইত্যাদি এবং অঙ্কন শুরু করুন। আপনার অঙ্কন এবং তার সংরক্ষিত ডেটা মুছতে, লাল বোতাম টিপুন। স্টোরেজ থেকে একটি অঙ্কন লোড করতে এবং এটিতে কাজ চালিয়ে যেতে, সবুজ বোতামে ক্লিক করুন। এইভাবে, আপনি একটি অঙ্কনে অনেকবার পুনরাবৃত্তি করতে পারেন!
একটি এক্সটেনশন হিসাবে, আপনার কম্পিউটারে অঙ্কন চক্রান্ত করার চেষ্টা করুন:
- আপনার কম্পিউটারে ডেটা সহ এসডি কার্ডটি প্লাগ করুন।
- আপনার প্রিয় টেক্সট/কোড এডিটরে storage.txt খুলুন।
- Storage.txt- এ সব মান কপি করুন।
- একটি পয়েন্ট-প্লটিং প্রোগ্রামে এই লিঙ্কটি অনুসরণ করুন।
- বাম দিকের দুটি উদাহরণ পয়েন্ট মুছুন।
- আপনার ডেটা পেস্ট করুন যেখানে উদাহরণ পয়েন্ট ছিল।
আপনার অঙ্কনগুলি দেখানোর জন্য এটি একটি সুস্পষ্ট উপায় - সম্ভবত Arduino বা পয়েন্ট -প্লটারে পয়েন্ট রঙ পরিবর্তন করার চেষ্টা করুন!
পরিবর্তনগুলি স্বাগত, এবং আমি মন্তব্যগুলিতে কিছু পরামর্শ দেখতে চাই। এটি দেখার জন্য ধন্যবাদ এবং আমি আশা করি আপনি আপনার নিজস্ব প্রকল্পগুলিতে এর জন্য পরিষ্কার ব্যবহার পাবেন!
প্রস্তাবিত:
5 টি 1 Arduino রোবট - আমাকে অনুসরণ করুন - লাইন অনুসরণ - সুমো - অঙ্কন - বাধা এড়ানো: 6 টি ধাপ

5 টি 1 Arduino রোবট | আমাকে অনুসরণ করুন | লাইন অনুসরণ | সুমো | অঙ্কন | বাধা এড়ানো: এই রোবট কন্ট্রোল বোর্ডে একটি ATmega328P মাইক্রোকন্ট্রোলার এবং একটি L293D মোটর ড্রাইভার রয়েছে। অবশ্যই, এটি একটি Arduino Uno বোর্ড থেকে আলাদা নয় কিন্তু এটি আরও দরকারী কারণ এটি মোটর চালানোর জন্য অন্য ieldালের প্রয়োজন হয় না! এটা লাফ থেকে মুক্ত
কোড টিউটোরিয়ালের ঘন্টা সহ Arduino এর জন্য একটি অঙ্কন রোবট ব্যবহার করা: 3 টি ধাপ

কোড টিউটোরিয়ালের ঘন্টা সহ Arduino এর জন্য একটি অঙ্কন রোবট ব্যবহার করা: আমি একটি ওয়ার্কশপের জন্য একটি Arduino অঙ্কন রোবট তৈরি করেছি যাতে কিশোর মেয়েদের STEM বিষয়গুলিতে আগ্রহী হতে পারে (https://www.instructables.com/id/Arduino-Drawing-Robot/ দেখুন )। রোবটটি টার্টেল-স্টাইলের প্রোগ্রামিং কমান্ড যেমন ফরওয়ার্ড (দূরত্ব
Arduino জন্য অঙ্কন রোবট: 18 ধাপ (ছবি সহ)

Arduino এর জন্য রোবট আঁকা: দ্রষ্টব্য: আমার কাছে এই রোবটটির একটি নতুন সংস্করণ আছে যা একটি প্রিন্টেড সার্কিট বোর্ড ব্যবহার করে, নির্মাণ করা সহজ, এবং IR বাধা সনাক্তকরণ! Http://bit.ly/OSTurtle এ দেখুন, আমি এই প্রকল্পটি ChickTech.org এর জন্য 10 ঘন্টার কর্মশালার জন্য ডিজাইন করেছি যার লক্ষ্য আমি
কম খরচে, Arduino- সামঞ্জস্যপূর্ণ অঙ্কন রোবট: 15 ধাপ (ছবি সহ)

কম খরচে, Arduino- সামঞ্জস্যপূর্ণ অঙ্কন রোবট: দ্রষ্টব্য: আমার কাছে এই রোবটটির একটি নতুন সংস্করণ রয়েছে যা একটি মুদ্রিত সার্কিট বোর্ড ব্যবহার করে, নির্মাণ করা সহজ, এবং IR বাধা সনাক্তকরণ! Http://bit.ly/OSTurtle এ দেখুন, আমি এই প্রকল্পটি ChickTech.org এর জন্য 10 ঘন্টার কর্মশালার জন্য ডিজাইন করেছি যার লক্ষ্য আমি
অঙ্কন আর্ম যা শব্দ দ্বারা নিয়ন্ত্রিত হয় - Arduino স্কুল প্রকল্প: 4 টি ধাপ (ছবি সহ)

সাউন্ড দ্বারা নিয়ন্ত্রিত আর্ম আঁকা - আরডুইনো স্কুল প্রকল্প: এটি আমার প্রথমবারের মতো Arduino এর সাথে কাজ করা, এবং এইরকম কিছু নিয়ে কাজ করা, তাই যদি আমি কোন ভুল করে থাকি তবে দু sorryখিত! আমি এই ধারণাটি পেয়েছি যখন আমি আমার শখগুলি সম্পর্কে চিন্তা করেছি, যা অঙ্কন এবং সংগীত। তাই আমি এই দুটিকে একত্রিত করার চেষ্টা করেছি! একটি সেল