সুচিপত্র:

একটি হিয়ারিং জাম্পিং জ্যাক, গুগল কোরাল টিপিইউ এক্সিলারেটর সংস্করণ: 4 টি ধাপ
একটি হিয়ারিং জাম্পিং জ্যাক, গুগল কোরাল টিপিইউ এক্সিলারেটর সংস্করণ: 4 টি ধাপ

ভিডিও: একটি হিয়ারিং জাম্পিং জ্যাক, গুগল কোরাল টিপিইউ এক্সিলারেটর সংস্করণ: 4 টি ধাপ

ভিডিও: একটি হিয়ারিং জাম্পিং জ্যাক, গুগল কোরাল টিপিইউ এক্সিলারেটর সংস্করণ: 4 টি ধাপ
ভিডিও: Neural Control and Coordination 2024, জুলাই
Anonim
একটি হিয়ারিং জাম্পিং জ্যাক, গুগল কোরাল টিপিইউ এক্সিলারেটর সংস্করণ
একটি হিয়ারিং জাম্পিং জ্যাক, গুগল কোরাল টিপিইউ এক্সিলারেটর সংস্করণ
একটি হিয়ারিং জাম্পিং জ্যাক, গুগল কোরাল টিপিইউ এক্সিলারেটর সংস্করণ
একটি হিয়ারিং জাম্পিং জ্যাক, গুগল কোরাল টিপিইউ এক্সিলারেটর সংস্করণ
একটি হিয়ারিং জাম্পিং জ্যাক, গুগল কোরাল টিপিইউ এক্সিলারেটর সংস্করণ
একটি হিয়ারিং জাম্পিং জ্যাক, গুগল কোরাল টিপিইউ এক্সিলারেটর সংস্করণ

এটি তার অঙ্গগুলি সরায়, এটি আপনার আদেশ শোনে, এটি সর্বশেষ মেশিন লার্নিং প্রযুক্তি দ্বারা চালিত

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

সিস্টেমের মূল উপাদান হল গুগল কোরাল টিপিইউ এক্সিলারেটর, যা টেন্সরফ্লো লাইট মডেলগুলিকে অফলাইনে খুব উচ্চ গতিতে চালাতে দেয়, এমনকি "দুর্বল" কম্পিউটারেও রাস্পবেরি পাই। এটি অনুমতি দেয় যেমন RPi ক্যামেরা ব্যবহার করে দ্রুত বস্তু সনাক্তকরণ এবং শ্রেণিবিন্যাস, কিন্তু স্থানীয়ভাবে মেশিন লার্নিং-ভিত্তিক ভয়েস রিকগনিশন ফাংশন চালানোর জন্য।

আমার জানামতে এটি একটি কোরাল এক্সিলারেটর ভয়েস ডিটেকশন-চালিত ফিজিক্যাল DIY ডিভাইসের জন্য প্রথম প্রকাশিত উদাহরণ এবং সংযুক্ত কোডের উদাহরণ অন্যান্য, আরো জটিল প্রকল্পের জন্যও ব্যবহার করা যেতে পারে।

ভয়েস কন্ট্রোলটি "প্রজেক্ট কিওয়ার্ড স্পটার" (https://github.com/google-coral/project-keyword-spotter) এর "শ্রবণশক্তি সাপের" উদাহরণের উপর ভিত্তি করে তৈরি করা হয়েছে যা সম্প্রতি (সেপ্টেম্বর 2019) গিটহাব-এ রাখা হয়েছিল। আমার কনফিগারেশনে, সিস্টেমটি একটি রাস্পবেরি পাই 4 নিয়ে গঠিত যা একটি অ্যাডাফ্রুট 16 চ্যানেল সার্ভো বোনেট, একটি গুগল কোরাল টিপিইউ অ্যাক্সিলারেটর এবং একটি ওয়েবক্যাম, যা মাইক্রোফোন হিসাবে ব্যবহৃত হয়। জাম্পিং জ্যাকটি পূর্বে একটি পূর্ব নির্দেশে বর্ণিত হয়েছিল, যেখানে এটি গুগল ভয়েস কিট দ্বারা ভয়েস কমান্ডগুলি পড়ার জন্য চালিত হয়েছিল, নিম্নলিখিত বর্ণিত 2.0 সংস্করণে সার্ভো বোনেটের সাথে সংযুক্ত।

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

তার বর্তমান সংস্করণে কীওয়ার্ড স্পটার প্রায় ১ short০ টি সংক্ষিপ্ত কীওয়ার্ড/কী বাক্যাংশের একটি সেট বোঝে, যা সংগত মডেল ফাইল ("voice_commands_v0.7_egetpu.tflite") এবং একটি পৃথক লেবেল ফাইলে বর্ণিত ("labels_gc2.raw.txt") । একটি অবাধে পরিবর্তনযোগ্য ফাইল ("commands_v2_hampelmann.txt") দ্বারা সংজ্ঞায়িত, আমাদের স্ক্রিপ্ট দ্বারা বিশেষভাবে ব্যবহৃত কীওয়ার্ডগুলি তখন ভার্চুয়াল কীবোর্ডের কীস্ট্রোকের সাথে ম্যাপ করা হয়, যেমন অক্ষর, সংখ্যা, উপরে/নিচে/বাম/ডান, crtl+c, ইত্যাদি।

তারপর, যেমন pygame.key ব্যবহার করে, এই "কীস্ট্রোকগুলি" পড়া হয় এবং কোন ডিভাইস, এখানে জাম্পিং জ্যাক সঞ্চালন করে তা নিয়ন্ত্রণ করতে ব্যবহৃত হয়। আমাদের ক্ষেত্রে এর অর্থ হল দুটি সার্ভিসকে পূর্বনির্ধারিত অবস্থানে নিয়ে যাওয়া, অথবা LEDs চালু বা বন্ধ করা। যেহেতু কীওয়ার্ড স্পটার একটি পৃথক পদক্ষেপে চলে, এটি স্থায়ীভাবে আপনার আদেশ শুনতে পারে।

সংস্করণ সেপ্টেম্বর 21, 2019

সরবরাহ

রাস্পবেরি পাই 4, পিমোরোনির মাধ্যমে

গুগল কোরাল টিপিইউ এক্সিলারেটর, মাউজার জার্মানির মাধ্যমে, 72

Adafruit 16 Servo Bonnet, Pimoroni এর মাধ্যমে, প্রায় 10

www.adafruit.com/product/3416

learn.adafruit.com/adafruit-16-channel-pwm…

স্ট্যাকার হেডার (প্রয়োজন হলে)

www.adafruit.com/product/2223

Servo Bonnet এর জন্য 4x AA ব্যাটারি প্যাক (অথবা অন্যান্য 5-6V পাওয়ার সোর্স)

পুরানো ওয়েবক্যাম, মাইক্রোফোন হিসাবে

সার্ভো চালিত জাম্পিং জ্যাক, পূর্ববর্তী নির্দেশনায় বর্ণিত। লেআউট অঙ্কন পরবর্তী ধাপে সংযুক্ত করা হয়, কিন্তু সমন্বয় প্রয়োজন হতে পারে।

জাম্পিং জ্যাকের জন্য প্রয়োজনীয় অংশ:

- 3 মিমি ফরেক্স প্লেট

- 2 মাইক্রো সার্ভিস

- 2 এবং 3 মিমি স্ক্রু এবং বাদাম

- 2 সাদা LEDs এবং একটি প্রতিরোধক

- তারের একটি বিট

ধাপ 1: ডিভাইস সেট আপ

ডিভাইস সেট আপ করা হচ্ছে
ডিভাইস সেট আপ করা হচ্ছে
ডিভাইস সেট আপ করা হচ্ছে
ডিভাইস সেট আপ করা হচ্ছে
ডিভাইস সেট আপ করা হচ্ছে
ডিভাইস সেট আপ করা হচ্ছে

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

আপনার রাস্পবেরি পাই সেটআপ করুন। কোরাল গিথুব সাইটে, একটি রাস্পিয়ান ইমেজ পাওয়া যায় যা পাইতে কোরাল এক্সিলারেটর চালানোর জন্য প্রয়োজনীয় সবকিছু ধারণ করে এবং অনেকগুলি প্রকল্প ধারণ করে, সমস্ত সেটিংস ইতিমধ্যেই রয়েছে।

গুগল কোরাল গিটহাব পৃষ্ঠা থেকে প্রকল্প কীওয়ার্ড স্পটার পান। নির্দেশিত সমস্ত প্রয়োজনীয় সফ্টওয়্যার ইনস্টল করুন।

প্রদত্ত ফাইলগুলি ইনস্টল করুন। প্রজেক্ট কিওয়ার্ড স্পটার ফোল্ডারে জাম্পিং জ্যাক পাইথন স্ক্রিপ্ট এবং কনফিগ সাবফোল্ডারে কোরস্পোন্ডিং কমান্ড ফাইল রাখুন।

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

সার্ভো বোনেটে 5-6V পাওয়ার সোর্স সংযুক্ত করুন। Servos এবং LEDs সংযুক্ত করুন। আমি আমার ক্ষেত্রে, আমি LED এর জন্য পোর্ট 0 এবং সার্ভারগুলির জন্য 11 এবং 15 পোর্ট ব্যবহার করেছি।

সবকিছু যাচাই করার জন্য, আমি প্রথমে প্রজেক্টের কীওয়ার্ড স্পটার "হিয়ারিং সাপ" উদাহরণ এবং অ্যাডাফ্রুট সার্ভো বোনেট উদাহরণ চেষ্টা করার পরামর্শ দেব।

ধাপ 2: জাম্পিং জ্যাক চালানো

যদি সমস্ত অংশ সেট আপ এবং চলমান হয়, এটি ব্যবহার করার চেষ্টা করুন। আপনি IDE বা কমান্ড লাইন থেকে স্ক্রিপ্ট চালাতে পারেন।

"পজিশন 0" থেকে "পজিশন 9" বলে চিৎকার করলে জাম্পিং জ্যাককে পূর্বনির্ধারিত পজিশনের মধ্যে একটি নিতে হবে। আমি "1" উভয় বাহু উপরে (uu), "3" বাম উপরে, ডান নিচে (ud), "9" উভয় বাহু নিচে (dd) এবং "5" উভয় বাহু কেন্দ্রীভূত (cc) হিসাবে সংজ্ঞায়িত করেছি।

uu uc ud = 1 2 3

cu cc cd = 4 5 6

du dc dd = 7 8 9

"0" "5" এর সমান। "3" এবং "8" কীওয়ার্ড স্পটার দ্বারা খুব ভালভাবে স্বীকৃত নয় এবং পুনরাবৃত্তি করতে হতে পারে।

আপনি প্রতিটি servo/পাশের জন্য সর্বনিম্ন এবং সর্বাধিক মান সমন্বয় করতে হতে পারে যাতে servos ব্লক করা হবে না এবং তারপর খুব বেশি শক্তি আঁকুন।

"পরবর্তী খেলা" শুরু হবে "নৃত্য", অর্থাৎ অবস্থানের একটি সংজ্ঞায়িত ক্রম, যখন "র্যান্ডম খেলা" চালানোর একটি এলোমেলো ক্রম সম্পাদন করতে জাম্পিং জ্যাক শুরু করবে। উভয় ক্ষেত্রেই তারা চিরকাল চলবে, তাই আপনাকে আন্দোলন বন্ধ করতে হতে পারে, যেমন "অবস্থান শূন্য" কমান্ড সহ।

"স্টপ গেম" একটি "ctrl + c" তৈরি করবে এবং প্রক্রিয়াটি বন্ধ করবে।

"সুইচ অন" এবং "সুইচ অফ" ব্যবহার করা যেতে পারে এলইডি চালু এবং বন্ধ করতে।

সময় ঘুমের মান পরিবর্তন করে আপনি আন্দোলনের বেগ সামঞ্জস্য করতে পারেন।

ধাপ 3: কোড এবং কমান্ড ফাইল

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

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

আমি উভয় অংশের প্রোগ্রামারদের ধন্যবাদ জানাতে চাই।

কোডটি ফাইল হিসাবে সংযুক্ত পাওয়া যাবে। এটি আপনার নিজের ঝুঁকিতে ব্যবহার করুন, এটি সংশোধন করুন, এটি উন্নত করুন, এটির সাথে খেলুন।

# কপিরাইট 2019 গুগল এলএলসি

# # অ্যাপাচি লাইসেন্সের অধীনে লাইসেন্স, সংস্করণ 2.0 ("লাইসেন্স"); # আপনি লাইসেন্সের সাথে সম্মতি ব্যতীত এই ফাইলটি ব্যবহার করতে পারবেন না। # আপনি লাইসেন্সের একটি অনুলিপি পেতে পারেন # # https://www.apache.org/licenses/LICENSE-2.0 # # প্রযোজ্য আইন দ্বারা প্রয়োজন না হলে বা লিখিতভাবে সম্মত না হলে, লাইসেন্সের অধীনে বিতরণ করা সফ্টওয়্যার # "যেমন আছে" ভিত্তি, # কোন প্রকারের ওয়্যারেন্টি বা শর্ত ছাড়াই, হয় প্রকাশ বা নিহিত। # লাইসেন্সের অধীনে নির্দিষ্ট ভাষা পরিচালনার অনুমতি এবং # সীমাবদ্ধতার জন্য লাইসেন্স দেখুন। থেকে _future_ আমদানি পরম_মিপোর্ট _future_ থেকে আমদানি বিভাগ _future_ আমদানি print_function আমদানি argparse আমদানি os থেকে এলোমেলো আমদানি র্যান্ডিন্ট থেকে থ্রেডিং আমদানি থ্রেড আমদানি সময় edgetpu.basic.basic_engine আমদানি থেকে বেসিক ইঞ্জিন আমদানি মডেল আমদানি pygame.locals আমদানি থেকে adafruit_servokit আমদানি থেকে ServoKit আমদানি বোর্ড আমদানি busio আমদানি adafruit_pca9685 আমদানির সময় i2c = busio. I2C (board. SCL, board. SDA) hat = adafruit_pca9685. PCA9685 (i2c) hat.frequency = 60 kit = ServoKit (চ্যানেল = 16) # সেট নম্বর চ্যানেল #kit.servo [0].actuation_range = 160 #kit.servo [0].set_pulse_width_range (1000, 2000) #up, mid and down settings for left and right arms up_l = 35 md_l = 90 dn_l = 160 up_r = 160 md_r = 90 dn_r = 35

lft = 15 # servo port এর সংখ্যা, বাম servo (0-8)

rgt = 11 # servo port এর সংখ্যা, ডান servo (0-8) led_channel_0 = hat.channels [0] # LED port on port 0 led_channel_0.duty_cycle = 0 # LED চালু 100% # নয়টি পজিশনের জন্য আর্ম সেটিংসের তালিকা = [(md_l, md_r), (up_l, up_r), (up_l, md_r), (up_l, dn_r), (md_l, up_r), (md_l, md_r), (md_l, dn_r), (dn_l, up_r), (dn_l, md_r), (dn_l, dn_r)] # সংজ্ঞায়িত করে 9 জাম্পিংজ্যাক পজিশন, পূর্ণসংখ্যার দ্বারা নির্দেশিত 0-9 dance1 = (0, 8, 7, 4, 1, 2, 3, 6, 9, 8, 5, 2, 1, 4, 7, 8, 9, 6, 3, 2, 0) # একটি "নৃত্য" শ্রেণীর নিয়ন্ত্রক (বস্তু): # কলব্যাক ফাংশন ডিফ _init _ (স্ব, q): self._q = q ডিফ কলব্যাক (স্ব, কমান্ড): self। on_event (self, event): if event.type == pygame. QUIT: self._running = False def JumpingJack0 (self, keys): # নিয়ন্ত্রণ জাম্পিং জ্যাক, কীওয়ার্ড: "পজিশন এক্স" কী = ইন্ট (কী) পি = পজিশন [কী] a = p [0] b = p [1] মুদ্রণ ("অবস্থান:", কী, "বাম /right: ", a,"/", b," degree ") # sys.stdout.write (" Position: ", key," left/right: ", a,"/", b," degree ") kit.servo [lft].angle = a kit.servo [rgt].angle = b time.sleep (0.1) def JumpingJack1 (self): # control Jumping Jack dance, keyword: "next game" dnce = dance1 sp = (len (dnce)) in r in range (sp): # পজিশনের ড্যান্সিং অর্ডার, এসপি ধাপ dc = dnce [r] যদি (ডিসি রেঞ্জে না (10)): # মুদ্রণ ("অবস্থানে ইনপুট ত্রুটি", SP) dc = 4 p = position [dc] a = p [0] b = p [1] kit.servo [lft].angle = a kit.servo [rgt].angle = b time.sleep (0.25) # সেট বেগ JumpingJack2 (self, keys) def এর গতিবিধিগুলি LED.duty_cycle = 0 #LED 100% সময় চালু করুন ঘুম (0.5) led_channel_0.duty_cycle = 0xffff #LED 100% সময় চালু করুন ঘুম (0.5) led_channel_0.duty_cycle = 0 #LED 100% time চালু করুন ঘুম (0.5) led_channel_0.duty_cycle = 0xffff #LED 100% time.sleep (0.1) def JumpingJack3 (self): # নিয়ন্ত্রণ জাম্পিং জ্যাক নৃত্য, কীওয়ার্ড: "এলোমেলো খেলা" # রেঞ্জের মধ্যে h এর জন্য (10): dr = randrange (9) p = position [dr] a = p [0] b = p [1] kit.servo [এলএফটি] args.mic অন্য কোন int (args.mic) model.classify_audio (mic, engine, labels_file = "config/labels_gc2.raw.txt", commands_file = "config/commands_v2_hampelmann.txt", dectection_callback = self._controler.callback, sample_rate_hz = int (args.sample_rate_hz), num_frames_hop = int (args.num_frames_hop))

def on_execute (self, args):

যদি self.on_init () না হয়: self._running = মিথ্যা q = model.get_queue () self।) t.daemon = true t.start () item = -1 while self._running: pygame.event.pump () if args.debug_keyboard: keys = pygame.key.get_pressed () else: try: new_item = q.get (সত্য, 0.1) সারি ছাড়া। শূন্য: new_item = None যদি new_item না হয় None: item = new_item if (args.debug_keyboard and key [pygame. K_ESCAPE]) or item == "stop": self._running = false # if (args.debug_keyboard and key [pygame. K_SPACE]) or item == "go": # self. JumpingJack0 (7) # if (args.debug_keyboard and keys [pygame. K_RIGHT]) or item == "right": self. JumpingJack0 (6) if (args.debug_keyboard and key [pygame. K_LEFT]) or item == "left": self. JumpingJack0 (4) if (args.debug_keyboard and keys [pygame. K_UP]) or item == " up ": self. JumpingJack0 (1) if (args.debug_keyboard and keys [pygame. K_DOWN]) or item ==" down ": self. JumpingJack0 (9) if (args.debug_keyboard and keys [pygam e. K_0]) অথবা item == "0": self. JumpingJack0 (0) if (args.debug_keyboard and keys [pygame. K_1]) or item == "1": self. JumpingJack0 (1) if (args। debug_keyboard এবং কী [pygame. K_2]) অথবা আইটেম == "2": self. JumpingJack0 (2) if (args.debug_keyboard and keys [pygame. K_3]) or item == "3": self. JumpingJack0 (3) if (args.debug_keyboard and key [pygame. K_4]) or item == "4": self. JumpingJack0 (4) if (args.debug_keyboard and keys [pygame. K_5]) or item == "5": self। JumpingJack0 (5) if (args.debug_keyboard and key [pygame. K_6]) or item == "6": self. JumpingJack0 (6) if (args.debug_keyboard and keys [pygame. K_7]) or item == "7 ": self. JumpingJack0 (7) if (args.debug_keyboard and keys [pygame. K_8]) or item ==" 8 ": self. JumpingJack0 (8) if (args.debug_keyboard and keys [pygame. K_9]) or item == "9": self. JumpingJack0 (9) if (args.debug_keyboard and key [pygame. K_a]) or item == "d": self. JumpingJack1 () #dancing Jack, on "next_game" if (args। debug_keyboard এবং কী [pygame. K_j]) অথবা আইটেম == "j": self. JumpingJack2 (0) #LED on, ON " switch_on "if (args.debug_keyboard and key [pygame. K_k]) or item ==" k ": self. JumpingJack2 (1) #LED off, on" swithch off "if (args.debug_keyboard and key [pygame. K_l]) অথবা আইটেম == "l": self. JumpingJack2 (1) #LED ব্লিংক "টার্গেট" যদি (args.debug_keyboard এবং কী [pygame. K_r]) অথবা item == "r": self. JumpingJack3 () #random dance "এলোমেলো খেলা" time.sleep (0.05) self.on_cleanup () যদি _name_ == '_main_': parser = argparse। । ', অ্যাকশন =' স্টোর_ট্রু ', ডিফল্ট = মিথ্যা) মডেল

