فهرست مطالب:

تبلت/تلفن به عنوان صفحه آردوینو و یک اسیلوسکوپ 2 دلاری: 4 مرحله
تبلت/تلفن به عنوان صفحه آردوینو و یک اسیلوسکوپ 2 دلاری: 4 مرحله

تصویری: تبلت/تلفن به عنوان صفحه آردوینو و یک اسیلوسکوپ 2 دلاری: 4 مرحله

تصویری: تبلت/تلفن به عنوان صفحه آردوینو و یک اسیلوسکوپ 2 دلاری: 4 مرحله
تصویری: تبدیل گوشی، تبلت و هر صفحه نمایشی به مانیتور دوم لمسی کامپیوتر و لپ‌تاپ 2024, جولای
Anonim
تبلت/تلفن به عنوان صفحه آردوینو و یک اسیلوسکوپ 2 دلاری
تبلت/تلفن به عنوان صفحه آردوینو و یک اسیلوسکوپ 2 دلاری
تبلت/تلفن به عنوان صفحه آردوینو و یک اسیلوسکوپ 2 دلاری
تبلت/تلفن به عنوان صفحه آردوینو و یک اسیلوسکوپ 2 دلاری
تبلت/تلفن به عنوان صفحه آردوینو و یک اسیلوسکوپ 2 دلاری
تبلت/تلفن به عنوان صفحه آردوینو و یک اسیلوسکوپ 2 دلاری

در حالی که می توان یک صفحه نمایش لمسی LCD با رزولوشن 320x240 ارزان برای یک پروژه مبتنی بر آردوینو خرید ، استفاده از یک تبلت یا تلفن به عنوان صفحه لمسی و منبع تغذیه برای یک دستگاه راحت تر است-مخصوصاً برای نمونه سازی و آزمایش طرح. پروژه شما می توانید وضوح بسیار بالاتری داشته باشید و صفحه نمایش بهتری در دستگاه Android خود داشته باشید (به عنوان مثال ، همه خطوط شما دارای نام مستعار نیستند).

صفحه نمایش مبتنی بر Android می تواند از طریق سریال USB ، بلوتوث یا WiFi (به عنوان مثال ، ESP8266) متصل شود.

برای این منظور من VectorDisplay (منبع اینجا) را نوشتم ، یک برنامه Android که با یک کتابخانه Arduino که زیرمجموعه بزرگی از رابط Adafruit GFX را پیاده سازی می کند ، جفت می شود. می توانید کدی بنویسید که به راحتی برای استفاده از یک صفحه مستقل منتقل شود یا از طرح با یک صفحه نمایش مبتنی بر Android استفاده کنید. و می توانید دستوراتی را از برنامه Android برای کنترل طرح آردوینو ارسال کنید. کتابخانه آردوینو تا حد زیادی مستقل از برد است: باید با هر بردی که یک شی پورت سریال USB به نام Serial یا با ESP8266 از طریق WiFi یا با بلوتوث (ابتدا برد خود را جفت کنید) کار کند.

به عنوان اثبات مفهوم ، من پروژه STM32-O-Scope را برای استفاده از VectorDisplay به جای صفحه نمایش ILI9341 منتقل کردم. نتیجه یک اسیلوسکوپ قابل حمل (با ناهمواری در اطراف لبه ها) 1.7MS/s است که به چیزی بیش از یک برد STM32F103C 2 دلاری (با استفاده از هسته آردوینو مبتنی بر libmaple) ، دو سیم ، یک کابل USB OTG و یک دستگاه Android نیاز ندارد. به البته ، تنها چیزی که با آن به دست می آورید محدوده ای از 0 تا حدود 3.3 ولت است.

مرحله 1: نصب نرم افزار

فرض می کنم شما یک Arduino IDE برای برد مورد علاقه خود تنظیم کرده اید و برد مورد علاقه شما دارای رابط سریال USB است.

به Sketch بروید | شامل کتابخانه | مدیریت کتابخانه ها "VectorDisplay" را در قسمت جستجو قرار داده و پس از یافتن روی "نصب" کلیک کنید.

فایل کتابخانه را از اینجا بارگیری کنید.

در پوشه داخل پوشه Arduino/libraries خود را از حالت فشرده خارج کنید.

VectorDisplay را از Google Play بارگیری کرده و روی دستگاه Android خود نصب کنید. ممکن است لازم باشد نصب را از منابع ناشناخته در دستگاه Android خود فعال کنید. برنامه Android از کتابخانه UsbSerial استفاده می کند و نقطه شروع یکی از نمونه برنامه های کتابخانه بود.

مرحله 2: طرح نمایشی

طرح نمایشی
طرح نمایشی
طرح نمایشی
طرح نمایشی
طرح نمایشی
طرح نمایشی
طرح نمایشی
طرح نمایشی

برد خود را (در صورت لزوم در حالت بارگذاری) به رایانه خود وصل کرده و به File | بروید مثالها | VectorDisplay | حلقه های موجود در IDE Arduino شما. روی دکمه بارگذاری (پیکان راست) کلیک کنید.

برنامه VectorDisplay را در دستگاه Android خود راه اندازی کنید. برد خود را از طریق کابل USB OTG به دستگاه Android متصل کنید. (اگر برد شما دارای درگاه میکرو USB است ، مطمئن شوید که میزبان USB OTG شما به دستگاه Android می رود). اکنون باید یک درخواست مجوز برای VectorDisplay دریافت کنید. دکمه تایید را فشار دهید.

اگر همه چیز خوب پیش برود ، VectorDisplay اکنون دو دکمه را در سمت چپ صفحه نشان می دهد: Circle و Color. با فشار دادن دایره یک دایره تصادفی روی صفحه ترسیم می شود و رنگ قبل از دایره بعدی رنگ را به رنگ تصادفی تغییر می دهد.

اگر به طرح حلقه ها در IDE نگاه کنید ، می بینید که نمایش بردار سریال با:

SerialDisplayClass صفحه نمایش ؛

و سپس در setup () با:

Display.begin ()؛

سپس دکمه های فرمان با Display.addButton () درخواست می شوند. سپس حلقه () Display.readMessage () را فرا می خواند تا به دنبال دستوراتی باشد که از طریق دکمه های فرمان ارسال می شوند.

به طور پیش فرض ، سیستم مختصات صفحه نمایش 240x320 است. با این حال ، خطوط و متن همه با استفاده از وضوح کامل صفحه نمایش دستگاه اندرویدی شما ترسیم می شوند و برای ظاهر خوب ، ضد یخ زدگی را ترسیم می کنند. به همین دلیل این برنامه Vector Display نام دارد.

مرحله 3: API

API موجود در کتابخانه در فایل VectorDisplay.h قرار دارد. ابتدا باید یک شیء Display را مقداردهی اولیه کنید. برای استفاده از USB ، این کار را با موارد زیر انجام دهید:

SerialDisplayClass صفحه نمایش ؛

اتصال را با Display.begin () اولیه کنید.

دو مجموعه روش در شی SerialDisplayClass موجود است: یک مجموعه از رنگ 32 بیتی (از جمله alpha) استفاده می کند و از دستوراتی که بسیار نزدیک به پروتکل سریال USB هستند که برنامه VectorDisplay من استفاده می کند ، و مجموعه دیگر زیر مجموعه ای از استاندارد است روش های کتابخانه Adafruit GFX ، با استفاده از رنگ 16 بیتی. در بیشتر موارد می توانید دو مجموعه دستورات را آزادانه مخلوط کنید ، با این تفاوت که اگر از روش های سازگار با Adafruit استفاده می کنید ، باید از دستورات رنگی 16 بیتی استفاده کنید که نام آنها به جای دستورات 32 بیتی به 565 ختم می شود.

می توانید سیستم مختصات را با Display.coordinates (عرض ، ارتفاع) تنظیم کنید. پیش فرض عرض = 240 و ارتفاع = 320 است. اگر می خواهید از یک صفحه نمایش با پیکسل های غیر مربع تقلید کنید ، می توانید از Display.pixelAspectRatio (نسبت) استفاده کنید.

برخی از متدها ، از جمله pixelAspectRatio () ، از یک آرگومان FixedPoint32 استفاده می کنند. این یک عدد صحیح 32 بیتی است که یک عدد نقطه شناور را نشان می دهد ، جایی که 65536 نشان دهنده 1.0 است. برای تبدیل یک شماره نقطه شناور x به FixedPoint32 ، این کار را انجام دهید: (FixedPoint32) (65536. * x) (یا فقط TO_FP32 (x)).

علاوه بر امکان ارسال دستورات از دکمه های Android ، رویدادهای لمسی روی صفحه نیز به MCU ارسال می شود.

برای استفاده از وای فای ، به نمونه rings_esp8266 مراجعه کنید. برای رفتن به حالت WiFi ، باید دکمه USB را در برنامه فشار دهید.

برای بلوتوث ، باید بتوانید موارد زیر را انجام دهید:

SerialDisplayClass Display (MyBluetoothSerial) ؛

… MyBluetoothSerial.begin (115200)؛ Display.begin ()؛

و سپس درست مانند مورد سریال USB ، که MyBluetoothSerial هر شی Stream (به عنوان مثال ، Serial2) به آداپتور بلوتوث شما متصل است ، ادامه دهید.

مرحله 4: یک اسیلوسکوپ 2 دلاری

یک اسیلوسکوپ 2 دلاری
یک اسیلوسکوپ 2 دلاری
یک اسیلوسکوپ 2 دلاری
یک اسیلوسکوپ 2 دلاری
یک اسیلوسکوپ 2 دلاری
یک اسیلوسکوپ 2 دلاری

برای یک اسیلوسکوپ سریع و کثیف ، شما به یک قرص آبی یا مشکی (که با آن راحت تر کنار می آیید) نیاز دارید ، تخته STM32F103C8 ، که می توانید آن را با کمتر از 2 دلار در Aliexpress تهیه کنید. من نحوه آماده سازی برد برای استفاده با محیط آردوینو برای آن را توضیح می دهم و طرح هایی را در اینجا نصب می کنم.

این طرح را روی صفحه بارگیری کنید ، که یک نسخه اصلاح شده از طرح STM32-O-Scope Pingumacpenguin است. خط #تعریف BOARD_LED را برای مطابقت با صفحه خود ویرایش کنید. من از قرص مشکی استفاده می کنم که LED آن PB12 است. قرص های آبی (و برخی از قرص های سیاه که دارای پین همان قرص آبی هستند) دارای LED در PC13 هستند.

یک سیم-پروب زمین-را به زمین برد و سیم دیگر را به پین B0 برد وصل کنید. با راه اندازی VectorDisplay ، برد را به دستگاه Android متصل کنید و یک اسیلوسکوپ قابل حمل و باتری دارید.

در عکس من اسیلوسکوپ را به یک فوتوترانزیستور وصل کرده ام. ردیابی روی صفحه از کنترل از راه دور مادون قرمز تلویزیون است.

توصیه شده: