Mündəricat:

Tablet/Telefon Arduino Ekranı Olaraq və 2 dollarlıq Osiloskop: 4 Addım
Tablet/Telefon Arduino Ekranı Olaraq və 2 dollarlıq Osiloskop: 4 Addım

Video: Tablet/Telefon Arduino Ekranı Olaraq və 2 dollarlıq Osiloskop: 4 Addım

Video: Tablet/Telefon Arduino Ekranı Olaraq və 2 dollarlıq Osiloskop: 4 Addım
Video: Всё про прошивку Xiaomi 2024, Iyul
Anonim
Tablet/Telefon Arduino Ekranı Olaraq və 2 dollarlıq Osiloskop
Tablet/Telefon Arduino Ekranı Olaraq və 2 dollarlıq Osiloskop
Tablet/Telefon Arduino Ekranı Olaraq və 2 dollarlıq Osiloskop
Tablet/Telefon Arduino Ekranı Olaraq və 2 dollarlıq Osiloskop
Tablet/Telefon Arduino Ekranı Olaraq və 2 dollarlıq Osiloskop
Tablet/Telefon Arduino Ekranı Olaraq və 2 dollarlıq Osiloskop

Arduino əsaslı bir layihə üçün ucuz 320x240 LCD toxunma ekranı satın ala bilsəniz də, xüsusən bir eskizin prototipləşdirilməsi və sınanması üçün bir tablet və ya telefondan həm toxunma ekranı, həm də enerji mənbəyi olaraq istifadə etmək daha rahat ola bilər. layihə. Android cihazınızda daha yüksək bir qətnamə və daha yaxşı görünən bir ekrana sahib ola bilərsiniz (məsələn, bütün sətirləriniz anti-aliased olacaq).

Android əsaslı ekran USB Serial, Bluetooth və ya WiFi (məsələn, ESP8266) vasitəsilə qoşula bilər.

Bu məqsədlə, Adafruit GFX interfeysinin böyük bir alt hissəsini tətbiq edən bir Arduino kitabxanası ilə birləşən bir Android tətbiqi olan VectorDisplay (buradakı mənbə) yazdım. Daha sonra müstəqil bir ekran istifadə etmək üçün asanlıqla nəql edilə bilən kod yaza bilərsiniz və ya Android əsaslı bir ekranla eskizdən istifadə etməyə davam edə bilərsiniz. Arduino eskizini idarə etmək üçün Android tətbiqindən əmrlər göndərə bilərsiniz. Arduino kitabxanası əsasən lövhədən asılı deyil: Serial adlı bir USB serial port obyekti təmin edən hər hansı bir lövhə ilə və ya WiFi üzərindən və ya Bluetooth ilə ESP8266 ilə işləməlidir (əvvəlcə lövhənizi qoşun).

Konsepsiya tətbiqinin sübutu olaraq, ILI9341 ekranının yerinə VectorDisplay istifadə etmək üçün STM32-O-Scope layihəsini köçürdüm. Nəticə, 2 dollarlıq STM32F103C lövhəsindən (libmaple əsaslı Arduino nüvəsindən istifadə etməklə) başqa heç bir şey tələb etməyən portativ, batareyalı 1.7MS/s osiloskop, iki tel, USB OTG kabeli və Android cihazıdır.. Əlbəttə ki, bununla əldə etdiyiniz hər şey 0 ilə 3.3V arasında dəyişir.

Addım 1: Proqramı Qurun

Sevdiyiniz lövhə üçün bir Arduino IDE qurduğunuzu və sevdiyiniz lövhənin USB serial interfeysinə sahib olduğunu düşünürəm.

Sketch -ə gedin | Kitabxana daxil edin | Kitabxanaları idarə edin. Axtarış sahəsinə "VectorDisplay" qoyun və tapıldıqdan sonra "Quraşdır" düyməsini basın.

Kitabxana zipini buradan yükləyin.

Arduino/libraries qovluğunuzdakı bir qovluğa açın.

VectorDisplay -ı Google Play -dən yükləyin və Android cihazınıza quraşdırın. Android cihazınızda naməlum mənbələrdən quraşdırmanı aktiv etməyiniz lazım ola bilər. Android tətbiqi UsbSerial kitabxanasından istifadə edir və başlanğıc nöqtəsi kitabxana üçün nümunə tətbiqlərdən biri idi.

Addım 2: Demo Sketch

Demo eskiz
Demo eskiz
Demo eskiz
Demo eskiz
Demo eskiz
Demo eskiz
Demo eskiz
Demo eskiz

Lövhənizi (lazım olduqda yükləmə rejimində) kompüterinizə qoşun və Fayl | Nümunələr | VectorDisplay | Arduino IDE -də dairələr. Yükləmə düyməsini basın (sağ ox).

Android cihazınızda VectorDisplay tətbiqini başladın. Lövhənizi USB OTG kabeli ilə Android cihazına qoşun. (Lövhənizin USB mikro portu varsa, USB OTG ana tərəfinizin Android cihazına getdiyinə əmin olun). İndi VectorDisplay üçün icazə sorğusu almalısınız. OK düyməsini basın.