কমান্ড কনফিগ ফাইল "commands_v2_hampelmann.txt" আছে। আপনার পছন্দ মতো পরিবর্তন করুন। এটি লেবেল-ফাইলের উপর ভিত্তি করে "কমান্ড, কী, (শক্তি,)" সংমিশ্রণের একটি তালিকা মাত্র।

পজিশন_জিরো, 0, position_one, 1, position_two, 2, position_three, 3, position_four, 4, position_five, 5, position_six, 6, position_seven, 7, position_eight, 8, position_nine, 9, move_up, up, go_up, up, move_down, down, go_down, নিচে, move_backwards, left, move_forwards, right, go_backwards, left, go_forwards, right, 0.8 target, l, mute, z, yes, y, no, n, switch_on, j, switch_off, k, volume_up, up, volume_down, down, next_game, d, random_game, r, start_game, s, stop_game, ctrl+c,

ধাপ 4: আরও ধারণা এবং অন্যান্য উদাহরণ

এটা বেশ স্পষ্ট যে এই সেটিংটি রোবট বা অন্যান্য ডিভাইস নিয়ন্ত্রণ করতেও ব্যবহার করা যেতে পারে। মূলত রাস্পবেরি পাই দ্বারা নিয়ন্ত্রিত হতে পারে এমন সবকিছু।

আমি একটি MeArm চালানোর জন্য স্ক্রিপ্টের একটি এক্সটেনশনে কাজ করছি, এবং আশা করি অক্টোবর 2019 এ এটি উপস্থাপন করতে সক্ষম হব।

আমি জাম্পিং জ্যাককে সেমফোর হিসাবে ব্যবহার করার কথাও ভাবছি, এবং "প্রজেক্ট পোসনেট" অঙ্গের অবস্থান সনাক্তকরণ প্রোগ্রামটিকে জাম্পিং জ্যাকের অবস্থানগুলি পড়ার এবং এটিকে একটি সংখ্যায় অনুবাদ করার জন্য একটি সরঞ্জাম হিসাবে ব্যবহার করার কথা ভাবছি। এইভাবে এটি এমনকি টেক্সট যোগাযোগ করতে পারে, 2x 8 অবস্থান দেওয়া 64 বিভিন্ন সংখ্যা নির্দেশ করতে পারে, বর্ণমালা, সংখ্যা এবং চিহ্নের জন্য যথেষ্ট বেশী। এটি সামান্য পরিবর্তন করার সময়, প্রস্তাবিত আইইটিএফ "দ্য ট্রান্সমিশন অব আইপি ডেটাগ্রামস ওভার দ্য সেমাফোর ফ্ল্যাগ সিগন্যালিং সিস্টেম (এসএফএসএস)" (https://tools.ietf.org/html/rfc4824) এর জন্য একটি শারীরিক উপলব্ধি সক্ষম করতে পারে।

কিন্তু এটি আরেকটি নির্দেশযোগ্য হবে। এবং, যেমন প্রথম পরীক্ষাগুলি ইঙ্গিত দেয় যে এআই সিস্টেম দ্বারা মানব হিসাবে স্বীকৃত হওয়ার আগে জাম্পিং জ্যাকের উল্লেখযোগ্য পরিবর্তন প্রয়োজন হবে কিছু সময়ের প্রয়োজন হতে পারে।

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

প্রস্তাবিত: