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



ভূমিকা
ম্যাজিক হ্যান্ড প্রতিবন্ধী এবং মোটর দক্ষতার প্রতিবন্ধী ব্যক্তিদের নকল পরিবেশে অঙ্কন এবং লেখার সৃজনশীলতা উপভোগ করতে দেয়। ম্যাজিক হ্যান্ড একটি পরিধানযোগ্য গ্লাভস যা আপনার তর্জনীর গতি অনুভব করে এবং এটি একটি কম্পিউটার স্ক্রিনে লাইন অঙ্কনে অনুবাদ করে।
উপকরণ প্রয়োজন
LSM9DOF ব্রেকআউট বোর্ড --- $ 24.95 ---
ওয়াইফাই সহ অ্যাডাফ্রুট পালক --- $ 18.95 ---
মহিলা/মহিলা তারগুলি --- $ 1.95 ---
টেপ/ভেলক্রো স্ট্রিপ --- $ 3
সমান শক্তির দুটি চুম্বক --- দামের তারতম্য
কিভাবে এটা কাজ করে
একটি অ্যাকসিলরোমিটার ব্যবহার করে, আমরা y- অক্ষের জন্য ত্বরণ তথ্য সংগ্রহ করতে পারি যা ব্যবহারকারীর আঙ্গুল কখন উপরে ও নিচে চলে যাচ্ছে তা নির্ধারণ করতে আমাদের সাহায্য করবে। এই কারণে যে আমাদের অ্যাকসিলরোমিটার পৃথিবীর কেন্দ্রের সাথে ত্বরণ পরিমাপ করে আমরা x- অক্ষ (বাম বা ডান) এর ত্বরণ নির্ধারণ করতে পারি না। সৌভাগ্যবশত LSM9DOF ব্রেকআউট বোর্ডে একটি ম্যাগনেটোমিটার রয়েছে যা আমাদের চৌম্বক ক্ষেত্রের তথ্য সংগ্রহ করতে দেয়। আমরা 30 সেমি দূরে দুটি চুম্বক রাখি এবং এর মধ্যে গ্লাভস রাখি। যদি চৌম্বকীয় তথ্য ইতিবাচক হয় তবে আমরা জানি গ্লাভসটি ডানদিকে চলছে এবং তদ্বিপরীত। অ্যাকসিলরোমিটার/ম্যাগনেটোমিটারে সমস্ত ডেটা সংগ্রহ করার পরে এটি ওয়াইফাই কম্পিউটারের সাথে সংযুক্ত তারের মাধ্যমে ডেটা পাঠায় এবং তারপরে কম্পিউটারে ডেটা ফরওয়ার্ড করে যা আমরা আমাদের কোডে ব্যবহার করতে পারি।
ধাপ 1: শারীরিক প্রোটোটাইপ 1


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


আমাদের চূড়ান্ত প্রোটোটাইপ হল ভেলক্রো স্ট্র্যাপের সাথে মিলিত একটি নিয়মিত গ্লাভস যা যেকোন কব্জির সাথে সামঞ্জস্যযোগ্য। গ্লাভস এবং স্ট্র্যাপ একসঙ্গে সেলাই করা হয়, এবং ইলেকট্রনিক ডিভাইসগুলি ভেলক্রোর মাধ্যমে গ্লাভসের সাথে সংযুক্ত থাকে।
গ্লাভের ২ য় প্রোটোটাইপ তৈরির পদক্ষেপ:
- একটি গ্লাভস কিনুন, গ্লাভস উপাদান কোন ব্যাপার না।
- একটি ভেলক্রো কব্জি চাবুক কিনুন
- একটি বহনযোগ্য ব্যাটারি কিনুন
- স্টিকি ভেলক্রো কিনুন
- একটি সেলাই সুই দিয়ে, ভেলক্রো কব্জির চাবুকটি গ্লাভসের গোড়ায় সংযুক্ত করুন
- কব্জি চাবুক বিভিন্ন কব্জি মাপ সামঞ্জস্য করতে সক্ষম হওয়া উচিত।
- অ্যাকসিলরোমিটারের গোড়ায় স্টিকি টেপ সংযুক্ত করুন এবং এটি গ্লাভসের তর্জনীর সাথে সংযুক্ত করুন
- পালকের সাথে স্টিকি টেপ সংযুক্ত করুন এবং এটি গ্লাভসের শীর্ষে সংযুক্ত করুন।
- তারগুলি ব্যবহার করে পালকের 3V3 পিনকে অ্যাকসিলরোমিটারের ভিআইএন পিনের সাথে সংযুক্ত করুন
- তারের ব্যবহার করে পালকের GND পিনকে GND পিনের সাথে অ্যাকসিলরোমিটারের সাথে সংযুক্ত করুন।
- তারের ব্যবহার করে পালকটিতে এসসিএল পিনকে এসসিএল পিন অ্যাকসিলরোমিটারে সংযুক্ত করুন।
- তারগুলি ব্যবহার করে পালকের এসডিএ পিনকে এসডিএ পিনের সাথে অ্যাক্সিলারোমিটারের সাথে সংযুক্ত করুন।
- কমপক্ষে একটি 5 ভোল্ট ব্যাটারি ইউএসবি এর মাধ্যমে পালকের সাথে সংযুক্ত করুন যাতে বিদ্যুৎ পাওয়া যায়।
ধাপ 3: চুম্বক

ধাপ 1: সমান শক্তির দুটি চুম্বক একে অপরের থেকে রাখুন।
ধাপ 2: দুটি চুম্বকের মধ্যে 30 সেমি ব্যবধান পরিমাপ করুন
ধাপ 3: দুটি চুম্বকের ঠিক মাঝখানে ম্যাগনেটোমিটার রাখুন। মাঝখানে থাকা অবস্থায় আপনার 0 এর কাছাকাছি ডেটা পাওয়া উচিত। যদি আপনি শূন্য পড়ার ধাপ 5 এ যান।
ধাপ 4: যদি রিডিং শূন্য বা শূন্যের কাছাকাছি না হয় তাহলে আপনাকে অবশ্যই চুম্বকের দূরত্ব সামঞ্জস্য করতে হবে। যদি রিডিং নেগেটিভ হয় তাহলে বাম চুম্বককে একটি সেমি বা 2 বামে সরান বা পড়া শূন্য না হওয়া পর্যন্ত। যদি এটি ইতিবাচক হয় তবে সঠিক চুম্বক ছাড়া একই কাজ করুন।
ধাপ 5: কোড লিখুন যা ম্যাগনেটোমিটার থেকে ডেটা গ্রহণ করে এবং এটি ইতিবাচক বা নেতিবাচক হলে পড়ে। যদি ধনাত্মক হয় তবে কোডটি ডানদিকে একটি রেখা আঁকুন এবং যদি নেতিবাচক একটি বামরেখা আঁকেন।
ধাপ 4: কোড

github.iu.edu/ise-e101-F17/MuscleMemory-Sw…
ভূমিকা:
অ্যাকসিলরোমিটার থেকে ডেটা প্রক্রিয়া করার জন্য, অ্যাডাফ্রুট পালক এবং ডেটা প্রক্রিয়া করে এমন সার্ভারের মধ্যে একটি ক্লায়েন্ট/সার্ভারের সম্পর্ক স্থাপন করতে হবে (একটি ল্যাপটপ/ডেস্কটপে চলমান)। দুটি কোড ফাইল তৈরি করতে হবে: একটি ক্লায়েন্টের জন্য (অ্যাডাফ্রুট পালক), এবং অন্যটি সার্ভারের জন্য (এই ক্ষেত্রে, জারোডের ল্যাপটপ)। ক্লায়েন্ট C ++ এ লেখা হয়, এবং সার্ভারটি পাইথনে লেখা হয়। ক্লায়েন্টের জন্য ব্যবহৃত ভাষাটি আর্ডুইনো প্রধানত একটি C ++ ভাষা, এবং এটি ভিন্ন ভাষা ব্যবহার করার জন্য এটি পরিবর্তন করা কঠিন। সার্ভারটি যে কোন ভাষায় লেখা যেতে পারে, যতক্ষণ এটির নেটওয়ার্ক বৈশিষ্ট্য রয়েছে।
ক্লায়েন্ট সেট আপ করা:
প্রথমত, আমরা ক্লায়েন্ট কোড সেটআপ করব। বেশিরভাগ ওয়াইফাই সংযোগ কোড অ্যাডাফ্রুট লাইব্রেরির মাধ্যমে সহজেই পাওয়া যায়। আমরা প্রাসঙ্গিক ক্লাস অন্তর্ভুক্ত করে শুরু করি।
#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত
কিছু ভেরিয়েবল সেট করুন যা পুরো কোড জুড়ে ব্যবহার করা হবে।
// একটি নেটওয়ার্ক const char* ssid = "MMServer" এর সাথে সংযোগ করুন; const char* password = "MMServer-Password"; // সার্ভারের আইপি এবং পোর্ট যা ডাটা কনস্ট চার* হোস্ট = "149.160.251.3" পাবে; const int port = 12347; বুল সংযুক্ত = মিথ্যা;
// মোশন ডিটেক্টর শুরু করুন
Adafruit_LSM9DS0 lsm = Adafruit_LSM9DS0 (1000);
ওয়াইফাই ক্লায়েন্ট ক্লায়েন্ট;
একটি সেটআপ () ফাংশন তৈরি করুন যা পালক শুরু হওয়ার সাথে সাথেই চালানো হবে।
// ওয়াইফাই সংযোগ সেটআপ করুন, এবং সার্ভারের সাথে সংযুক্ত থাকুন সেটআপ () {Serial.begin (9600); বিলম্ব (100);
Serial.println ();
Serial.println (); সিরিয়াল.প্রিন্ট ("এর সাথে সংযুক্ত হচ্ছে"); Serial.println (ssid); // ওয়াইফাই ওয়াইফাই শুরু করুন (এসএসআইডি, পাসওয়ার্ড); // সংযুক্ত হচ্ছে … যখন (WiFi.status ()! = WL_CONNECTED) {বিলম্ব (500); সিরিয়াল.প্রিন্ট ("।"); } // সফলভাবে WiFi Serial.println ("") এর সাথে সংযুক্ত; Serial.println ("ওয়াইফাই সংযুক্ত"); Serial.println ("IP ঠিকানা:"); Serial.println (WiFi.localIP ());
#ifndef ESP8266
যখন (! সিরিয়াল); #endif Serial.begin (9600); Serial.println ("সেন্সর পরীক্ষা");
// সেন্সর শুরু করুন
যদি (! lsm.begin ()) {// LSM9DS0 Serial.print সনাক্ত করতে একটি সমস্যা হয়েছে যখন (1); } Serial.println (F ("LSM9DS0 9DOF পাওয়া গেছে")); // সার্ভারের সাথে সংযোগ শুরু করুন Serial.print ("কানেক্ট করা"); Serial.println (হোস্ট);
// সফল সংযোগের জন্য চেক করুন। ব্যর্থ হলে গর্ভপাত
যদি (! client.connect (host, port)) {Serial.println ("সংযোগ ব্যর্থ"); সংযুক্ত = মিথ্যা; প্রত্যাবর্তন; } অন্য {সংযুক্ত = সত্য; }
// সেন্সর লাভ এবং ইন্টিগ্রেশন সময় সেটআপ করুন
কনফিগার সেন্সর (); }
আমাদের তখন একটি লুপ ফাংশন দরকার যা বারবার লুপ করবে। এই ক্ষেত্রে, এটি অ্যাক্সিলেরোমিটার থেকে সার্ভারে বারবার “[z_accel]: [y_mag]: [z_mag]” আকারে ডেটা পাঠাতে ব্যবহৃত হয়। Client.print (সংখ্যা); ফাংশন হল সার্ভারে ডেটা পাঠায়।
অকার্যকর লুপ () {বিলম্ব (250); যদি (সংযুক্ত) {// এটি সার্ভার sensors_event_t accel, mag, gyro, temp এ ডেটা পাঠাবে; lsm.getEvent (& accel, & mag, & gyro, & temp); স্ট্রিং সংখ্যা; সংখ্যা += accel.acceleration.z; সংখ্যা += ":"; সংখ্যা += mag.magnetic.y; সংখ্যা += ":"; সংখ্যা += mag.magnetic.z; সিরিয়াল.প্রিন্ট (সংখ্যা); client.print (সংখ্যা); Serial.println (); } অন্যথায় {installConnection (); }}
কিছু ইউটিলিটি ফাংশনের জন্য, পালক এবং সার্ভারের মধ্যে সংযোগ স্থাপনের জন্য আমাদের একটি প্রয়োজন।
void establishConnection () {if (! client.connect (host, port)) {Serial.println ("সংযোগ ব্যর্থ"); সংযুক্ত = মিথ্যা; প্রত্যাবর্তন; } অন্য {সংযুক্ত = সত্য; }}
আমাদের সেন্সর কনফিগার করতে হবে এবং এটি যে মানগুলি পড়বে তার পরিসর দিতে হবে। উদাহরণস্বরূপ, এক্সিলারেশনের পরিসরের জন্য 5 টি বিকল্প রয়েছে: 2g, 4g, 6g, 8g, এবং 16g।
অকার্যকর কনফিগার সেন্সর (অকার্যকর) {// অ্যাকসিলরোমিটার পরিসীমা সেট করুন //lsm.setupAccel(lsm. LSM9DS0_ACCELRANGE_2G); lsm.setupAccel (lsm. LSM9DS0_ACCELRANGE_4G); //lsm.setupAccel(lsm. LSM9DS0_ACCELRANGE_6G); //lsm.setupAccel(lsm. LSM9DS0_ACCELRANGE_8G); //lsm.setupAccel(lsm. LSM9DS0_ACCELRANGE_16G); // ম্যাগনেটোমিটার সংবেদনশীলতা সেট করুন //lsm.setupMag(lsm. LSM9DS0_MAGGAIN_2GAUSS); //lsm.setupMag(lsm. LSM9DS0_MAGGAIN_4GAUSS); //lsm.setupMag(lsm. LSM9DS0_MAGGAIN_8GAUSS); lsm.setupMag (lsm. LSM9DS0_MAGGAIN_12GAUSS);
// জাইরোস্কোপ সেটআপ করুন
lsm.setupGyro (lsm. LSM9DS0_GYROSCALE_245DPS); //lsm.setupGyro(lsm. LSM9DS0_GYROSCALE_500DPS); //lsm.setupGyro(lsm. LSM9DS0_GYROSCALE_2000DPS); }
সার্ভার সেট আপ করা হচ্ছে:
সার্ভার হবে একটি পাইথন ফাইল যা কম্পিউটারের কমান্ড লাইনে চলবে। শুরু করতে, প্রয়োজনীয় ক্লাস আমদানি করুন।
আমদানি সকেট
সকেট নেটওয়ার্কিংয়ের জন্য ব্যবহৃত হয়। re regex, বা স্ট্রিং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। pyautogui একটি পাইথন লাইব্রেরি যা অঙ্কন ঘটতে অনুমতি দেবে (পরে আলোচনা করা হয়েছে)।
পরবর্তী, আমাদের কিছু ভেরিয়েবল সংজ্ঞায়িত করা উচিত। এগুলি গ্লোবাল ভেরিয়েবল হবে, তাই এগুলি একাধিক ফাংশনে অ্যাক্সেস করা হবে। সেগুলি পরে কোডে ব্যবহার করা হবে।
i = 0n = 0 লাইন = 1
data_list =
ম্যাগ_ডেটা =
mag_calib_y = 0 mag_offset_y = 0
z_calib = 0
z_offset = 0 z_moving_offset = 0 z_diff = 0 z_real = 0 z_velo = 0 z_pos = 0
keep_offset = মিথ্যা
first_data = সত্য
আমাদের এখন একটি সার্ভার তৈরি করতে এবং একটি ইনকামিং সংযোগের জন্য এটি খুলতে একটি ফাংশন দরকার।
def startServer (): global i global first_data # initialize server socket serversocket = socket.socket (socket. AF_INET, socket. SOCK_STREAM) serversocket.setsockopt (socket. SOL_SOCKET, socket. SO_REUSEADDR, 1) # সার্ভার IP ঠিকানা এবং পোর্ট হোস্ট = " 149.160.251.3 "port = 12347 server_address = (host, port) # সার্ভার খুলুন এবং ইনকামিং কানেকশন প্রিন্ট শুনুন (' %s port %s' %server_address) সার্ভারসকেট.বাইন্ড (server_address) # সংযোগের জন্য অপেক্ষা করুন … যখন সত্য: মুদ্রণ ('সংযোগের জন্য অপেক্ষা করা হচ্ছে …') # একটি ইনকামিং সংযোগ গ্রহণ করুন (ক্লায়েন্টসকেট, ঠিকানা) = serversocket.accept () # প্রাপ্ত ডেটা বিশ্লেষণ করার চেষ্টা করুন চেষ্টা করুন: মুদ্রণ করুন সত্য যখন: # তথ্য গ্রহণ করুন এবং তথ্য প্রক্রিয়াকরণের জন্য পাঠান = clientocket.recv (25) accel_data = re.split ('[:]', str (data)) accel_data [0] = accel_data [0] [2:] accel_data [1] = accel_data [1] accel_data [2] = accel_data [2] [1: -1] print (accel_data) i+= 1 if (i <51): calibData (accel_data) else: movingAcce l (accel_data [0]) processData (accel_data) first_data = অবশেষে মিথ্যা: # অপ্রয়োজনীয় ডেটা ফাঁস ঠেকাতে সকেট বন্ধ করুন clientocket.close ()
আমাদের এখন এমন ফাংশন দরকার যা সমস্ত ডেটা প্রক্রিয়া করবে। প্রথম পদক্ষেপ, এবং প্রথম ফাংশন বলা হয়, গণনার উদ্দেশ্যে সেন্সরের ক্রমাঙ্কন।
def calibData (list): global z_calib global z_offset global mag_data global mag_calib_y global mag_offset_y z_calib += float (list [0]) mag_calib_y += float (list [1]) if (i == 50): z_offset = z_calib / 50 mag_offset = mag_calib_y / 50 z_calib = 0 mag_calib_y = 0 mag_data.append (mag_offset_y)
পরবর্তী, আমরা একটি চলন্ত ত্বরণ অফসেট তৈরি করি। এটি এমন করে তোলে যাতে প্রোগ্রামটি স্বীকৃতি দেয় যখন কেউ তার আঙ্গুল নাড়াচাড়া করে কারণ সার্ভারে পাঠানো ত্বরণের সমস্ত মান একই সময়ে হওয়া উচিত।
def moveAccel (num): global z_calib global z_diff global z_moving_offset global z_offset global data_list global n global keep_offset if (n 0.2 or z_diff <-0.2): # গতি ডাটার মধ্যে ধরা পড়ে, restart keep_offset = True n = 0 z_calib = 0 z_moving_offset = 0 z_diff = 0 data_list = break_offset না থাকলে বিরতি: # ডেটার মধ্যে স্থির, নতুন z_offset z_offset = z_moving_offset print ("নতুন z_offset:") প্রিন্ট (z_offset) n = 0 z_calib = 0 z_moving_offset = 0 z_diff = 0 data_list = keep_offset = মিথ্যা keep_offset = মিথ্যা
পরবর্তীতে, আমরা গণিতের কাজ করি। এর মধ্যে রয়েছে এক্সিলারেশন ডেটাকে একটি পজিশন ডেটাতে অনুবাদ করা যা আমাদের ব্যবহারকারীর আঙুল নাড়ানোর দিকটি বলতে দেয়।
def processData (list): #[accel.z, mag.y] global z_offset global z_real global z_velo global z_pos global first_data global mag_data
z_real = float (তালিকা [0]) - z_offset
mag_y = list [1] mag_z = list [2] বাম = মিথ্যা ডান = মিথ্যা # ত্বরণ প্রক্রিয়া করবেন না যতক্ষণ না পুরোপুরি নিশ্চিত হয় যে এটি ত্বরান্বিত হয়েছে # অবস্থানে যান্ত্রিক গোলমাল প্রতিরোধ করে যদি (z_real -0.20): z_real = 0 # শুরু পজিশন খোঁজার জন্য ইন্টিগ্রেশন যদি = (0.5 * z_real * 0.25 * 0.25) + (z_velo * 0.25) + z_pos z_velo = (z_real * 0.25) + z_velo del mag_data [0] mag_data.append (mag_y) if (float (mag_data [1]) - float (mag_data [0])> 0.03): right = True elif (float (mag_data [1]) - float (mag_data [0]) <-0.03): left = true if (right): movement (50, int (z_pos*) 1000)) এলিফ (বাম): আন্দোলন (-50, int (z_pos*1000)) z_velo = 0 z_pos = 0
এখন, অবশেষে, আমরা কার্সারটি সরাই! এটি করার জন্য, আমরা একটি পেইন্ট উইন্ডো খুলে এটিকে পূর্ণ পর্দা করেছিলাম। Pyautogui লাইব্রেরিতে pyautogui.dragRel (x, y) নামে একটি ফাংশন রয়েছে; যা আমরা মাউস কার্সারকে এক বিন্দু থেকে পরের দিকে টেনে আনতে ব্যবহার করি। এটি আপেক্ষিক অবস্থানের তথ্য ব্যবহার করে যাতে আন্দোলন কার্সারের শেষ অবস্থানের সাথে সম্পর্কিত হয়।
ডিএফ মুভমেন্ট (x, y): প্রিন্ট ("এ যাওয়া", x, -y) pyautogui.dragRel (x, -y)
সবশেষে, আমাদের এই ফাংশনটিকে কল করতে হবে এমনকি এই সমস্ত কোড চালানোর অনুমতি দিতে।
# সার্ভার স্টার্ট সার্ভার () শুরু করতে ফাংশনকে কল করে
প্রস্তাবিত:
হোমওয়ার্ক রাইটিং মেশিন: 15 টি ধাপ

হোমওয়ার্ক রাইটিং মেশিন: এক জায়গায় সব বিজ্ঞানের DIY প্রজেক্ট পেতে আমাদের নতুন আবেদন ডাউনলোড করুন। নীচে ক্লিক করুন এখানে ক্লিক করুন। DIY প্রকল্প হ্যালো বন্ধুরা, শিরোনাম অনুসারে এটি একটি সহজ প্রকল্প যা Arduino ব্যবহার করে হোমওয়ার্ক রাইটিং মেশিন তৈরি করে y
লেটার ফরম্যাট রাইটিং মেশিন: ৫ টি ধাপ

লেটার ফরম্যাট রাইটিং মেশিন: এই লেটার ফরম্যাট রাইটিং মেশিন ইমেইল ফরম্যাটের অপরিচিততার কারণে যে কেউ, বিশেষ করে শিক্ষার্থীদের তাদের সমস্যা সমাধান করতে সাহায্য করতে পারে। এই মেশিনের সাহায্যে ব্যবহারকারী সহজেই " টাইপ " ইমেইল ফরম্যাট আউট, তাদের যা করতে হবে তা পূরণ করতে হবে
GRBL ব্যবহার করে DIY CNC রাইটিং মেশিন: 16 টি ধাপ

GRBL ব্যবহার করে DIY CNC রাইটিং মেশিন: এই প্রজেক্টে, আমি দেখাবো কিভাবে সহজেই আপনার নিজের কম খরচে Arduino CNC প্লটার বিনামূল্যে এবং ওপেন-সোর্স সফটওয়্যার ব্যবহার করে তৈরি করতে হয়! সিএনসি চক্রান্তকারী, কিন্তু একটিও নয় যা ব্যাখ্যা করে
স্ক্র্যাচ ব্যবহার করে DIY রাইটিং মেশিন: 10 টি ধাপ

স্ক্র্যাচ ব্যবহার করে DIY রাইটিং মেশিন: হাই সবাই আমাদের নতুন নির্দেশাবলীতে স্বাগতম আজকের প্রকল্পটি একটি মিনি সিএনসি প্লটার যা পুরানো পুনর্ব্যবহারযোগ্য স্ক্র্যাচ উপকরণ ব্যবহার করে তৈরি করা হয়েছে তাই আসুন দেখি কিভাবে এটি তৈরি করা হয়
ম্যাজিক স্পেল দিয়ে ম্যাজিক ক্রিস্টাল বল তৈরি করা যাক! "Arduino": 9 ধাপ

ম্যাজিক স্পেল দিয়ে ম্যাজিক ক্রিস্টাল বল তৈরি করা যাক! ~ আরডুইনো ~: এর মধ্যে, আমরা একটি ম্যাজিক বল তৈরি করতে যাচ্ছি যা একটি মোশন সেন্সর এবং একটি আরএফআইডি স্ক্যানার ব্যবহার করে ভিতরে LED লাইটের অ্যানিমেশন নিয়ন্ত্রণ করতে