Isi kandungan:

Tablet / Telefon Sebagai Skrin Arduino, dan Osiloskop $ 2: 4 Langkah
Tablet / Telefon Sebagai Skrin Arduino, dan Osiloskop $ 2: 4 Langkah

Video: Tablet / Telefon Sebagai Skrin Arduino, dan Osiloskop $ 2: 4 Langkah

Video: Tablet / Telefon Sebagai Skrin Arduino, dan Osiloskop $ 2: 4 Langkah
Video: Turn your Old Mobile Phone into an Oscilloscope With Raspberry pi pico 2024, November
Anonim
Tablet / Telefon Sebagai Skrin Arduino, dan Osiloskop $ 2
Tablet / Telefon Sebagai Skrin Arduino, dan Osiloskop $ 2
Tablet / Telefon Sebagai Skrin Arduino, dan Osiloskop $ 2
Tablet / Telefon Sebagai Skrin Arduino, dan Osiloskop $ 2
Tablet / Telefon Sebagai Skrin Arduino, dan Osiloskop $ 2
Tablet / Telefon Sebagai Skrin Arduino, dan Osiloskop $ 2

Walaupun seseorang dapat membeli layar sentuh LCD 320x240 yang murah untuk projek yang berbasis di Arduino, lebih mudah - terutamanya untuk membuat prototaip dan menguji lakaran - untuk menggunakan tablet atau telefon sebagai skrin sentuh dan sumber kuasa untuk projek. Anda boleh mempunyai resolusi yang jauh lebih tinggi dan paparan yang lebih baik pada peranti Android anda (mis., Semua baris anda akan anti-alias).

Skrin berasaskan Android boleh disambungkan melalui USB Serial, Bluetooth atau WiFi (mis., ESP8266).

Untuk itu saya menulis VectorDisplay (sumber di sini), aplikasi Android yang berpasangan dengan perpustakaan Arduino yang menerapkan subset besar antara muka Adafruit GFX. Anda boleh menulis kod yang kemudian dapat dengan mudah dibawa untuk menggunakan layar mandiri, atau terus menggunakan lakaran dengan paparan berasaskan Android. Dan anda boleh menghantar arahan dari aplikasi Android untuk mengawal lakaran Arduino. Perpustakaan Arduino sebahagian besarnya tidak bergantung pada papan: ia harus berfungsi dengan papan apa pun yang menyediakan objek port bersiri USB bernama Serial atau dengan ESP8266 melalui WiFi atau Bluetooth (pasangkan papan anda terlebih dahulu).

