
Banyak yang telah memperoleh "pil biru" untuk dicoba. Tetapi karena kerumitan pemrograman, benda ini ada di suatu tempat di rak, sampai waktu yang lebih baik.
Kami akan mempertimbangkan bahwa "waktu terbaik" telah tiba.
Apa yang diperlukan untuk eksperimen:
- Perangkat keras
- Perangkat lunak
Perangkat keras
Semua suku cadang / komponen bekas dapat dibeli di aliexpress.com
- Tentu saja, pertama-tama, controller itu sendiri. "Blue Tablet"
- Adaptor USB-UART
- Kabel usb mikro
- satu set kabel untuk menghubungkan komponen satu sama lain
Dianjurkan untuk menggunakan programmer
ST-Link V2 untuk lebih cepat, dibandingkan dengan UART, mengunduh "firmware" dan debugging program
Perangkat lunak
Apa itu modul?
Modul adalah kombinasi perangkat keras dan perangkat lunak. Bagian perangkat keras adalah "tablet" STM32F103C8T6, bagian perangkat lunak adalah "templat firmware" yang dibuat menggunakan program
MIOC. Program ini adalah
OpenSource .
Port mikrokontroler
Mikrokontroler memiliki pin atau kaki. Beberapa dari mereka adalah kekuatan mikrokontroler, beberapa memiliki tujuan khusus (misalnya, Reset), beberapa antarmuka input / output untuk tujuan umum (input / output tujuan umum Inggris, GPIO).
Port dikelompokkan (A; B; C ...). Setiap grup berisi hingga 16 port, diberi nomor dari 0 hingga 15. Akibatnya, penomoran port terlihat seperti PA0, PA1, ...
Port digunakan untuk komunikasi antara komponen-komponen modul, misalnya, mikroprosesor dan berbagai perangkat periferal. Port dapat bertindak sebagai input, output, dan dua arah.
Papan "tablet" ditandai dengan port.
GPIO - Antarmuka I / O Tujuan Umum
Dalam modul IO, jenis utama port disajikan dalam tabel:

Sebagai sensor, aktuator kita akan menggunakan berbagai perangkat dari Arduino.
Program MIOC (Modul Input-Output Configurator)
Menggunakan program ini, kami membuat / mengkonfigurasi template firmware (proyek untuk Embitz; Keil) dari modul IO. Pemasang tidak perlu. Unduh, jalankan. Dengan menggunakan program ini, kami membuat variabel global yang akan kami gunakan dalam firmware kami. Variabel dapat dikaitkan dengan port.
Jendela jalankan pertama:

Buat proyek:

Pilih folder untuk proyek tersebut. Folder, untuk proyek itu harus kosong!



Program pertama - "halo kata" untuk mikrokontroler
Kami berkedip LED yang ada di "pil biru". LED ini terhubung ke port PC13.
Tambahkan baris ke tabel variabel


Hasilkan kode BSP (tombol F8)

Selanjutnya, setiap kali setelah perubahan proyek, generasi BSP diperlukan!
Buka proyek yang dibuat di lingkungan pengembangan EmBitz atau Keil. EmBitz masih mencari solusi. Tampaknya penulis meninggalkan proyek ini. Kemungkinan besar di masa depan, proyek akan menggunakan Code :: Blocks.
Di file main.c, tulis berikut ini:
(Untuk menambah ukuran gambar, buka di tab baru)Di EmBitz, tekan F2, setelah jendela informasi muncul, tekan F7. Kompilasi harus dilakukan.
Menekan F2 lagi akan menyembunyikan bookmark informasi.

Unduh ke mikrokontroler, lihat cara kerjanya.
Tombol
Tambahkan tombol, misalnya ini:

Diagram pengkabelan:

Tambahkan variabel ke tabel:

Kami menghasilkan BSP.
Ubah program menjadi yang berikut:

Kami membuat BSP (F8) baru, mengkompilasinya, memuatnya ke dalam mikrokontroler.
Kami menekan tombol - LED menyala, lepaskan - padam.
Alih-alih LED, relay dapat dihubungkan ke port lain, misalnya:

Dan mengelola beberapa jenis muatan.
Keluarkan pesan ke konsol
Anda perlu menentukan apa yang akan menjadi konsol.
Opsinya adalah:
- Adaptor USB-UART
- port COM virtual (kabel Micro-USB)
Jika UART1 dan USB sebagai Konsol dipilih dalam konfigurasi, dan USB VCP tidak dipilih, maka konsol akan ditetapkan ke mana pun. Yaitu tidak akan ada sumpah pada fungsi print_str (atau makro cetak), tetapi tidak akan ada output juga. Perilaku yang sama akan terjadi jika Anda tidak memilih antarmuka apa pun, atau memilih USB VCP tetapi tidak memilih UART1 atau USB sebagai Konsol.
Konfigurasi Konsol:

Hubungkan TettaTerm ke port COM (konsol). Jika kami mengunduh firmware melalui UART1, maka jangan lupa untuk memutus / menghubungkan port COM. Dalam TerraTerm "tombol panas" Alt + I; Alt + N Ini tidak diperlukan untuk opsi boot via ST-Link.
Edit program:

Sekarang status tombol akan ditampilkan di konsol:

DS18B20
Hubungkan sensor suhu DS18B20 ke "tablet".

Masukkan variabel ke dalam tabel:

Ubah program menjadi yang berikut:

Kami membuat konfigurasi baru, mengkompilasi, memuatnya ke dalam mikrokontroler.
Konsol akan menampilkan suhu yang diukur oleh sensor.

ADC
Sebagai contoh bekerja dengan ADC, Anda dapat menggunakan potensiometer:

Atau sensor kelembaban tanah

Mari kita bahas yang terakhir:
Konfigurasikan port:

Mengedit program:

Kami mengkompilasi, memuat.
Di konsol kami amati:

adc - bacaan ADC saat ini. maks dan minimum min - pembacaan sensor minimum dan maksimum, benar-benar kering (0%) dan sangat basah (100%).
Sangat basah (100%) - masukkan sensor ke dalam segelas air. Sangat kering (0%) - terletak di udara terbuka.
Bahkan, kami mengkalibrasi sensor kelembaban tanah dari 0 hingga 100%. Kami menempatkan nilai maksimum dan minimum dalam teks program.

Hasil pekerjaan. Sensor ditempatkan di tanah pot bunga:

Proyek ini adalah templat solusi untuk menyiram tanaman.
Itu saja untuk saat ini. Program MIOC akan diisi ulang dengan fitur tambahan.