সুচিপত্র:

বেনওয়াকে টিএফমিনি - টিনসি 3.5: 3 ধাপ সহ সস্তা লিডার
বেনওয়াকে টিএফমিনি - টিনসি 3.5: 3 ধাপ সহ সস্তা লিডার

ভিডিও: বেনওয়াকে টিএফমিনি - টিনসি 3.5: 3 ধাপ সহ সস্তা লিডার

ভিডিও: বেনওয়াকে টিএফমিনি - টিনসি 3.5: 3 ধাপ সহ সস্তা লিডার
ভিডিও: Как спрятать данные в ячейках Excel? 2024, জুলাই
Anonim
বেনওয়াকে TFmini - Teensy 3.5 সহ সস্তা LiDAR
বেনওয়াকে TFmini - Teensy 3.5 সহ সস্তা LiDAR

বেনওয়েক টিএফমিনি লিডার ইউনিট একটি ছোট, খুব হালকা ওজনের লিডার সেন্সর যা প্রায় $ 50 কানাডিয়ান। ডকুমেন্টেশন ভাল ছিল, কিন্তু অসম্পূর্ণ। এটি সেন্সর থেকে ডেটা গ্রহণের বিবরণ প্রদান করেছে, কিন্তু সেন্সরটিকে ডিফল্ট মোডে রাখার জন্য প্রয়োজনীয় সংকেত উল্লেখ করতে ভুলে গেছে যাতে এটি প্রকৃতপক্ষে ডেটা পাঠায়। ভাগ্যক্রমে এটি ডিবাগিং নথিতে ছিল।

সুতরাং এটিই আমার জন্য কাজ করেছে এবং এটির সাথে কাজ করা সত্যিই একটি সহজ ডিভাইস।

আমি একটি Teensy 3.5 ব্যবহার করার জন্য বেছে নিয়েছি কারণ এটিতে একাধিক HW সিরিয়াল পোর্ট রয়েছে, এটি ডেটা গ্রহণ এবং প্রক্রিয়াটি করার জন্য যথেষ্ট দ্রুতগতির চেয়ে বেশি। শুধু মজা করার জন্য আমি বাকি কোড থেকে ডাটা পাওয়ার আলাদা করার জন্য Teensy Threading লাইব্রেরি ব্যবহার করেছি।

ধাপ 1: TFmini কে Teensy 3.5 এর সাথে সংযুক্ত করা (Arduino Mega এর অনুরূপ)

TFmini কে Teensy 3.5 এর সাথে সংযুক্ত করা হচ্ছে (Arduino Mega এর অনুরূপ)
TFmini কে Teensy 3.5 এর সাথে সংযুক্ত করা হচ্ছে (Arduino Mega এর অনুরূপ)

এই উদাহরণের জন্য দুটি সিরিয়াল সংযোগ প্রয়োজন: একটি TFmini এর সাথে, এবং আরেকটি আপনার কম্পিউটারে ফলাফল প্রদর্শন করার জন্য। এই কারণে, এবং যতদূর আমি বলতে পারি, শুধুমাত্র এই কারণটি, এই বিশেষ উদাহরণটি Arduino Mega বা Teensy 3.x এর নীচে কিছুতেই কাজ করবে না।

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

অন্তর্ভুক্ত তারের জোতা ব্যবহার:

1) কালো তারের সাথে তেনসি জিএনডি সংযোগ করুন (যদি পার্থক্য ভিডিসি সোর্স ব্যবহার করে তবে নিশ্চিত করুন যে গ্রাউন্ডটিও টিএনসিতে জিএনডিতে যায়)

2) Teensy Vin (অথবা 5VDC উৎস) এর সাথে লাল তারের সংযোগ করুন

3) Teensy (Serial1 TX) এ 1 পিন করার জন্য সাদা তারের (TFmini RX) সংযোগ করুন

4) টিনসি (সিরিয়াল RX) এ 0 পিন করতে সবুজ তারের (TFmini TX) সংযোগ করুন

অন্তর্ভুক্ত তারের জোতা আমার জন্য একটি রুটি বোর্ডে কাজ করার জন্য খুব ছোট ছিল, তাই আমি TFmini এর বিপরীত প্রান্তটি কেটে ফেললাম, এবং একটি ব্রেডবোর্ডে তারগুলি বিক্রি করে দিলাম, ব্রেকবোর্ডে একটি JST সংযোগকারী যোগ করলাম এবং পুরুষ জাম্পারকে একটি JST তৈরি করলাম তারের জোতা।

ধাপ 2: এটি চালানোর জন্য কোড

নিম্নলিখিত কোডটি ব্যবহার করুন (Teensy 3.5 এর জন্য) অথবা সংযুক্ত ফাইলটি ডাউনলোড করুন:

Arduino মেগা জন্য, থ্রেডিং সম্ভবত কাজ করবে না। কোডটি readLiDAR ফাংশন থেকে মেইন লুপে সরান এবং থ্রেডিং সম্পর্কিত যেকোন কিছু সরান।

#অন্তর্ভুক্ত #অন্তর্ভুক্ত "TeensyThreads.h"

// সরবরাহকৃত তারের ব্যবহার:

// - কালো = GND (GND এর সাথে সংযুক্ত) // - লাল = 5V (4.5 - 6.0V) (Teensy 3.5 এ Vin এর সাথে সংযুক্ত, অথবা Arduino এ 5V) // - সাদা = TFmini RX (ওরফে। মাইক্রোকন্ট্রোলার TX এর সাথে সংযুক্ত করুন), টিনসি 3.5 তে পিন 1) // - সবুজ = TFmini TX (ওরফে। মাইক্রোকন্ট্রোলার RX- এর সাথে সংযোগ করুন, Teensy 3.5 তে pin0) // দ্রষ্টব্য: এই স্কেচের জন্য আপনাকে USB সিরিজের সাথে সংযুক্ত একের বাইরে অতিরিক্ত সিরিয়াল পোর্ট সহ একটি মাইক্রোকন্ট্রোলারের প্রয়োজন হবে / এর মধ্যে রয়েছে Arduino MEGA (Serial1 ব্যবহার করুন), Teensy (3.x) (উপলব্ধ HW সিরিয়াল সংযোগগুলির মধ্যে একটি ব্যবহার করুন)

উদ্বায়ী int liDARval = 0;

অকার্যকর readLiDAR () {

// বেনওয়াকে TFmini এর জন্য ডেটা ফরম্যাট // = 1) 0x59 // 2) 0x59 // 3) Dist_L (low 8bit) // 4) Dist_H (high 8bit) // 5) Strength_L (low 8bit) // 6) Strength_H (high 8bit) // 7) সংরক্ষিত বাইট // 8) আসল সংকেত মানের ডিগ্রী // 9) চেকসাম প্যারিটি বিট (কম 8 বিট), চেকসাম = বাইট 1 +বাইট 2 +… +বাইট 8। এটি শুধুমাত্র একটি কম 8 বিট যদিও যদিও (1) {// চিরকালের জন্য চলতে থাকুন পড়ুন {if ((0x59 == Serial1.read ()) && (0x59 == Serial1.read ())) // বাইট 1 এবং বাইট 2 {স্বাক্ষরবিহীন int t1 = Serial1.read (); // বাইট 3 = Dist_L স্বাক্ষরবিহীন int t2 = Serial1.read (); // বাইট 4 = Dist_H t2 << = 8; t2 += t1; liDARval = t2; t1 = Serial1.read (); // বাইট 5 = Strength_L t2 = Serial1.read (); // বাইট 6 = শক্তি_ এইচ টি 2 << = 8; t2 += t1; জন্য (int i = 0; i <3; i ++) Serial1.read (); // বাইট 7, 8, 9 উপেক্ষা করা হয়েছে}}}}

অকার্যকর সেটআপ()

{Serial1.begin (115200); // TFmini Serial.begin (115200) এর জন্য HW সিরিয়াল; // ইউএসবি থেকে কম্পিউটার বিলম্বের মাধ্যমে সিরিয়াল আউটপুট (100); // কিছু শুরু করার জন্য একটু সময় দিন // স্ট্যান্ডার্ড আউটপুট মোডে সেট করুন Serial1.write (0x42); Serial1.write (0x57); Serial1.write (0x02); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x00); Serial1.write (0x01); Serial1.write (0x06); // TFmini threads.addThread (readLiDAR) থেকে সিরিয়াল ইনপুট পড়ার জন্য থ্রেড সেটআপ করুন; }

অকার্যকর লুপ ()

{বিলম্ব (10); // 100Hz Serial.println (liDARval) এ TFmini এর নমুনা হিসাবে খুব বেশিবার পড়তে চাই না; }

ধাপ 3: সিরিয়াল প্লটারে Arduino IDE ভিউ ফলাফল ব্যবহার করা

সিরিয়াল প্লটারে Arduino IDE ভিউ ফলাফল ব্যবহার করে
সিরিয়াল প্লটারে Arduino IDE ভিউ ফলাফল ব্যবহার করে

আপনি যে পদ্ধতিটি চান তা ব্যবহার করতে পারেন, কিন্তু Arduino এর IDE ফলাফলগুলি সুন্দরভাবে চক্রান্ত করবে।

Teensy এর সাথে সংযোগ করুন, এবং সিরিয়াল মনিটর খুলুন। নিশ্চিত করুন যে Baudrate 115200 এ সেট করা আছে।

প্রস্তাবিত: