* Fixed the .png and .gif file hyperlinks
* Fixed the .png file hyperlinks
* [BN Translation] Quick Fix wio.terminal.bn.md
I have fixed the readme format issues.
* [BN Translation] Quick Fix pi.bn.md
Co-authored-by: Jim Bennett <jim.bennett@microsoft.com>
[রাস্পবেরি পাই](https://raspberrypi.org) হলো একটি সিংগেল বোর্ড কম্পিউটার । আমরা বিভিন্ন ইকোসিস্টেমের সেন্সর এবং অ্যাকচুয়েটর ব্যবহার করতে পারি, আর এই লেসনে আমরা [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html) নামের বেশ সমৃদ্ধ একটি হার্ডওয়্যার ইকোসিস্টেম ব্যবহার করবো। আমাদের রাস্পবেরি পাই (সংক্ষেপে "পাই") এর কোডিং এবং Grove সেন্সরগুলো আমরা নিয়ন্ত্রণ করবো পাইথন ল্যাংগুয়েজে।
[রাস্পবেরি পাই](https://raspberrypi.org) হলো একটি সিংগেল বোর্ড কম্পিউটার । আমরা বিভিন্ন ইকোসিস্টেমের সেন্সর এবং অ্যাকচুয়েটর ব্যবহার করতে পারি, আর এই লেসনে আমরা [Grove](https://www.seeedstudio.com/category/Grove-c-1003.html) নামের বেশ সমৃদ্ধ একটি হার্ডওয়্যার ইকোসিস্টেম ব্যবহার করবো। আমাদের রাস্পবেরি পাই (সংক্ষেপে "পাই") এর কোডিং এবং Grove সেন্সরগুলো আমরা নিয়ন্ত্রণ করবো পাইথন ল্যাংগুয়েজে।


## সেটাপ
## সেটাপ
@ -16,7 +16,7 @@ Grove বেস হ্যাটটি রাস্পবেরি পাই এ
১. গ্রোভ বেস টুপিটি রাস্পবেরি পাই এর সাথে সংযুক্ত করতে হবে। নিচের ছবির মতো, জিপিআইও পিনগুলো বরাবর আমরা গ্রোভ হ্যাট বসাতে পারবো।
১. গ্রোভ বেস টুপিটি রাস্পবেরি পাই এর সাথে সংযুক্ত করতে হবে। নিচের ছবির মতো, জিপিআইও পিনগুলো বরাবর আমরা গ্রোভ হ্যাট বসাতে পারবো।


২. কীভাবে রাস্পবেরি পাই তে কাজ করতে চাচ্ছি, সে সম্পর্কিত সিদ্ধান্ত নিয়ে - নিচের যেকোন একটি প্রাসঙ্গিক সেকশন এ যেতে হবে
২. কীভাবে রাস্পবেরি পাই তে কাজ করতে চাচ্ছি, সে সম্পর্কিত সিদ্ধান্ত নিয়ে - নিচের যেকোন একটি প্রাসঙ্গিক সেকশন এ যেতে হবে
@ -87,7 +87,7 @@ Grove বেস হ্যাটটি রাস্পবেরি পাই এ
1. রাস্পবেরি পাই ইমেজার চালু করতে হবে ।
1. রাস্পবেরি পাই ইমেজার চালু করতে হবে ।
1. রাস্পবেরি পাই ইমেজার থেকে **CHOOSE OS** সিলেক্ট করি। তারপর *Raspberry Pi OS (Other)* সিলেক্ট করতে হবে *Raspberry Pi OS Lite (32-bit)* এর পরে ।
1. রাস্পবেরি পাই ইমেজার থেকে **CHOOSE OS** সিলেক্ট করি। তারপর *Raspberry Pi OS (Other)* সিলেক্ট করতে হবে *Raspberry Pi OS Lite (32-bit)* এর পরে ।


> 💁 Raspberry Pi OS Lite হলো মূলত Raspberry Pi OS এরই একটি ভার্সন যার ডেস্কটপ ইন্টারফেস বা এই সংক্রান্ত ট্যুল নেই। হেডলেস পাই তে এসব দরকার নেই বলেই লাইট ভার্সন নেয়া হচ্ছে যাতে প্রক্রিয়াটি সংক্ষিপ্ত হয় এবং দ্রুত ব্যুট করা যায়।
> 💁 Raspberry Pi OS Lite হলো মূলত Raspberry Pi OS এরই একটি ভার্সন যার ডেস্কটপ ইন্টারফেস বা এই সংক্রান্ত ট্যুল নেই। হেডলেস পাই তে এসব দরকার নেই বলেই লাইট ভার্সন নেয়া হচ্ছে যাতে প্রক্রিয়াটি সংক্ষিপ্ত হয় এবং দ্রুত ব্যুট করা যায়।
@ -212,7 +212,7 @@ Grove বেস হ্যাটটি রাস্পবেরি পাই এ
1. এই ফোল্ডারটি ভিএস কোডের মাধ্যমে ওপেন করতে হবেঃ *File -> Open...* তারপর *nightlight* folder সিলেক্ট করে **OK** তে ক্লিক করতে হবে।
1. এই ফোল্ডারটি ভিএস কোডের মাধ্যমে ওপেন করতে হবেঃ *File -> Open...* তারপর *nightlight* folder সিলেক্ট করে **OK** তে ক্লিক করতে হবে।


1. `app.py` ফাইলটি ভিএস কোড এক্সপ্লোরারের মাধ্যমে ওপেন করে, নিম্নের কোডটি লিখি
1. `app.py` ফাইলটি ভিএস কোড এক্সপ্লোরারের মাধ্যমে ওপেন করে, নিম্নের কোডটি লিখি
@ -237,6 +237,6 @@ Grove বেস হ্যাটটি রাস্পবেরি পাই এ
Hello World!
Hello World!
```
```
> 💁 এই সম্পূর্ণ কোডটি পাওয়া যাবে [code/pi](code/pi) ফোল্ডারে ।
> 💁 এই সম্পূর্ণ কোডটি পাওয়া যাবে [code/pi](../code/pi) ফোল্ডারে ।
[সীড স্টুডিও](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) এর Wio Terminal একটি আরডুইনো সাপোর্টেড মাইক্রোকন্ট্রোলার, যাতে ওয়াইফাই সংযোগ এবং কিছু সেন্সর ও অ্যাকচুয়েটর বিল্ট-ইন রয়েছে। এছাড়াও এর সাথে রয়েছে কিছু পোর্ট, অতিরিক্ত সেন্সর ও অ্যাকচুয়েটর সংযোগ এবং এটি নির্মাণ করা হয়েছে একটি হার্ডওয়্যার ইকোসিস্টেম ব্যবহার করে যার নাম
[সীড স্টুডিও](https://www.seeedstudio.com/Wio-Terminal-p-4509.html) এর Wio Terminal একটি আরডুইনো সাপোর্টেড মাইক্রোকন্ট্রোলার, যাতে ওয়াইফাই সংযোগ এবং কিছু সেন্সর ও অ্যাকচুয়েটর বিল্ট-ইন রয়েছে। এছাড়াও এর সাথে রয়েছে কিছু পোর্ট, অতিরিক্ত সেন্সর ও অ্যাকচুয়েটর সংযোগ এবং এটি নির্মাণ করা হয়েছে একটি হার্ডওয়্যার ইকোসিস্টেম ব্যবহার করে যার নাম
@ -19,12 +19,12 @@ Wio Terminal ব্যবহার করার জন্য, আমাদের
২. এরপর ভি এস কোড platformIO এক্সটেনশনটি ইনস্টল করতে হবে। এই এক্সটেনশনটি ভি এস কোডে ইনস্টল করতে [PlatformIO extension documentation](https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide&WT.mc_id=academic-17441-jabenn) এ দেওয়া দিকির্দেশনাগুলো পড়ে দেখতে পারেন। এটি একটি ভি এস কোড এক্সটেনশন যা সি/সি++ ভাষায় মাইক্রোকন্ট্রোলার প্রোগ্রামিংকে সাপোর্ট করে। এই এক্সটেনশনটি মাইক্রোসফট সি/সি++ এর উপর নির্ভর করে , সি অথবা সি++ ভাষা নিয়ে কাজ করার জন্য। উল্লেখ্য, এই সি/সি++ এক্সটেনশন সয়ংক্রিয়ভাবে ইনস্টল হয়ে যায় যখন কেউ platformIO ইনস্টল করে।
২. এরপর ভি এস কোড platformIO এক্সটেনশনটি ইনস্টল করতে হবে। এই এক্সটেনশনটি ভি এস কোডে ইনস্টল করতে [PlatformIO extension documentation](https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide&WT.mc_id=academic-17441-jabenn) এ দেওয়া দিকির্দেশনাগুলো পড়ে দেখতে পারেন। এটি একটি ভি এস কোড এক্সটেনশন যা সি/সি++ ভাষায় মাইক্রোকন্ট্রোলার প্রোগ্রামিংকে সাপোর্ট করে। এই এক্সটেনশনটি মাইক্রোসফট সি/সি++ এর উপর নির্ভর করে , সি অথবা সি++ ভাষা নিয়ে কাজ করার জন্য। উল্লেখ্য, এই সি/সি++ এক্সটেনশন সয়ংক্রিয়ভাবে ইনস্টল হয়ে যায় যখন কেউ platformIO ইনস্টল করে।
1. এখন, আমরা আমাদের Wio Terminal কে কম্পিউটার এর সাথে সংযুক্ত করব। এটির নিচের দিকে একটি ইউএসবি-সি পোর্ট আছে, সেটিকে আমরা আমাদের কম্পিউটার এর ইউএসবি পোর্ট এর সাথে সংযোগ দিব। উইও টার্মিনালে ইউএসবি-সি ও ইউএসবি-এ ক্যাবল থাকে। যদি আমাদের কম্পিউটারে শুধু ইউএসবি-সি পোর্ট থেকে, তাহলে আমাদের হয় ইউএসবি-সি ক্যাবল অথবা ইউএসবি-এ ক্যাবলের প্রয়োজন হবে ইউএসবি-সি অ্যাডাপ্টার এ সংযোগ দেওয়ার জন্য।
৩. এখন, আমরা আমাদের Wio Terminal কে কম্পিউটার এর সাথে সংযুক্ত করব। এটির নিচের দিকে একটি ইউএসবি-সি পোর্ট আছে, সেটিকে আমরা আমাদের কম্পিউটার এর ইউএসবি পোর্ট এর সাথে সংযোগ দিব। উইও টার্মিনালে ইউএসবি-সি ও ইউএসবি-এ ক্যাবল থাকে। যদি আমাদের কম্পিউটারে শুধু ইউএসবি-সি পোর্ট থেকে, তাহলে আমাদের হয় ইউএসবি-সি ক্যাবল অথবা ইউএসবি-এ ক্যাবলের প্রয়োজন হবে ইউএসবি-সি অ্যাডাপ্টার এ সংযোগ দেওয়ার জন্য।
1. [Wio Terminal Wiki WiFi Overview documentation](https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/) এ উল্লেখিত দিকনির্দেশনা গুলোকে মেনে আমরা আমাদের উইও টার্মিনাল সেটআপ ও ফার্মওয়্যার আপডেট করে ফেলি।
৪. [Wio Terminal Wiki WiFi Overview documentation](https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/) এ উল্লেখিত দিকনির্দেশনা গুলোকে মেনে আমরা আমাদের উইও টার্মিনাল সেটআপ ও ফার্মওয়্যার আপডেট করে ফেলি।
+## হ্যালো ওয়ার্ল্ড
### হ্যালো ওয়ার্ল্ড
প্রথাগতভাবে, কোনো নতুন প্রোগ্রামিং ল্যাঙ্গুয়েজ অথবা টেকনোলজি নিয়ে কাজ শুরু করার সময় আমরা একটি "Hello World" application লিখি, একটি ছোট application যা আউটপুট হিসেবে `"Hello World"` লেখাটি দেখায়। এতে করে আমরা বুঝি যে আমাদের প্রোগ্রামটিতে সকল টুল সঠিকভাবে কাজ করছে।
প্রথাগতভাবে, কোনো নতুন প্রোগ্রামিং ল্যাঙ্গুয়েজ অথবা টেকনোলজি নিয়ে কাজ শুরু করার সময় আমরা একটি "Hello World" application লিখি, একটি ছোট application যা আউটপুট হিসেবে `"Hello World"` লেখাটি দেখায়। এতে করে আমরা বুঝি যে আমাদের প্রোগ্রামটিতে সকল টুল সঠিকভাবে কাজ করছে।
@ -44,29 +44,29 @@ Wio Terminal ব্যবহার করার জন্য, আমাদের
৩. আমরা platformIO আইকনটি সাইড মেন্যু বারে দেখতে পাবো:
৩. আমরা platformIO আইকনটি সাইড মেন্যু বারে দেখতে পাবো:


এই মেন্যু আইটেমটি সিলেক্ট করে, সিলেক্ট করি *PIO Home -> Open*
এই মেন্যু আইটেমটি সিলেক্ট করে, সিলেক্ট করি *PIO Home -> Open*


৪. Welcome স্ক্রীন থেকে **+ New Project** বাটনটিতে ক্লিক করি।
৪. Welcome স্ক্রীন থেকে **+ New Project** বাটনটিতে ক্লিক করি।


platformIO এখন wio terminal এর কোডগুলোকে compile করার জন্য প্রয়োজনীয় কম্পনেন্টস ডাউনলোড করে নেবে এবং আমাদের প্রজেক্টটি create করে নেবে। পুরো প্রক্রয়াটি সম্পন্ন হতে কয়েক মিনিট সময় লাগতে পারে।
platformIO এখন wio terminal এর কোডগুলোকে compile করার জন্য প্রয়োজনীয় কম্পনেন্টস ডাউনলোড করে নেবে এবং আমাদের প্রজেক্টটি create করে নেবে। পুরো প্রক্রয়াটি সম্পন্ন হতে কয়েক মিনিট সময় লাগতে পারে।
@ -128,9 +128,9 @@ Wio Terminal ব্যবহার করার জন্য, আমাদের
হ্যালো ওয়ার্ল্ড অ্যাপটি লিখি।
হ্যালো ওয়ার্ল্ড অ্যাপটি লিখি।
1. `main.cpp` ফাইলটি ভি এস কোড থেকে ওপেন করি।
১.`main.cpp` ফাইলটি ভি এস কোড থেকে ওপেন করি।
1. কোডটি এমনভাবে লিখি যেনো এটি নিম্নোক্ত কোডটির সাথে মিলে যায়:
২.কোডটি এমনভাবে লিখি যেনো এটি নিম্নোক্ত কোডটির সাথে মিলে যায়:
```cpp
```cpp
#include<Arduino.h>
#include<Arduino.h>
@ -154,20 +154,19 @@ Wio Terminal ব্যবহার করার জন্য, আমাদের
`setup` ফাংশনটি একটি connection কে initialize করে সিরিয়াল পোর্ট এর সাথে, সেই usb পোর্টটি যেটি আমাদের কম্পিউটারকে wio terminal এর সাথে সংযুক্ত করেছে। `9600` প্যারামিটারটি হলো [baud rate](https://wikipedia.org/wiki/Symbol_rate) (যা সিম্বল রেট হিসেবেও পরিচিত) সিরিয়াল পোর্ট এর মধ্য দিয়ে যাওয়া ডাটার speed (bits per second). এই সেটিং দ্বারা আমরা বোঝাই ৯৬০০ bits (০ এবং ১) ডাটা পাঠানো হচ্ছে প্রতি সেকেন্ডে। এরপর এটি সিরিয়াল পোর্টটি ready state এ যাওয়ার জন্য wait করে।
`setup` ফাংশনটি একটি connection কে initialize করে সিরিয়াল পোর্ট এর সাথে, সেই usb পোর্টটি যেটি আমাদের কম্পিউটারকে wio terminal এর সাথে সংযুক্ত করেছে। `9600` প্যারামিটারটি হলো [baud rate](https://wikipedia.org/wiki/Symbol_rate) (যা সিম্বল রেট হিসেবেও পরিচিত) সিরিয়াল পোর্ট এর মধ্য দিয়ে যাওয়া ডাটার speed (bits per second). এই সেটিং দ্বারা আমরা বোঝাই ৯৬০০ bits (০ এবং ১) ডাটা পাঠানো হচ্ছে প্রতি সেকেন্ডে। এরপর এটি সিরিয়াল পোর্টটি ready state এ যাওয়ার জন্য wait করে।
+ `loop` ফাংশনটি `Hello World!` লাইনটির character গুলো এবং একটি new line character সিরিয়াল পোর্টে পাঠায়। এরপর, এটি ৫০০০ মিলি সেকেন্ড সময়ের জন্য sleep state এ যায়। Loop শেষ হওয়ার পর, এটি আবার রান করে এবং চলতে থাকে যতক্ষণ পর্যন্ত মাইক্রোকন্ট্রোলারটি ON থাকে।
`loop` ফাংশনটি `Hello World!` লাইনটির character গুলো এবং একটি new line character সিরিয়াল পোর্টে পাঠায়। এরপর, এটি ৫০০০ মিলি সেকেন্ড সময়ের জন্য sleep state এ যায়। Loop শেষ হওয়ার পর, এটি আবার রান করে এবং চলতে থাকে যতক্ষণ পর্যন্ত মাইক্রোকন্ট্রোলারটি ON থাকে।
৩. কোডটি বিল্ড করে wio terminal এ আপলোড করি:
1. কোডটি বিল্ড করে wio terminal এ আপলোড করি
i. ভি এস কোড command palette ওপেন করি।
1. ভি এস কোড command palette ওপেন করি।
ii. টাইপ করি `PlatformIO Upload` আপলোড অপশনটি খুঁজে পাওয়ার জন্য, এরপর *PlatformIO: Upload* সিলেক্ট করি।


যদি দরকার হয়, platformIO এখন অটোমেটিক ভাবে কোডটিকে বিল্ড করবে, আপলোড করার পূর্বে।
যদি দরকার হয়, platformIO এখন অটোমেটিক ভাবে কোডটিকে বিল্ড করবে, আপলোড করার পূর্বে।
1. কোডটি কম্পাইল হয়ে wio terminal এ আপলোড হয়ে যাবে
iii. কোডটি কম্পাইল হয়ে wio terminal এ আপলোড হয়ে যাবে
> 💁 আমরা যদি MacOS ব্যাবহার করে থাকি, একটি *DISK NOT EJECTED PROPERLY* notification দেখতে পাবো। এটা এজন্যে দেখায় যে, wio terminal টি মাউন্টেড হয় ড্রাইভ হিসেবে যা কিনা ফ্লাশিং প্রসেসের একটি পার্ট, এবং এটি বিচ্ছিন্ন হয়ে যায় যখন compiled code টি আমদর ডিভাইস এ লেখা। আমরা এই নোটিফিকেশনটি ইগনোর করতে পারি।
> 💁 আমরা যদি MacOS ব্যাবহার করে থাকি, একটি *DISK NOT EJECTED PROPERLY* notification দেখতে পাবো। এটা এজন্যে দেখায় যে, wio terminal টি মাউন্টেড হয় ড্রাইভ হিসেবে যা কিনা ফ্লাশিং প্রসেসের একটি পার্ট, এবং এটি বিচ্ছিন্ন হয়ে যায় যখন compiled code টি আমদর ডিভাইস এ লেখা। আমরা এই নোটিফিকেশনটি ইগনোর করতে পারি।
@ -175,11 +174,11 @@ Wio Terminal ব্যবহার করার জন্য, আমাদের
wio terminal এর একটি serial monitor থাকে যা wio terminal থেকে usb পোর্ট এর মাধ্যমে কতটুকু ডাটা পাঠানো হয়েছে তা দেখে। আমরা `Serial.println("Hello World");` কমান্ডটির মাধ্যমে কতটুকু ডাটা পাঠানো হয়েছে তা মনিটর করতে পারবো।
wio terminal এর একটি serial monitor থাকে যা wio terminal থেকে usb পোর্ট এর মাধ্যমে কতটুকু ডাটা পাঠানো হয়েছে তা দেখে। আমরা `Serial.println("Hello World");` কমান্ডটির মাধ্যমে কতটুকু ডাটা পাঠানো হয়েছে তা মনিটর করতে পারবো।
1. ভি এস কোড command palette ওপেন করি
১. ভি এস কোড command palette ওপেন করি
1. `PlatformIO Serial` টাইপ করি serial monitor অপশনটি খুঁজে পাওয়া জন্য, সিলেক্ট *PlatformIO: Serial Monitor*
২. `PlatformIO Serial` টাইপ করি serial monitor অপশনটি খুঁজে পাওয়া জন্য, সিলেক্ট *PlatformIO: Serial Monitor*


এখন একটি নতুন টার্মিনাল ওপেন হবে যেখানে সিরিয়াল পোর্টের মাধ্যমে যত ডাটা পাঠানো হয়েছে তা দেখা যাবে:
এখন একটি নতুন টার্মিনাল ওপেন হবে যেখানে সিরিয়াল পোর্টের মাধ্যমে যত ডাটা পাঠানো হয়েছে তা দেখা যাবে:
@ -196,6 +195,6 @@ wio terminal এর একটি serial monitor থাকে যা wio terminal
serial monitor এ প্রতি ৫ সেকেন্ডে `Hello World` প্রিন্ট হবে।
serial monitor এ প্রতি ৫ সেকেন্ডে `Hello World` প্রিন্ট হবে।
> 💁 আমরা উক্ত কোডটি [code/wio-terminal](code/wio-terminal) ফোল্ডারে খুঁজে পাবো।
> 💁 আমরা উক্ত কোডটি [code/wio-terminal](../code/wio-terminal) ফোল্ডারে খুঁজে পাবো।