Saya akrab dengan pendapat banyak pakar teknis tentang Arduino dan sedikit banyak berbagi pandangan mereka. Namun demikian, misalnya, untuk otomatisasi cepat, platform ini sangat berguna: platform ini, seperti perancang anak, memungkinkan Anda untuk merakit dan memprogram perangkat dalam beberapa jam tanpa membuang waktu pada berbagai "referensi yang tidak ditentukan ke __bss_start__" dan "Perangkat tidak terdeteksi".Suatu hari, untuk mengotomatiskan rutinitas lain, saya perlu tampilan. Saya membalik-balik Aliexpress dan masih tidak bisa menemukan perisai yang cocok untuk Arduno.
Kucing untuk menarik perhatianMasalah Down dan Out dimulai
Jadi, saya membutuhkan antarmuka pengguna dialog dan, lebih lanjut, cepat. (Kucing itu untuk menarik perhatian, diperhatikan - itu berfungsi.) Seolah-olah dengan sengaja, semua produsen menyarankan secara manual menggambar bidang masukan dan bilah kemajuan, penangan tombol pemrograman, dan, dengan kata lain, melakukan segala sesuatu yang tidak saya inginkan. Hebatnya, mengapa tidak menyediakan perpustakaan tingkat tinggi yang menangani masalah ini? Mungkin dalam 80% kasus, semua tugas turun ke urutan sederhana:- Tampilkan formulir dengan bidang input.
- Tunggu pengguna untuk mengedit bidang Foo.
- Dapatkan nilai baru dari bidang Foo.
- Lakukan sesuatu sebagai balasannya.
Namun kekurangan perpustakaan bukan satu-satunya kendala. Cadangan ROM yang langka dari Arduino Uno saya (dan situasi yang sama dengan Leonardo, Ethernet, Pro) sudah cukup untuk menyimpan satu gambar pada resolusi 128x128 piksel. Dan tidak ada tempat tersisa untuk kode.Setelah berjalan di depan lebar melalui Aliexpress, DX dan toko-toko serupa, saya akhirnya menemukan, dalam bahasa pengembang jaringan, baik perisai " bodoh" atau "terlalu gemuk" . Yang pertama tidak menyelesaikan masalah, tetapi murah. Yang terakhir seperti sistem rudal anti-pesawat, dan Anda harus membayar jumlah yang adil untuk redundansi ini. Jika saya dapat menempatkan bibir Nikanor Ivanovich di hidung Ivan Kuzmich ... Setelah ragu-ragu, saya memutuskan untuk mengisi celah pemasaran yang mengganggu ini.Apa yang harus kita bangun perisai
Saya menyebar papan, memesan beberapa sampel pertama untuk percobaan, mencobanya.
Ide itu berangsur-angsur terbentuk. Jadi, solusinya harus mudah digunakan dan selalu murah (tentang yang di bawah ini):- Di papan, perisai harus berupa mikrokontroler dengan margin memori setidaknya untuk beberapa layar.
- Untuk memastikan tidak ada masalah dengan memori, Anda dapat menambahkan slot microSD.
- Juga, tepat pada perisai Anda perlu meletakkan beberapa tombol.
- Mikrokontroler harus melakukan "pekerjaan hitam", merender bidang formulir dan memproses penekanan tombol sedemikian rupa sehingga, hanya dengan memasok daya ke perisai dijahit, akan dimungkinkan untuk membuka formulir, mengedit bidang input, memasukkan burung ke dalam kotak centang dan sebagainya.
- Arduino : I2C, SPI UART. Arduino; (, ).
- Arduino GPIO, .
- , , ยซ Vim, !ยป, , , GTK Glade .
Komponen paling dasar dari perisai adalah modul tampilan. Baik harga maupun karakteristik teknis produk sangat tergantung padanya. Ketika mencari modul yang sesuai, saya ingin makan ikan dan menunggang kuda: di satu sisi, saya melanjutkan dari kriteria ketersediaan, di sisi lain, biaya modul harus minimal. Pada dasarnya, kriteria-kriteria ini saling bertentangan: toko-toko seperti Terraelectronics, dengan kantor-kantor di seluruh negeri, menawarkan serangkaian tampilan warna tertentu dari model-model umum, tetapi harga mereka berasal dari 2.000 rubel ke atas; di sisi lain, ada banyak pilihan bagus pada Aliexpress yang sama, tetapi mereka semua memiliki kelemahan yang sama: ada jurang yang dalam di antara mereka dan para pengguna kita yang malang, di mana lebih dari seribu kotak kardus mati, dan perilaku yang mudah diprediksi,seperti perilaku harga minyak atau cuaca.Semua orang, tentu saja, mengerti tentang apa itu. Jadi ide saya masih hanya sebuah ide.Seperti yang sering terjadi, obrolan dapur malam sambil minum teh ternyata berakibat fatal. Seorang teman membagikan bagaimana ia mengubah tampilan yang rusak pada HTC-nya. Ternyata tampilan smartphone, yang tidak diragukan lagi memiliki karakteristik yang lebih baik daripada produk dalam katalog Terraelectronics, harganya dua hingga tiga kali lebih murah! Itu adalah wahyu. Setelah itu, sebuah tampilan cukup cepat ditemukan, yang di Rusia dapat dibeli di hampir setiap langkah seharga satu sen; Itu diinstal pada ponsel Nokia 2600/2650/3100/3200/5100/5140/6100/6220/6610/7210/7250. (Ternyata kemudian, saya menemukan kembali Amerika, karena layar ini digunakan dalam banyak perisai untuk Arduino.) Resolusi - 128 ร 128 piksel - cukup untuk menampilkan formulir dengan tiga atau empat bidang input.
Mengkilap lebih baik daripada dibanggakan
Banyak, mungkin, masih tidak begitu mengerti cara menggunakan gadget yang dijelaskan. Mungkin cara termudah untuk menggambarkan hal ini adalah dengan dua situasi standar:- Kami memiliki termometer digital, perlu untuk menampilkan bacaannya di layar.
- Ada servo drive, Anda perlu mengatur parameter operasinya. Misalnya posisinya.
Termometer
#include <intelcd.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
#define FORM_TERMO 0
#define FIELD_TERMO 0
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensor(&oneWire);
InteLCD lcd;
void setup(void)
{
lcd.init();
sensor.begin();
}
void loop(void)
{
sensor.requestTemperatures();
lcd.update(FORM_TERMO, FIELD_TERMO, sensor.getTempCByIndex(0));
delay(1000);
}
Servo
#include <InteLCD.h>
#include <Servo.h>
#define FORM_SERVO 0
#define FIELD_SERVO 0
InteLCD lcd;
Servo myservo;
void lcdEvent(void);
void setup(void)
{
myservo.attach(9);
lcd.init();
}
void loop(void)
{
}
void lcdEvent(void)
{
switch (lcd.event.code) {
case InteLCD::FIELD_UPDATED:
if (lcd.event.formid == FORM_SERVO && lcd.event.fieldid == FIELD_SERVO)
{
myservo.write(lcd.event.arg[0]);
delay(15);
}
break;
}
}
Pada akhirnya
Menurut pendapat saya, elektronik DIY harus berkembang ke arah modularitas terbesar, di mana setiap modul sangat sederhana dan lengkap. Kemudian, ketika anak itu membangun kastil mainannya dari berbagai bagian Lego, pengguna harus memasang perangkatnya dalam batu bata, tetapi tanpa menggunakan palu dan arsip. Perisaiku adalah langkah kecil ke arah ini.Saya akan senang mendengar saran yang berharga dan memahami siapa lagi selain saya yang kehilangan hal yang bermanfaat.