DCC কন্ট্রোলারের জন্য ARDUINO IDE সেট আপ
DCC কন্ট্রোলারের জন্য Arduino IDE সেট-আপ
ধাপ 1. IDE পরিবেশ সেট আপ। ESP বোর্ড লোড করুন।
আপনি যখন প্রথম Arduino IDE ইনস্টল করেন, এটি শুধুমাত্র ARM ভিত্তিক বোর্ড সমর্থন করে। আমাদের ESP ভিত্তিক বোর্ডগুলির জন্য সমর্থন যোগ করতে হবে। নেভিগেট করুন File… পছন্দ
অতিরিক্ত বোর্ড ম্যানেজারে নীচের এই লাইনটি টাইপ করুন URLএস বক্স। মনে রাখবেন এতে আন্ডারস্কোর আছে, কোনো স্পেস নেই। http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
এছাড়াও সংকলনের সময় ভারবোস দেখান বলে বাক্সটি চেক করুন। সংকলনের সময় কিছু ব্যর্থ হলে এটি আমাদের আরও তথ্য দেয়।
মনে রাখবেন যে উপরের লাইনটি esp8266 ডিভাইস এবং নতুন esp32 উভয়ের জন্য সমর্থন যোগ করে। দুটি json স্ট্রিং একটি কমা দ্বারা পৃথক করা হয়।
এখন বোর্ড নির্বাচন করুন সংস্করণ 2.7.4 বোর্ড ম্যানেজার থেকে
সংস্করণ 2.7.4 ইনস্টল করুন। এইটা কাজ করে. সংস্করণ 3.0.0 এবং উচ্চতর এই প্রকল্পের জন্য কাজ করে না। এখন, টুল মেনুতে ফিরে, আপনি যে বোর্ডটি ব্যবহার করবেন সেটি নির্বাচন করুন। এই প্রকল্পের জন্য এটি একটি nodeMCU 1.0 বা একটি WeMos D1R1 হবে
এখানে আমরা WeMos D1R1 নির্বাচন করি। (ন্যানো থেকে এটি পরিবর্তন করা হচ্ছে)
ধাপ 2. IDE পরিবেশ সেট আপ। ESP8266 স্কেচ ডেটা আপলোড অ্যাড-ইন লোড করুন।
আমাদের এই অ্যাড-ইনটি লোড করতে হবে যাতে আমরা এইচটিএমএল পেজ এবং অন্যান্য প্রকাশ করতে পারি fileESP ডিভাইসে s। এগুলি আপনার প্রকল্প ফোল্ডারের ভিতরে ডেটা ফোল্ডারে থাকে https://github.com/esp8266/arduino-esp8266fs-plugin/releases
যান URL উপরে এবং ESP8266FS-0.5.0.zip ডাউনলোড করুন।
আপনার Arduino ফোল্ডারের ভিতরে একটি টুল ফোল্ডার তৈরি করুন। জিপের বিষয়বস্তু আনজিপ করুন file এই টুল ফোল্ডারে। আপনি এই সঙ্গে শেষ করা উচিত;
এবং টুলের অধীনে একটি নতুন মেনু বিকল্প প্রদর্শিত হবে...
আপনি যদি সেই মেনু বিকল্পটি চালু করেন, তাহলে IDE ডেটা ফোল্ডারের বিষয়বস্তু বোর্ডে আপলোড করবে। ঠিক আছে তাই সাধারণ ESP8266 ব্যবহারের জন্য IDE পরিবেশ সেট আপ করা হয়েছে, এখন আমাদের এই নির্দিষ্ট প্রকল্পের জন্য Arduino/Libraries ফোল্ডারে কিছু লাইব্রেরি যোগ করতে হবে।
ধাপ 3. লাইব্রেরি ডাউনলোড করুন এবং ম্যানুয়ালি ইনস্টল করুন।
আমাদের Github থেকে এই লাইব্রেরিগুলি ডাউনলোড করতে হবে; https://github.com/me-no-dev/ESPAsyncTCP
কোডে ক্লিক করুন, এবং তারপর জিপ ডাউনলোড করুন। এটি আপনার ডাউনলোড ফোল্ডারে যাবে। ডাউনলোডগুলিতে যান, জিপ খুঁজুন, এটি খুলুন এবং কন্টেন্ট ফোল্ডার "ESPAsyncTCP" Arduino/লাইব্রেরিতে টেনে আনুন।
ফোল্ডারের নাম যদি "-master" দিয়ে শেষ হয়, তাহলে শেষ থেকে "-master" মুছে ফেলার জন্য এটির নাম পরিবর্তন করুন।
অর্থাৎ ডাউনলোড থেকে
ESPAsyncTCP-master-এর জন্য .zip খুলুন এবং ESPAsyncTCP-মাস্টার ফোল্ডারটি এর ভিতর থেকে Arduino/Libraries-এ টেনে আনুন
দ্রষ্টব্য: আরডুইনো/লাইব্রেরি .zip সংস্করণ ব্যবহার করতে পারে না, আপনাকে কাঙ্খিত ফোল্ডারটি আনজিপ (টেনে আনতে) করতে হবে। আমাদেরও দরকার https://github.com/fmalpartida/New-LiquidCrystal
জিপটি ডাউনলোড করুন তারপর এর বিষয়বস্তু Arduino/লাইব্রেরিতে টেনে আনুন এবং -মাস্টার এন্ডিং সরিয়ে দিন।
এবং অবশেষে, নীচের লিঙ্ক থেকে আমাদের ArduinoJson-5.13.5.zip প্রয়োজন https://www.arduinolibraries.info/libraries/arduino-json
ডাউনলোড করুন এবং তারপর জিপ সামগ্রীগুলিকে Arduino/লাইব্রেরিতে টেনে আনুন
ধাপ 4. আরডুইনো লাইব্রেরি ম্যানেজার ব্যবহার করে আরও কয়েকটি লাইব্রেরি ইনস্টল করুন।
আমাদের আরও দুটি লাইব্রেরি দরকার, এবং এগুলি Arduino লাইব্রেরি ম্যানেজার থেকে এসেছে যা বিল্ট-ইন লাইব্রেরির একটি নির্বাচন ধারণ করে। টুল-এ যান... লাইব্রেরি পরিচালনা করুন...
Adafruit INA1.0.3 এর সংস্করণ 219 ব্যবহার করুন। এইটা কাজ করে.
এবং এছাড়াও
এর 2.1.0 সংস্করণ ব্যবহার করুন Webমার্কাস স্যাটলার থেকে সকেট, এটি পরীক্ষিত এবং কাজ করা হয়। আমি পরবর্তী সংস্করণগুলি পরীক্ষা করিনি।
ঠিক আছে তাই সমস্ত লাইব্রেরি (ওরফে রেফারেন্স) যা IDE-কে এই প্রকল্পটি কম্পাইল করতে হবে।
ধাপ 5. GitHub থেকে ESP_DCC_Controller প্রকল্পটি ডাউনলোড করুন এবং IDE-তে খুলুন।
GitHub এ যান এবং ডাউনলোড করুন https://github.com/computski/ESP_DCC_controller
সবুজ "কোড" বোতামে ক্লিক করুন এবং জিপটি ডাউনলোড করুন। তারপর জিপ খুলুন file এবং এর বিষয়বস্তু Arduino ফোল্ডারে সরান। ফোল্ডারের নামের শেষে "-main" অপসারণ করতে ফোল্ডারটির নাম পরিবর্তন করুন। আপনার Arduino ফোল্ডারে একটি ফোল্ডার ESP_ DCC_ কন্ট্রোলার দিয়ে শেষ করা উচিত। এতে একটি .INO থাকবে file, বিভিন্ন .H এবং .CPP files এবং একটি ডেটা ফোল্ডার।
.INO-তে ডাবল ক্লিক করুন file Arduino IDE-তে প্রজেক্ট খুলতে।
আমরা কম্পাইল হিট করার আগে, আমাদের আপনার প্রয়োজনীয়তাগুলি কনফিগার করতে হবে...
ধাপ 6. গ্লোবাল এ আপনার প্রয়োজনীয়তা সেট করুন। জ
এই প্রকল্পটি nodeMCU বা WeMo এর D1R1 সমর্থন করতে পারে এবং এটি বিভিন্ন পাওয়ার বোর্ড (মোটর শিল্ড) বিকল্পগুলিকে সমর্থন করতে পারে, এছাড়াও এটি বর্তমান মনিটর, LCD ডিসপ্লে এবং কীপ্যাডের মতো একটি I2C বাসে ডিভাইসগুলিকে সমর্থন করতে পারে। এবং অবশেষে এটি একটি জগহুইল (ঘূর্ণমান এনকোডার) সমর্থন করতে পারে। সবচেয়ে মৌলিক বিল্ড আপনি করতে পারেন একটি WeMo এর D1R1 এবং L298 মোটর শিল্ড।
নোট করুন একটি বিকল্প নিষ্ক্রিয় করার সবচেয়ে সহজ উপায় হল #define স্টেটমেন্টে এর নামের সামনে একটি ছোট হাতের n যোগ করা।
#nNODEMCU_OPTION3 সংজ্ঞায়িত করুন
#nBOARD_ESP12_SHIELD সংজ্ঞায়িত করুন
#সংজ্ঞায়িত করুন WEMOS_D1R1_AND_L298_SHIELD
প্রাক্তন জন্যample, উপরে NODEMCU_OPTION3 n দিয়ে অক্ষম করা হয়েছে, nBOARD_ESP12_SHIELD এর জন্যও একই। WEMOS_D1R1_AND_L298_SHIELD হল একটি সক্রিয় বিকল্প, এবং এর ফলে কম্পাইলার নিচের নিচে তালিকাভুক্ত এর জন্য কনফিগারেশন ব্যবহার করবে।
এই কনফিগারেশনের মাধ্যমে চলতে:
#elif সংজ্ঞায়িত (WEMOS_D1R1_AND_L298_SHIELD)
/*Wemos D1-R1 L298 ঢালের সাথে স্তুপীকৃত, মনে রাখবেন যে D1-R2 বিভিন্ন পিনআউট সহ একটি নতুন মডেল*/
/*L298 শিল্ডে ব্রেক জাম্পার কাটুন। এগুলোর প্রয়োজন নেই এবং আমরা চাই না যে এগুলো I2C পিন দ্বারা চালিত হোক কারণ এটি DCC সংকেতকে দূষিত করবে।
বোর্ডে একটি Arduino ফর্ম ফ্যাক্টর আছে, পিনগুলি নিম্নরূপ
D0 GPIO3 RX
D1 GPIO1 TX
D2 GPIO16 হার্টবিট এবং জগহুইল পুশবাটন (সক্রিয় হাই)
D3 GPIO5 DCC সক্ষম (pwm)
D4 GPIO4 Jog1
D5 GPIO14 DCC সংকেত (dir)
D6 GPIO12 DCC সংকেত (dir)
D7 GPIO13 DCC সক্ষম (pwm)
D8 GPIO0 SDA, 12k পুলআপ সহ
D9 GPIO2 SCL, 12k পুলআপ সহ
D10 GPIO15 Jog2
উপরের নোটগুলি মানুষের জন্য, আপনাকে জানাবে কোন ESP GPIO গুলি কোন ফাংশন সম্পাদন করবে৷ উল্লেখ্য যে Arduino D1-D10 থেকে GPIO ম্যাপিংগুলি নোড MCU D1-D10 থেকে GPIO ম্যাপিংগুলির থেকে আলাদা */
#USE_ANALOG_MEASUREMENT সংজ্ঞায়িত করুন
# ANALOG_SCALING 3.9 // সমান্তরালভাবে A এবং B ব্যবহার করার সময় (2.36 মাল্টিমিটার RMS মেলে) সংজ্ঞায়িত করুন
আমরা ইএসপিতে AD ব্যবহার করব এবং একটি বাহ্যিক I2C বর্তমান পর্যবেক্ষণ ডিভাইস যেমন INA219 নিষ্ক্রিয় নয়
আপনি যদি INA219 ব্যবহার করতে চান তবে এটি n USE_ ANALOG_ MEASUREMENT সহ
#PIN_HEARTBEAT 16 সংজ্ঞায়িত করুন //এবং জগহুইল পুশবাটন
#DCC_PINS সংজ্ঞায়িত করুন \
uint32 dcc_info[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12, 12 , 0 }; \
uint32 enable_info[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO5, 5 , 0 }; \
uint32 dcc_infoA[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO14, 14 , 0 }; \
uint32 enable_infoA[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO13,13 , 0 };
কোন পিনগুলি DCC সংকেত চালাবে তা সংজ্ঞায়িত করে, আমাদের দুটি চ্যানেল আছে, ইন-ফেজ চলছে যাতে আমরা তাদের একসাথে কমন করতে পারি। A-চ্যানেল হল dcc_ info [] এবং B-চ্যানেল হল dcc_ info A []। এগুলিকে ম্যাক্রো হিসাবে সংজ্ঞায়িত করা হয় এবং ব্যাকস্ল্যাশ একটি লাইন-কন্টিনিউয়েশন মার্কার।
#PIN_SCL 2 //12k পুলআপ সংজ্ঞায়িত করুন
#PIN_SDA 0 //12k পুলআপ সংজ্ঞায়িত করুন
#PIN_JOG1 সংজ্ঞায়িত করুন 4
#পরিচিত করুন PIN_JOG2 15 //12k পুলডাউন
পিনগুলি (GPIOs) সংজ্ঞায়িত করুন যা I2C SCL/SDA চালায় এবং তারপর জগহুইল ইনপুট 1 এবং 2
# KEYPAD_ADDRESS 0x21 //pcf8574 সংজ্ঞায়িত করুন
ঐচ্ছিক 4 x 4 ম্যাট্রিক্স কীপ্যাডের জন্য ব্যবহৃত হয়, যা একটি pcf8574 চিপ ব্যবহার করে স্ক্যান করা হয়
//addr, en,rw,rs,d4,d5,d6,d7,ব্যাকলাইট, পোলারিটি। আমরা এটি একটি 4 বিট ডিভাইস হিসাবে ব্যবহার করছি //আমার ডিসপ্লে পিনআউট হল rs,rw,e,d0-d7। শুধুমাত্র d<4-7> ব্যবহার করা হয়। <210> প্রদর্শিত হয় কারণ বিটগুলি <012> EN,RW,RS হিসাবে //ম্যাপ করা হয় এবং আমাদের হার্ডওয়্যারের প্রকৃত অর্ডার অনুসারে তাদের পুনরায় সাজাতে হবে, 3 ব্যাকলাইটে ম্যাপ করা হয়েছে। <4-7> ব্যাকপ্যাকে এবং ডিসপ্লেতে সেই ক্রমে উপস্থিত হয়৷
# BOOTUP_LCD LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, পজিটিভ) সংজ্ঞায়িত করুন; //YwRobot ব্যাকপ্যাক
I2C ব্যাকপ্যাক সংজ্ঞায়িত এবং কনফিগার করতে ব্যবহৃত হয় যা 1602 LCD ডিসপ্লে চালায় (ঐচ্ছিক), এটি সফ্ট কনফিগারযোগ্য এবং বেশ কয়েকটি ব্যাকপ্যাক উপলব্ধ রয়েছে যার পিন কনফিগারেশন পরিবর্তিত হয়।
#এন্ডিফ
ধাপ 7. কম্পাইল করুন এবং বোর্ডে আপলোড করুন।
এখন আপনি বোর্ড কম্বোটি কনফিগার করেছেন যা আপনি ব্যবহার করতে চান, আপনি প্রকল্পটি কম্পাইল করতে পারেন। আপনি যদি 4×4 ম্যাট্রিক্স কীপ্যাড এবং LCD ব্যবহার করতে না চান, কোন সমস্যা নেই, সফ্টওয়্যারটি তাদের কনফিগার করার আশা করে তাদের সংজ্ঞায় রেখে দিন। তাদের ছাড়া ওয়াইফাইয়ের মাধ্যমে সিস্টেমটি ভাল কাজ করবে।
IDE-তে টিক চিহ্ন (যাচাই) আসলে “কম্পাইল”। এটিতে ক্লিক করুন এবং আপনি দেখতে পাবেন বিভিন্ন বার্তা উপস্থিত হবে (আপনি সক্রিয় ভার্বোস কম্পাইলেশন প্রদান করেছেন) যেহেতু সিস্টেমটি বিভিন্ন লাইব্রেরি কম্পাইল করে এবং এটিকে একসাথে লিঙ্ক করে। যদি সবকিছু ঠিকঠাক কাজ করে, এবং যদি আপনি উপরের সমস্ত পদক্ষেপগুলি ঠিকভাবে অনুসরণ করেন তবে আপনি একটি সাফল্যের বার্তা দেখতে পাবেন। আপনি এখন ডান-তীর (আপলোড) বোতামে আঘাত করার জন্য প্রস্তুত, কিন্তু আপনি এটি করার আগে, টুল মেনুর অধীনে বোর্ডের জন্য আপনি সঠিক COM পোর্ট নির্বাচন করেছেন কিনা তা পরীক্ষা করে দেখুন।
একটি সফল আপলোড করার পরে (একটি ভাল মানের USB কেবল ব্যবহার করুন) আপনাকেও ডাকতে হবে৷ ESP8266 স্কেচ ডেটা মেনু লোড করুন টুলের অধীনে বিকল্প। এটি ডেটা ফোল্ডারের বিষয়বস্তু ডিভাইসে (সমস্ত HTML পৃষ্ঠা) রাখবে।
তুমি পেরেছ. সিরিয়াল মনিটর খুলুন, রিসেট বোতামে ক্লিক করুন এবং আপনি ডিভাইস বুট দেখতে পাবেন এবং I2C ডিভাইসের জন্য স্ক্যান করুন। আপনি এখন এটির সাথে Wifi এর মাধ্যমে সংযোগ করতে পারেন এবং এটি তার পাওয়ার বোর্ড (মোটর শিল্ড) পর্যন্ত তারের জন্য প্রস্তুত।
দলিল/সম্পদ
![]() |
DCC কন্ট্রোলারের জন্য ARDUINO IDE সেট আপ [পিডিএফ] নির্দেশনা ডিসিসি কন্ট্রোলারের জন্য আইডিই সেট আপ, আইডিই সেট আপ, ডিসিসি কন্ট্রোলারের জন্য সেট আপ, ডিসিসি কন্ট্রোলার আইডিই সেট আপ, ডিসিসি কন্ট্রোলার |