Sebagai bukti aplikasi konsep, saya memindahkan projek STM32-O-Scope tanpa tulang untuk menggunakan VectorDisplay sebagai pengganti paparan ILI9341. Hasilnya adalah (osiloskop 1.7MS / s mudah alih bertenaga bateri mudah alih yang memerlukan tidak lebih daripada papan STM32F103C $ 2 (menggunakan teras Arduino berasaskan libmaple), dua wayar, kabel USB OTG dan peranti Android. Sudah tentu, semua yang anda dapat dengan ini adalah antara 0 hingga 3.3V.

Langkah 1: Pasang Perisian

Saya menganggap anda mempunyai Arduino IDE untuk papan kegemaran anda dan papan kegemaran anda mempunyai antara muka siri USB.

Pergi ke Lakaran | Sertakan perpustakaan | Urus perpustakaan. Letakkan "VectorDisplay" di kawasan carian dan klik "Pasang" setelah dijumpai.

Muat turun zip perpustakaan dari sini.

Nyahzip ke folder di dalam folder Arduino / perpustakaan anda.

Muat turun VectorDisplay dari Google Play dan pasangkannya pada peranti Android anda. Anda mungkin perlu mengaktifkan pemasangan dari sumber yang tidak diketahui pada peranti Android anda. Aplikasi Android menggunakan perpustakaan UsbSerial dan titik permulaan adalah salah satu contoh aplikasi untuk perpustakaan.

Langkah 2: Lakaran Demo

Lakaran Demo
Lakaran Demo
Lakaran Demo
Lakaran Demo
Lakaran Demo
Lakaran Demo
Lakaran Demo
Lakaran Demo

Sambungkan papan anda (dalam mod muat naik jika perlu) ke komputer anda dan pergi ke Fail | Contoh | Paparan Vektor | bulatan di Arduino IDE anda. Klik pada butang muat naik (anak panah kanan).

Mulakan aplikasi VectorDisplay pada peranti Android anda. Pasangkan papan anda ke peranti Android melalui kabel USB OTG. (Jika papan anda mempunyai port mikro USB, pastikan bahagian host USB OTG anda menuju ke peranti Android). Anda kini harus mendapat pertanyaan kebenaran untuk VectorDisplay. Tekan OK.

Sekiranya semuanya berjalan lancar, VectorDisplay kini akan menunjukkan dua butang di sebelah kiri skrin: Bulatan dan Warna. Menekan Lingkaran melukis bulatan rawak di layar dan Warna mengubah warna menjadi warna rawak sebelum bulatan berikutnya.

Sekiranya anda melihat lakaran bulatan di IDE, anda akan melihat bahawa paparan vektor bersiri dinyatakan dengan:

Paparan SerialDisplayClass;

dan kemudian dimulakan dalam persediaan () dengan:

Paparan.begin ();

Kemudian butang arahan diminta dengan Display.addButton (). Kemudian gelung () memanggil Display.readMessage () untuk mencari arahan yang dihantar melalui butang arahan.

Secara lalai, sistem koordinat untuk paparan adalah 240x320. Walau bagaimanapun, garis dan teks semuanya dilukis menggunakan resolusi penuh skrin peranti Android anda, dengan antialiasing untuk penampilan yang baik. Itulah sebabnya aplikasinya dipanggil Paparan Vektor.

Langkah 3: API

API di perpustakaan ada dalam fail VectorDisplay.h. Anda perlu memulakan objek Paparan terlebih dahulu. Untuk penggunaan USB, lakukan dengan:

Paparan SerialDisplayClass;

Memulakan sambungan dengan Display.begin ().

Terdapat dua set kaedah yang terdapat di objek SerialDisplayClass: satu set menggunakan warna 32-bit (termasuk alpha) dan perintah yang cukup dekat dengan protokol bersiri USB yang digunakan oleh aplikasi VectorDisplay saya, dan set yang lain adalah subset standard Kaedah perpustakaan Adafruit GFX, menggunakan warna 16-bit. Sebahagian besarnya anda boleh mencampurkan dua set perintah dengan bebas, dengan pengecualian bahawa jika anda menggunakan kaedah yang sesuai dengan Adafruit, anda harus menggunakan perintah warna 16-bit yang namanya diakhiri dengan 565 dan bukan yang 32-bit.

Anda boleh menetapkan sistem koordinat dengan Display.coordinates (lebar, tinggi). Lalai adalah lebar = 240 dan tinggi = 320. Sekiranya anda ingin meniru paparan dengan piksel bukan persegi, anda boleh menggunakan Display.pixelAspectRatio (ratio).

Beberapa kaedah, termasuk pixelAspectRatio (), mengambil argumen FixedPoint32. Ini adalah bilangan bulat 32-bit yang mewakili nombor titik terapung, di mana 65536 mewakili 1.0. Untuk menukar nombor terapung x ke FixedPoint32, lakukan: (FixedPoint32) (65536. * X) (atau hanya TO_FP32 (x)).

Selain dapat mengirim perintah dari butang Android, acara sentuhan layar juga dikirim ke MCU.

Untuk penggunaan WiFi, lihat contoh circle_esp8266. Anda perlu menekan butang USB di aplikasi untuk beralih ke mod WiFi.

Untuk Bluetooth, anda seharusnya dapat melakukan:

Paparan SerialDisplayClass (MyBluetoothSerial);

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

dan kemudian teruskan seperti dalam kes bersiri USB, di mana MyBluetoothSerial adalah objek Streaming apa pun (mis., Serial2) disambungkan ke penyesuai Bluetooth anda.

Langkah 4: Osiloskop $ 2

Osiloskop $ 2
Osiloskop $ 2
Osiloskop $ 2
Osiloskop $ 2
Osiloskop $ 2
Osiloskop $ 2

Untuk osiloskop cepat dan kotor, anda memerlukan papan STM32F103C8 pil biru atau hitam (lebih mudah ditangani), yang boleh anda dapatkan di Aliexpress dengan harga kurang dari $ 2. Saya menerangkan bagaimana menyediakan papan untuk digunakan dengan persekitaran Arduino untuknya dan memasang lakaran di sini.

Muat turun lakaran ini di papan tulis, yang merupakan versi sketsa Pingumacpenguin STM32-O-Scope yang diubahsuai. Edit baris #define BOARD_LED agar sesuai dengan papan anda. Saya menggunakan pil hitam yang LEDnya PB12. Pil biru (dan beberapa pil hitam yang mempunyai pinout yang sama dengan pil biru) mempunyai LED pada PC13.

Sambungkan satu wayar - prob ground - ke ground board dan wayar lain ke pin B0 board. Pasangkan papan ke peranti Android dengan VectorDisplay berjalan, dan anda mempunyai osiloskop berkuasa bateri yang mudah alih.

Dalam foto saya mempunyai osiloskop yang disambungkan ke phototransistor. Jejak di layar adalah dari alat kawalan jauh inframerah TV.

Disyorkan: