সুচিপত্র:

হ্যান্ডহেল্ড বেসিক কম্পিউটার: 6 টি ধাপ (ছবি সহ)
হ্যান্ডহেল্ড বেসিক কম্পিউটার: 6 টি ধাপ (ছবি সহ)

ভিডিও: হ্যান্ডহেল্ড বেসিক কম্পিউটার: 6 টি ধাপ (ছবি সহ)

ভিডিও: হ্যান্ডহেল্ড বেসিক কম্পিউটার: 6 টি ধাপ (ছবি সহ)
ভিডিও: hsc ict chapter 5 Lecture 1 | Programming C | programming language C 2024, নভেম্বর
Anonim
হ্যান্ডহেল্ড বেসিক কম্পিউটার
হ্যান্ডহেল্ড বেসিক কম্পিউটার
হ্যান্ডহেল্ড বেসিক কম্পিউটার
হ্যান্ডহেল্ড বেসিক কম্পিউটার

এই নির্দেশযোগ্য বেসিক চলমান একটি ছোট হ্যান্ডহেল্ড কম্পিউটার নির্মাণের আমার প্রক্রিয়া বর্ণনা করে। কম্পিউটারটি ATMEGA 1284P AVR চিপের চারপাশে তৈরি করা হয়েছে, যা কম্পিউটারের (HAL 1284) নির্বোধ নামকেও অনুপ্রাণিত করেছে।

এই বিল্ডটি এখানে পাওয়া আশ্চর্যজনক প্রকল্প এবং সুপারকন বেসিক ব্যাজ দ্বারা অনুপ্রাণিত।

কম্পিউটারটি TinyBasic এর একটি পরিবর্তিত সংস্করণ চালায়, যদিও বেশিরভাগ সফ্টওয়্যার dan14 দ্বারা প্রকল্পের উপর ভিত্তি করে তৈরি করা হয়েছে। আপনি অবশ্যই এই নির্দেশাবলী অনুসরণ করতে পারেন, অথবা আরও ভাল, এটিতে উন্নতি করতে পারেন যেহেতু আমি কয়েকটি ভুল করেছি।

এই প্রকল্পের জন্য, আমি একটি ম্যানুয়ালও তৈরি করেছি। এটি নির্বাচিত মনিটরের জন্য কিছু বাগ এবং সুনির্দিষ্ট উল্লেখ করে কিন্তু সবচেয়ে গুরুত্বপূর্ণ, এটিতে বেসিক অপারেশনের তালিকা রয়েছে।

এটি প্রকাশিত হওয়ার পর, আমি প্রকল্পটি প্রদর্শন করে একটি ভিডিও তৈরি করেছি।

ধাপ 1: আমি ব্যবহৃত অংশগুলি

আমি ব্যবহৃত অংশগুলি
আমি ব্যবহৃত অংশগুলি
আমি ব্যবহৃত যন্ত্রাংশ
আমি ব্যবহৃত যন্ত্রাংশ
আমি ব্যবহৃত যন্ত্রাংশ
আমি ব্যবহৃত যন্ত্রাংশ

প্রধান আইসি জন্য:

  • এটিমেগা 1284 পি
  • 16MHz ক্রিস্টাল
  • 2x 22pf সিরামিক ক্যাপাসিটর
  • 10KΩ প্রতিরোধক (পুনরায় সেট আপ করার জন্য)
  • 4-পিন বোতাম (রিসেট করার জন্য)
  • 470Ω Reistor (যৌগিক ভিডিওর জন্য)
  • 1kΩ প্রতিরোধক (যৌগিক ভিডিও সিঙ্কের জন্য)
  • 3-পিন জাম্পার (ভিডিও সিগন্যালের জন্য)
  • প্যাসিভ বুজার

কী -বোর্ড নিয়ন্ত্রণের জন্য:

  • ATmega 328P (যেমন Arduino Uno তে ব্যবহৃত)
  • 16MHz ক্রিস্টাল
  • 2x 22pf সিরামিক ক্যাপাসিটর
  • 12x 10KΩ প্রতিরোধক (রিসেট টান আপ এবং বোতামগুলির জন্য)
  • 51x 4-পিন বোতাম (প্রকৃত কীবোর্ডের জন্য)

ক্ষমতার জন্য:

  • L7805 ভোল্টেজ রেগুলেটর
  • 3 মিমি LED
  • 220Ω প্রতিরোধক (LED এর জন্য)
  • 2x 0.1µF ইলেক্ট্রোলাইটিক ক্যাপাসিটর
  • 0.22 µF ইলেক্ট্রোলাইটিক ক্যাপাসিটর (আপনি 0.22 এর জন্য এই 0.22 এবং এক 0.1 কে প্রতিস্থাপন করতে পারেন। আমাকেও বলা হয়েছে যে মানগুলি আসলেই গুরুত্বপূর্ণ নয়, কিন্তু আমি ক্যাপাসিটরের সাথে দুর্দান্ত নই)
  • 2x 2-পিন জাম্পার (পাওয়ার ইনপুট এবং মেইন সুইচের জন্য)

জিপিআইও (হয়তো আরও কয়েকটি ভিত্তি যুক্ত করুন):

  • 7-পিন জাম্পার
  • 2x 8-pin জাম্পার
  • 2-পিন জাম্পার (5V এবং GND এর জন্য)
  • 3-4-পিন জাম্পার (সিরিয়াল যোগাযোগের জন্য)

নন-পিসিবি:

  • 4 "কম্পোজিট ভিডিও সহ এলসিডি ডিসপ্লে (আমার 7-30V এর মধ্যে একটি ইনপুট ভোল্টেজ ছিল)
  • প্রদর্শনের জন্য 3D মুদ্রিত ধারক
  • এক ধরণের সুইচ

ধাপ 2: সার্কিট

সার্কিট
সার্কিট

সার্কিটটি খুব সুন্দর নয় এবং প্রধান আইসি-অঞ্চলের বেশিরভাগই ড্যান 14 দ্বারা অনুপ্রাণিত। বলা হচ্ছে, এটি একটি ব্রেডবোর্ড-সার্কিটে একটি সুন্দর সোজা এগিয়ে Arduino। কীবোর্ড একটি সাধারণ গ্রিড এবং এটি ATmega328 দ্বারা নিয়ন্ত্রিত। দুটি AVR চিপ UART সিরিয়াল পিনের মাধ্যমে যোগাযোগ করে।

একটি ছবি এবং আমার agগল-ফাইল দুটোই সংযুক্ত এবং আশা করা যায় সার্কিটটি পুনরায় তৈরি করার জন্য যথেষ্ট হবে। যদি না হয়, আমাকে অবহিত করুন এবং আমি নির্দেশযোগ্য আপডেট করব।

ধাপ 3: পিসিবি

পিসিবি
পিসিবি
পিসিবি
পিসিবি

পিসিবি 2 স্তর বিশিষ্ট এবং অটো রুট ব্যবহার করে তৈরি করা হয়েছে (ওহ, কি একটি ** ছিদ্র!)। এর সামনে বাটন এবং পাওয়ার ইনডিকেটর LED এবং বাকি অংশ পিছনে। আমি আমার PCB কে JCL PCB দিয়ে তৈরি করেছিলাম, এবং তারা এর সাথে একটি আশ্চর্যজনক কাজ করেছে। পিসিবি পুনরায় তৈরি করার জন্য প্রয়োজনীয় ফাইলগুলি আগে থেকে agগল-ফাইলগুলিতে থাকা উচিত।

আমি সুপারিশ করবো যে আপনি পিসিবিকে নতুন করে ডিজাইন করুন, কারণ আমার কিছু জিনিস আছে যা আমি ভিন্নভাবে করতে চাই। আপনি যদি আমার ডিজাইন পছন্দ করেন, আমার কাছে এখনও (লেখার মত) চারটি অব্যবহৃত বোর্ড আছে যা আমি বিক্রি করতে ইচ্ছুক।

বোর্ডে চারটি ড্রিল হোল আছে যা আমি LCD ডিসপ্লে মাউন্ট করার জন্য ব্যবহার করেছি।

ধাপ 4: কোড আপলোড করা

কোড আপলোড করা হচ্ছে
কোড আপলোড করা হচ্ছে
কোড আপলোড করা হচ্ছে
কোড আপলোড করা হচ্ছে
কোড আপলোড করা হচ্ছে
কোড আপলোড করা হচ্ছে

1284 এবং 328 উভয়ই অবশ্যই কোডের প্রয়োজন এবং আমি যে কোডটি ব্যবহার করেছি তা এখানে পাওয়া যাবে: https://github.com/PlainOldAnders/HAL1284 ArduinoSrc/src এর অধীনে। আমি কেবল কোডটি সংশোধন এবং আপলোড করার জন্য Arduino IDE ব্যবহার করেছি কিন্তু এটি করার আগে, আপনাকে ICs এ বুটলোডারগুলি বার্ন করতে হবে:

ATMega328:

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

328 এর কোড (ArduinoSrc/keypad এর অধীনে) মোটামুটি সহজ। এটি সম্পূর্ণরূপে অ্যাডাফ্রুট_কেপ্যাড-মাস্টার-লাইব্রেরির উপর নির্ভর করে। যদি lib সম্পর্কে কিছু পরিবর্তন হয়, আমি ArduinoSrc/lib এর অধীনে আমার github- পৃষ্ঠায় যে সংস্করণটি ব্যবহার করেছি তা অন্তর্ভুক্ত করেছি।

ATmega1284:

আমি যখন প্রথম আইসি পেয়েছিলাম তখন এটি আমার জন্য কিছুটা কঠিন ছিল। আমি এখান থেকে বুটলোডার পেয়ে শুরু করেছি, এবং ইনস্টল-গাইড অনুসরণ করেছি। বুটলোডার বার্ন করার জন্য, আমি কেবল 328 এর মতো একই কাজ করেছি এবং এখান থেকে সাহায্য পেয়েছি। উভয় আইসির জন্য আমি বুটলোডার জ্বালানো এবং কোড আপলোড করার জন্য শুধু একটি Arduino Uno ব্যবহার করেছি (আপলোড করার সময় Arduino Uno থেকে IC সরানো হয়েছে)।

কোড (ArduinoSrc/HAL1284Basic এর অধীনে) আমার জন্য অনেক জটিল কিন্তু আমি কোডের কিছু অংশ পরিবর্তন করতে পেরেছি:

আমি কয়েকটি কমান্ড যুক্ত করেছি (যারা ম্যানুয়াল। পিডিএফ -এ [এ] দিয়ে চিহ্নিত), এবং আমি অন্যান্য কমান্ডগুলিও পরিবর্তন করেছি:

টোন: টোন কমান্ডটি আগে আরডুইনো এর টোন-ফাংশন ব্যবহার করেছিল, কিন্তু টিভিআউট লাইব্রেরি ব্যবহার করার সময়, এর ফলে বাজারটি সঠিকভাবে কাজ করে না। আমি টিভিআউটের টোন-ফাংশন ব্যবহার করতে এটি পরিবর্তন করেছি, কিন্তু এর অর্থ হল টোন পিনটি 15 পিন হতে হবে (atmega1284 এর জন্য)

সিরিয়াল কমিউনিকেশন: যেহেতু কীবোর্ড DIY, এটি অক্ষর পড়ার জন্য সিরিয়াল কমিউনিকেশন ব্যবহার করে। যেহেতু atmega1284 এখানে ব্যবহৃত হয়, সেখানে দুটি উপলব্ধ সিরিয়াল কমিউনিকেশন লাইন আছে এবং যখন "sercom" সক্ষম করা হয়, তখন কোডটি সিরিয়াল পোর্টের মাধ্যমে (কম্পিউটার বা যেকোনো কিছু থেকে) লেখার অনুমতি দেয়।

রেজোলিউশন: এই প্রকল্পের জন্য ব্যবহৃত মনিটরটি বেশ বোকা, এবং একটি ছোট রেজোলিউশন প্রয়োজন, অন্যথায় ছবি ঝলকানি। যদি একটি ভাল মনিটর ব্যবহার করা হয়, আমি আপনাকে সেটআপ ফাংশনে রেজোলিউশন পরিবর্তন করার পরামর্শ দেব।

ধাপ 5: সমাবেশ

সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ

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

এখানে ব্যবহৃত মনিটর হোল্ডারটি একটি টগল সুইচ (পিসিবিতে "সুইচ" জাম্পারের সাথে সংযুক্ত) এবং মনিটরের জন্য তিনটি নিয়ন্ত্রণ বোতাম রাখার জন্য ডিজাইন করা হয়েছে। ধারক প্লাস্টিকের M3 বোল্ট এবং spacers সঙ্গে fastened হয়।

পাওয়ার প্লাগের জন্য আমি একটি জেএসটি পিসিবি সংযোগকারী ব্যবহার করেছি, যদিও একটি সরু ব্যারেল জ্যাক একটু বেশি মসৃণ হত। বোর্ডকে পাওয়ার জন্য, আমি 12V পাওয়ার সাপ্লাই বা সিরিজের তিনটি 18650 ব্যাটারির মধ্যে সুইচ করেছি। আমার চেয়ে একটি মসৃণ কাউবয় সম্ভবত বোর্ডের জন্য একটি চটকদার ব্যাটারি ধারক ডিজাইন করতে পারে।

ধাপ 6: বাগ এবং ভবিষ্যতের কাজ

তীর কী: তীরচিহ্নগুলি দুর্ঘটনাক্রমে রাখা হয়েছিল এবং খুব বেশি কাজ করে না। এটি নেভিগেশন কঠিন করে তোলে

ফাইল I/O: ফাইল I/O ক্ষমতা আছে কিন্তু এগুলি বাস্তবায়িত হয় না। এটি মোকাবেলা করার জন্য, HAL1284Com সফটওয়্যার বোর্ডে ফাইল আপলোড করতে সক্ষম। EEPROM এ আপলোড করাও সম্ভব।

পিক/পোক: পিক এবং পোক অপ্রচলিত, এবং ঠিকানাগুলি কী তা আমি নিশ্চিত নই।

বিরতি: ব্রেক (Esc) কখনও কখনও সম্পূর্ণ কোডের সাথে গোলমাল করে, যখন অসীম লুপগুলিতে থাকে।

পিন 7: DWRITE High বা AWRITE 255 করার চেষ্টা করার সময় PWM পিন 7 কঠিন হতে পারে। এটি AWRITE 254 এর সাথে ভাল কাজ করে।

ইডিয়ট: UART1 এর মাধ্যমে আপলোড করতে পারাটাও আদর্শ হবে কিন্তু UART0 এর মাধ্যমে আপলোড করা সম্ভব, তাই প্রধান IC বের করে আপলোড করতে হবে। দীর্ঘ সময় ধরে চলার সময় স্ক্রিন এবং ভোল্টেজ রেগুলেটর 5 একটু বেশি গরম হয়ে যায়।

প্রস্তাবিত: