برد تینسی Teensy

ساخت ماوس Mouse کامپیوتر با استفاده از برد Teensy 3.2 تینسی

نوشته شده توسط CiferTech

در آموزش های قبلی از سری آموزش های برد Teensy اقدام به ساخت کیبرد، MIDI ،HID، مدیا کنترلر کردیم. بعد از تمام این پروژه های پرکاربرد نوبت به ساخت ماوس با استفاده از برد های Teensy است، بله متن اشتباه تایپی نداره واقعا قد داریم با استفاده از برد های Teency یک ماوس بسازیم. یکی از قابلیت های برجسته برد های تینسی برقرای ارتباط به روش هایی  جدا از سریال است که کاربر را را قادر میسازد اقدام به ساخت دستگاه های پرکاربردی کند که معمولا نمونه چنین پروژه هایی را در ویترین مغازه می‌بینیم.  در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

تبدیل برد تینسی 3.2 به موس - دیجی اسپارک

 


برد Teensy 


تینسی Teensy یک برد توسعه با رابط کاربری آسان و دارای ویژگی های زیادی در یک بسته خوب ارائه شده است. هر برد Teensy همراه با یک بوت لودر از قبل فلش می شود بنابراین می توانید با استفاده از اتصال USB روی آن برنامه ریزی کنید، نیازی به برنامه نویس خارجی نیست و می‌توانید با استفاده از C برای Teensy در ویرایشگر مورد علاقه خود برنامه نویسی کنید و یا می‌توانید افزونه Teensyduino را برای Arduino IDE نصب کرده و با  Arduino IDE را برای آن برنامه بنویسید.

ساخت ماوس برد تینسی Teensy 3.2 - دیجی اسپارک

 

پردازنده موجود در Teensy به USB نیز دسترسی دارد و می‌تواند هر نوع دستگاه USB مورد نیاز شما را تقلید کند و آن را برای USB-MIDI و سایر پروژه های HID آماده کار کند. پردازنده ۳۲ بیتی چند ویژگی دیگر نیز فراهم کرده است، از جمله چند کانال دسترسی مستقیم به حافظه، چند ADC با رزولوشن بالا و حتی یک رابط صوتی دیجیتال I2S. همچنین چهار تایمر جداگانه وجود دارد، به علاوه یک تایمر تأخیر. و همه پین های دیجیتال دارای قابلیت وقفه هستند و قابلیت ارائه ولتاژ سیستم ۳٫۳ ولت را تا حداکثر ۲۵۰ میلی آمپر را دارد.

 


نحوه کار پروژه


در این پروژه با استفاده یکی از قابلیت USB Type در برد تینسی، اقدام به ساخت یک ماوس می‌کنیم. تمام موارد کنترلی در ماوس های معمولی در این ورژن نیز  قابل اجرا هستند، کلید های مختلف، بالا و پایین کردن صفحه با اسکرول، تغییر مختصات نشانگر ماوس و دیگر موارد همگی قابل اجرا هستند، در این پروژه من از میکرو سوییچ برای اجرای موارد ذکر شده استفاده خواهم کرد به این صورت که هر پین در برد teensy وظیف صدور یک فرمان در هربا تغییر وضعیت پین را دارند. برای مثال پین D2 عملیات کلیک چپ را بر عهده دارد و هربار که تغییر در پین بوسیله میکروسوییچ اعمال شود، فرمان مورد نظر ارسال و اجرا می‌شود. و به همین شکل دیگر عملیات ها نیز صورت می‌گیرند.

 


وسایل مورد نیاز


برد Teency 3.2

میکروسوییچ

 


نصب افزونه Teensyduino


در موارد قبلی برای نصب افزونه مرجع برد هایی مانند ESP32 با استفاده از لینکی از منوی prefences اقدام به نصب افزونه برد مورد نظر برای شروع کار با برد و تشخیص توسط نرم‌افزار استفاده می‌کردیم، اما این فرآیند برای برد های Teency به لطف Teensyduino بسیار آسان تر و سریع شده. در ادامه آموزش مرحله به مرحله با هم اقدام به نصب Teensyduino خواهیم کرد. ابتدا فایل اجرایی مورد نیاز را از این لینک دانلود کنید و مراحل زیر را دنبال کنید.

  • پس از اجرا کردن فایل exe. با این صفحه روبرو می‌شوید. بر روی Next کلیک کنید تا به مرحله بعد بروید.

نصب افزونه Teensyduino در پروژه موس با تینسی - دیجی اسپارک

 

  •  در آموزش مقدماتی مرحله به مرحله با هم اقدام به نصب Teensyduino کرده‌ایم. برای مشاهده مراحل نصب به این آموزش مراجعه کنید.

 


شماتیک و اتصالات پروژه


برای تست این پروژه از پین های D7 ،D8 ،D9 ،D10 استفاده کردم، که هر کدام وظیفه حرکت دادن نشانگر ماوس در یک موحور را دارند. در ادامه پین های D2، D3 نیز با استفاده کرد میکروسوییچ هایی که قرار دادیم امکان کنترل کلیک چپ و راست را به کاربر می‌دهند. ابتدا مدار را با استفاده از شماتیک و جدول زیر برقرار کنید.

نکته: هر کدام از میکروسوییچ ها از یک پین به برد تینسی متصل می‌شوند و از طرف دیگر به پین GND متصل خواهند شد.

اتصالات برد تینسی Teensy 3.2 - دیجی اسپارک

 

  • شماتیک اتصالات پروژه ساخت ماوس با استفاده از برد Teensy 3.2

شماتیک اتصالات ساخت موس با برد تینسی 3.2 - دیجی اسپارک

 


کد و راه‌اندازی پروژه


در کدهای این پروژه از کتابخانه Bounce.h استفاده شده که کتابخانه پیشفرض برای برد های تینسی بشمار می‌رود. در کد های این پروژه مواردی از جمله سرعت حرکت نشانگر و همچنین پین های مورد استفاده قابل تغییر هستند که در ادامه این موارد را با هم بررسی خواهیم کرد.

  • در کد زیر با تغییر مقدار عددی قادر خواهیم بود مقدار جهش پوینتر ماوس به ازای هربار کلیک را تغییر دهیم، با تغییر مقدار به سمت صفر سرعت ماوس کاهش پیدا می‌کند.
const int moveDistance = 20;

 

  • در کد های زیر پسن های مدنظر برای هر فانکشن تعرفی شده، فرمت معرفی پین بصورت پایه های D2 و D3 هست پسوند و شماره پایه، که در صورت نیاز قادر به تغییر آن ها خواهید بود.
Bounce button2 = Bounce(2, 10);
Bounce button3 = Bounce(3, 10);  
Bounce button4 = Bounce(4, 10);  
Bounce button5 = Bounce(5, 10);  
Bounce button6 = Bounce(6, 10);

 

  • مقدار زیر رزولوشن مانیتور شما است که در صورت عدم تطابق باید تنظیم شود و به شما کمک میکند، در نهایت یک ماوس دقیق در اختیار داشته باشید.
Mouse.screenSize(1920, 1080);

 

کد های کامل پروژه ساخت ماوس با استفاده از برد Teensy 3.2

#include <Bounce.h>

const int moveDistance = 20; 

Bounce button2 = Bounce(2, 10);
Bounce button3 = Bounce(3, 10);  
Bounce button4 = Bounce(4, 10);  
Bounce button5 = Bounce(5, 10);  
Bounce button6 = Bounce(6, 10);

Bounce button7 = Bounce(7, 1);
Bounce button8 = Bounce(8, 1);
Bounce button9 = Bounce(9, 1); 
Bounce button10 = Bounce(10, 1);

Bounce button14 = Bounce(14, 10);
Bounce button15 = Bounce(15, 10);
Bounce button16 = Bounce(16, 10);
Bounce button17 = Bounce(17, 10);

Bounce button21 = Bounce(21, 10);
Bounce button22 = Bounce(22, 10);
Bounce button23 = Bounce(23, 10);

void setup() {

  pinMode(2, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
  pinMode(4, INPUT_PULLUP);
  pinMode(5, INPUT_PULLUP);
  pinMode(6, INPUT_PULLUP);
  pinMode(7, INPUT_PULLUP);
  pinMode(8, INPUT_PULLUP);
  pinMode(9, INPUT_PULLUP);
  pinMode(10, INPUT_PULLUP);
  pinMode(14, INPUT_PULLUP);
  pinMode(15, INPUT_PULLUP);
  pinMode(16, INPUT_PULLUP);
  pinMode(17, INPUT_PULLUP);
  pinMode(21, INPUT_PULLUP);
  pinMode(22, INPUT_PULLUP);
  pinMode(23, INPUT_PULLUP);

  Mouse.screenSize(1920, 1080);

}


void loop() {
  
}
  button2.update();
  button3.update();
  button4.update();
  button5.update();
  button6.update();
  button7.update();
  button8.update();
  button9.update();
  button10.update();
  button14.update();
  button15.update();
  button16.update();
  button17.update();
  button21.update();
  button22.update();
  button23.update();

  if (button7.fallingEdge()) {
    Mouse.move(-moveDistance, 0); 
  }
  if (button8.fallingEdge()) {
    Mouse.move(moveDistance, 0); 
  }
  if (button9.fallingEdge()) {
    Mouse.move(0, -moveDistance); 
  }
  if (button10.fallingEdge()) {
    Mouse.move(0, moveDistance);  
  }

  if (button14.fallingEdge()) {
    Mouse.scroll(1);  
  }
  if (button15.fallingEdge()) {
    Mouse.scroll(-1);   
  }
  if (button16.fallingEdge()) {
    Mouse.scroll(0, 1); 
  }
  if (button17.fallingEdge()) {
    Mouse.scroll(0, -1);  
  }

  if (button21.fallingEdge()) {
    Mouse.moveTo(10, 10);  
  }
  if (button22.fallingEdge()) {
    Mouse.moveTo(960, 540);   
    
  if (button23.fallingEdge()) {
    Mouse.moveTo(24, 1066);  
  }

  if (button2.fallingEdge()) {
    Mouse.press(MOUSE_LEFT);
  }
  if (button2.risingEdge()) {
    Mouse.release(MOUSE_LEFT);
  }
  if (button3.fallingEdge()) {
    Mouse.press(MOUSE_MIDDLE);
  }
  if (button3.risingEdge()) {
    Mouse.release(MOUSE_MIDDLE);
  }
  if (button4.fallingEdge()) {
    Mouse.press(MOUSE_RIGHT);
  }
  if (button4.risingEdge()) {
    Mouse.release(MOUSE_RIGHT);
  }
  if (button5.fallingEdge()) {
    Mouse.press(MOUSE_BACK);
  }
  if (button5.risingEdge()) {
    Mouse.release(MOUSE_BACK);
  }
  if (button6.fallingEdge()) {
    Mouse.press(MOUSE_FORWARD);
  }
  if (button6.risingEdge()) {
    Mouse.release(MOUSE_FORWARD);
  }
}

 

  • توجه داشته باشید که مطابق تصویر زیر باید از منوی Tools در نرم‌افزار Arduino IDE اقدام به تغییر UsbType کنید و مقدار را بر روی Mouse تنظیم کنید تا ارتباط به درستی با سیستم و میکرو برقرار شود.

کد و راه‌اندازی پروژه موس با برد تینسی - دیجی اسپارک

 


کلام آخر با سایفر


در این پروژه بار دیگر با استفاده از یکی قابلیت های برد teency اقدام به ساخت گجتی جالب کردیم، از این پروژه می‌توانید در مواردی که نیاز به کنترل سیستم خود وابسته به میکروکنترلر ها دارید، استفاده کنید. همچنین در آینده می‌توانیم با افزودن ماژول هایی مانند MPU6050 به این پروژه اقدام به کنترل نشانگر ماوس به شکل کنترل های های تلویزیون کنیم که بسیار جذاب خواهد بود.

پروژه ساخت موس با برد تینسی 3.2 - دیجی اسپارک

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

CiferTech

تبادل نظر و رفع عیب با ثبت دیدگاه

۶ دیدگاه