Raspberry Pi Pico দিয়ে গেম তৈরি
রাসবেরি পাই পিকো সিরিজ টিউটোরিয়ালের এই পর্বে Raspberry Pi Pico দিয়ে গেম তৈরি করার পদ্ধতি আলোচনা করব। হালের ক্রেজ ChatGpt’র সাথে আলাপ হয়েছে? ChatGpt কিন্তু আমাদের সাথে কয়েকটি গেমও খেলতে পারে। এর মধ্যে একটি হল, Number game । এক্ষেত্রে চ্যাটজিপিটি একটি সংখ্যা চিন্তা করে এবং আপনাকে সংখ্যাটি ধরতে বলে। ধরে ফেলতে পারলে আপনি জিতবেন। ছোটবেলায় বন্ধুবান্ধবের সাথেও আমরা এরকম কিছু গেম খেলতাম। আজকে এরকম একটা নাম্বার গেম আমরা তৈরী করব, Raspberry Pi Pico দিয়ে। গেমটিতে Raspberry Pi Pico একটি সংখ্যা ভাববে এবং আপনাকে সংখ্যাটি জিজ্ঞেস করবে। আপনার উত্তর তার চিন্তা করা সংখ্যার সাথে মিলেছে নাকি মেলেনি, না মিললে তার চিন্তা করা সংখ্যাটি আসলে কত ছিল, তা-ও জানিয়ে দেবে প্রতিবার খেলা শেষে।
Raspberry Pi Pico দিয়ে গেম তৈরির এক্সপেরিমেন্টে আমরা যা যা শিখতে পারব:
- কিভাবে micropython programming language ব্যবহার করে 4×4 Keypad Matrix এর মাধ্যমে Raspberry Pi Pico তে সংখ্যা ইনপুট দিতে হয়। এটি জানা জরুরি। কারণ, রাসবেরি পাই পিকো দিয়ে ক্যালকুলেটর, পাসওয়ার্ডভিত্তিক যেকোনো ডিভাইস তৈরী করতে হলে করতে হলে কিপ্যাড ব্যবহার করতেই হবে।
- একটি 16×2 LCD কে কিভাবে Raspberry Pi Pico এর সাথে সংযুক্ত করতে হয়।
- কিভাবে micropython programming language ব্যবহার করে LCD তে ইংরেজি বর্ণ, সংখ্যা প্রিন্ট করা যায়।
- Micropython/Python এর মাধ্যমে Random number generation
- Micropython/Python এর মাধ্যমে String to int conversion
প্রয়োজনীয় যন্ত্রপাতি | পরিমাণ | প্রোডাক্ট লিংক |
Raspberry Pi Pico with header | 1 | লিংক |
16×2 LCD with header | 1 | লিংক |
4×4 Keypad Matrix (Flat Button) | 1 | লিংক |
Volume resistor POT-10K | 1 | লিংক |
Breadboard | 1 | লিংক |
Male to male jumpers | 12 | লিংক |
Male to female jumpers | 8 | লিংক |
Micro USB cable | 1 | লিংক |
সার্কিট কানেকশন?
নিচের সার্কিটটি ব্রেডবোর্ডে তৈরী করুন।
Raspberry Pi Pico | 16×2 LCD with header |
40 | VDD,A,1st pin of the 10K POT |
38 | VSS,K,RW,2nd pin of the 10K POT |
21 | RS |
22 | E |
24 | D4 |
25 | D5 |
26 | D6 |
27 | D7 |
Vo,3rd pin of the 10K POT |
4×4 keypad Matrix ও Raspberry Pi Pico এর মধ্যে নিচের কানেকশনটি সম্পন্ন করুন।
Rascpberry Pi Pico | 4×4 Keypad Matrix |
12 | R1 |
11 | R2 |
10 | R3 |
9 | R4 |
7 | C1 |
6 | C2 |
5 | C3 |
4 | C4 |
Raspberry Pi Pico দিয়ে গেম তৈরির পুরো সেটআপ ছিল এরকম:
কোড:
- কোড লেখা এবং আপলোড করার জন্য আমরা Thonny IDE ব্যবহার করব।
- প্রথমে নিচের ফাইলদুটি ডাউনলোড করুন।
- এবার Thonny IDE ব্যবহার করে ফাইলদুটি Raspberry Pi Pico তে Save করুন।
- এবার নতুন একটি প্রজেক্ট ওপেন করুন।
- নিচের কোডটি লিখুন।
import random import machine import utime from machine import Pin from gpio_lcd import GpioLcd lcd = GpioLcd(rs_pin=Pin(16), enable_pin=Pin(17), d4_pin=Pin(18), d5_pin=Pin(19), d6_pin=Pin(20), d7_pin=Pin(21), num_lines=2, num_columns=16) # Create a map between keypad buttons and characters matrix_keys = [['1', '2', '3', 'A'], ['4', '5', '6', 'B'], ['7', '8', '9', 'C'], ['*', '0', '#', 'D']] # PINs according to schematic - Change the pins to match with your connections keypad_rows = [9,8,7,6] keypad_columns = [5,4,3,2] # Create two empty lists to set up pins ( Rows output and columns input ) col_pins = [] row_pins = [] # Loop to assign GPIO pins and setup input and outputs for x in range(0,4): row_pins.append(Pin(keypad_rows[x], Pin.OUT)) row_pins[x].value(1) col_pins.append(Pin(keypad_columns[x], Pin.IN, Pin.PULL_DOWN)) col_pins[x].value(0) ##############################Scan keys #################### print("Please enter a key from the keypad") lcd.putstr("Let's play number game") utime.sleep(1) lcd.clear() lcd.putstr("What number am I thinking?") def scankeys(): for row in range(4): for col in range(4): row_pins[row].high() key = None if col_pins[col].value() == 1: random_number1 = random.randint(0, 9) random_number=str(random_number1) print("You have pressed:", matrix_keys[row][col]) key_press = matrix_keys[row][col] lcd.clear() lcd.putstr(key_press) utime.sleep(0.3) if(random_number==key_press): lcd.clear() lcd.putstr("Right answer!") print(random_number1) utime.sleep(1) lcd.clear() lcd.putstr("What number am I thinking?") else: lcd.clear() lcd.putstr("Sorry it's ") lcd.putstr(random_number) print(random_number1) utime.sleep(1) lcd.clear() lcd.putstr("What number am I thinking?") row_pins[row].low() while True: scankeys()
- কোডটি Run করুন।
- খেলা শুরু হয়ে গেছে।
- নাম্বার ইনপুট দিন।
- উত্তর যখন ভুল
- উত্তর সঠিইইইইক!
রেফারেন্সঃ Vernon Peens-Github
তো এই ছিল Raspberry Pi Pico দিয়ে গেম তৈরি করার পদ্ধতি। চাইলে আপনিও এই এক্সপেরিমেন্ট করতে পারেন, আমরা কম্পোনেন্টের লিংক সহ প্রয়োজনীয় সোর্স দিয়েছি। যারা Raspberry Pi Pico পরিচিতি পর্ব, প্রোগ্রামিং পর্ব, এবং Raspberry Pi Pico দিয়ে তাপমাত্রা নির্ণয় করার পদ্ধতির ব্লগ টিউটোরিয়াল পড়েননি তারা লিংক ভিজিট করে দেখতে পারেন টেক্সটের সাথে লিংক দেওয়া আছে। আজ এই পর্যন্তই ধন্যবাদ আমাদের সাথে যুক্ত থাকার জন্য।
এই টিউটোরিয়াল-এ ChatGPT এর সাথে সম্পৃক্ততা কি? Random Number তো library থেকে জেনারেট করা হয়েছেঃ
random_number1 = random.randint(0, 9)
random_number=str(random_number1)
ChatGPT এর কাজ কি এখানে?
চ্যাট জিপিটির সাথে সম্পৃক্ত এই কথা কোথাও লেখা হয়নি। চ্যাট জিপিটি এরকম নাম্বার ধরার একটা গেম শুরুর দিকে খেলতো। ওই একই গেম এই প্রজেক্টে তৈরী করা হয়েছে। ইন্ট্রোতে এই কথাটাই লেখা