Hər şey yaxşı olarsa, VectorDisplay indi ekranın sol tərəfində iki düyməni göstərəcək: Dairə və Rəng. Dairəyə basmaq ekranda təsadüfi bir dairə çəkir və Rəng növbəti dairədən əvvəl rəngi təsadüfi bir rəngə dəyişir.

IDE -də dairələrin eskizinə baxsanız, serial vektorunun aşağıdakılarla elan edildiyini görəcəksiniz.

SerialDisplayClass Ekran;

və sonra setup () ilə işə salın:

Display.begin ();

Sonra Display.addButton () ilə əmr düymələri tələb olunur. Sonra loop () əmr düymələri vasitəsilə göndərilən əmrləri axtarmaq üçün Display.readMessage () çağırır.

Varsayılan olaraq, ekran üçün koordinat sistemi 240x320 -dir. Bununla birlikdə, xətlər və mətnlərin hamısı yaxşı bir görünüş üçün antialiasing ilə birlikdə Android cihaz ekranınızın tam həlli istifadə edilməklə çəkilir. Bu səbəbdən tətbiqə Vektor Ekranı deyilir.

Addım 3: API

Kitabxanadakı API VectorDisplay.h faylındadır. Əvvəlcə bir Display obyektini işə salmalısınız. USB istifadəsi üçün bunu edin:

SerialDisplayClass Ekran;

Display.begin () ilə əlaqəni başladın.

SerialDisplayClass obyektində iki üsul dəsti mövcuddur: bir dəstdə 32 bitlik rəng (alfa daxil olmaqla) və VectorDisplay tətbiqimin istifadə etdiyi USB seriya protokoluna olduqca yaxın olan əmrlərdən istifadə olunur, digər dəst isə standartın alt hissəsidir 16 bitlik rəng istifadə edərək Adafruit GFX kitabxana üsulları. Əksər hallarda iki komanda dəstini sərbəst şəkildə qarışdıra bilərsiniz, istisna olmaqla, Adafruit uyğun metodlardan istifadə edirsinizsə, adları 32 bit yerinə 565 ilə bitən 16 bit rəngli əmrlərdən istifadə etməlisiniz.

Koordinat sistemini Display.coordinates (eni, hündürlüyü) ilə təyin edə bilərsiniz. Varsayılan genişlik = 240 və hündürlük = 320 -dir. Kvadrat olmayan pikselli bir ekranı təqlid etmək istəyirsinizsə, Display.pixelAspectRatio (nisbət) istifadə edə bilərsiniz.

PixelAspectRatio () da daxil olmaqla bir neçə metod FixedPoint32 arqumentini götürür. Bu, 65536 1.0-ı təmsil edən üzən nöqtə sayını təmsil edən 32 bitlik tam ədəddir. Üzən nöqtə nömrəsini x FixedPoint32 -ə çevirmək üçün bunu edin: (FixedPoint32) (65536. * X) (və ya sadəcə TO_FP32 (x)).

Android düymələrindən əmr göndərə bilməklə yanaşı, ekran toxunma hadisələri də MCU -ya göndərilir.

WiFi istifadəsi üçün, dairələr_esp8266 nümunəsinə baxın. WiFi rejiminə keçmək üçün tətbiqdəki USB düyməsini basmalısınız.

Bluetooth üçün aşağıdakıları etməlisiniz:

SerialDisplayClass Ekran (MyBluetoothSerial);

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

və sonra USB adapter qutusunda olduğu kimi davam edin, burada MyBluetoothSerial Bluetooth adapterinizə qoşulan hər hansı bir Stream obyekti (məsələn, Serial2) olur.

Addım 4: 2 dollarlıq bir osiloskop

2 dollarlıq osiloskop
2 dollarlıq osiloskop
2 dollarlıq osiloskop
2 dollarlıq osiloskop
2 dollarlıq osiloskop
2 dollarlıq osiloskop

Sürətli və çirkli osiloskop üçün, Aliexpress -də 2 dollardan aşağı qiymətə əldə edə biləcəyiniz mavi və ya qara (işləmək daha asan) bir tablet STM32F103C8 lövhəsinə ehtiyacınız olacaq. Lövhəni bunun üçün Arduino mühiti ilə istifadəyə necə hazırlayacağımı və burada eskizləri necə quracağımı təsvir edirəm.

Pingumacpenguin-in STM32-O-Scope eskizinin dəyişdirilmiş bir versiyası olan bu eskizi lövhədə yükləyin. Lövhənizə uyğun olaraq #define BOARD_LED xəttini düzəldin. LED PB12 olan qara bir həb istifadə edirəm. Mavi həblər (və mavi həb ilə eyni pinout olan bəzi qara həblər) PC13 -də LED -ə malikdir.

Bir teli-topraklama probunu-lövhənin torpağına və başqa bir teli lövhənin B0 pininə bağlayın. Lövhəni VectorDisplay işləyən bir Android cihazına qoşun və portativ, batareyalı osiloskopunuz var.

Fotoda bir fototransistora bağlı osiloskopum var. Ekrandakı iz TV -nin infraqırmızı uzaqdan idarəedicisindəndir.

Tövsiyə: