Halo Giktayms! Dengan kursi setengah ini, Master Gambes ... Dengan pos ini, kami, proyek Samsung IoT Academy dan Unwired Devices, meluncurkan serangkaian publikasi berdasarkan kursus praktis baru tentang pemrograman mikrokontroler berbasis pada inti Cortex-M3, yang akan diajarkan di
Institut Teknologi Informasi Universitas Teknologi Moskow mulai besok (juga) dikenal sebagai MIREA).
Tujuan dari kursus ini adalah untuk memperkenalkan siswa kepada mikrokontroler modern berdasarkan pada inti Cortex-M3 dan memberi mereka keterampilan pemrograman dasar untuk mereka dalam bahasa C di bawah sistem operasi. Persyaratan untuk siswa - keakraban dengan bahasa C (tidak harus pada mikrokontroler) dan pemahaman dasar tentang elektronik (pada tingkat kemampuan untuk menghubungkan LED).

Awalnya, program IoT Academy disusun sebagai level yang cukup tinggi - siswa harus bekerja dengan modul transfer data yang sudah jadi untuk jaringan LoRa dan 6LoWPAN, di mana firmware dengan dukungan untuk sensor yang diperlukan dan logika yang diperlukan untuk bekerja dengan mereka sudah dimuat. Sebenarnya, kursus ini untuk mengkonfigurasi modul-modul ini dan menulis perangkat lunak tingkat tinggi untuk memproses data yang masuk pada platform Samsung Artik + Tizen.
Namun, seperti yang telah ditunjukkan oleh praktik, banyak siswa tertarik untuk lebih serius menggali apa yang terjadi di dalam mikrokontroler. Pada saat yang sama, saat ini, dengan kursus pelatihan tentang pengontrol Cortex-M dipasangkan dengan sistem operasi, semuanya sangat buruk: pada kenyataannya, sembilan dari sepuluh kursus tersebut dikhususkan untuk menulis aplikasi sederhana menggunakan StdPeriphLib dan / atau CubeMX, dengan setengah teks tentang masalah inisialisasi. pengontrol dan pinggirannya.
Realitas modern, bagaimanapun, terlihat berbeda - di sebagian besar proyek komersial (kita akan berbicara tentang statistik ini di artikel berikutnya, itu tidak diambil dari langit-langit), RTOS sudah digunakan, yang membawa abstraksi perangkat keras dari perangkat keras, virtualisasi sumber daya perangkat keras, multitasking dan banyak hal bermanfaat lainnya.
Yang sangat menarik, penggunaan RTOS dapat secara signifikan mengurangi ambang untuk masuk - dan justru di dalamnya masalah utama sering terletak. Prinsip utama dari program pendidikan adalah pengembangan dari yang sederhana menjadi kompleks - ketika mempelajari mikrokontroler modern dalam pelajaran pertama, ia dipecah menjadi skema pencatatan jam kerja STM32 (halaman A4 secara keseluruhan dengan font yang tidak terlalu besar) dan kebutuhan untuk menulis setengah halaman kode saja sehingga mikrokontroler mulai. Ya, Anda dapat membuat serangkaian kuliah, mulai dengan assembler, register, dan pola jam - tapi jujur saja: siswa yang tidak serius mempelajari topik ini dari awal hanya akan sampai pada akhir di bawah ancaman kelulusan ujian.
Ya, pembuat kode menyelesaikan masalah ambang input, tetapi mereka juga mengarahkan kami untuk bekerja dengan kotak hitam, membuat kami tidak dapat memahami struktur internal sistem. Tetapi RTOS modern yang didistribusikan dalam kode sumber, di satu sisi, memungkinkan Anda untuk dengan cepat memulai dengan hal-hal yang cukup sederhana, dan di sisi lain, Anda dapat menggali lebih dalam ke struktur internal sistem saat Anda mempelajari berbagai nuansa.
Pada bulan Desember tahun lalu, kami telah melakukan pelajaran uji coba -
ini direkam di YouTube - memberi tahu siswa sedikit tentang apa itu mikrokontroler modern, serta cara mem-flash LED pada mereka. Saya harus mengatakan bahwa keberhasilan itu mengesankan: kami mulai jam setengah sepuluh pagi, sementara tidak ada satu orang di antara hadirin yang memiliki pengalaman pemrograman dengan STM32 dan hanya sedikit yang berpengalaman dengan Arduino, tetapi kami selesai pada pukul lima malam di laboratorium IoT Academy, di mana beberapa siswa sudah mulai menulis mainan dengan tombol dan penguasa RGB di STM32.
Sebagai hasilnya, kami - Perangkat Unwired, Samsung IoT Academy dan MIREA IT Institute - sampai pada kesimpulan bahwa sudah waktunya untuk mengambil kursus pengenalan praktis untuk bekerja dengan mikrokontroler modern. Dan mereka melakukannya.
Kursus ini mulai diajarkan kepada siswa dari MIREA IT Institute besok, 3 Maret, dan akan menjadi siklus 6 kuliah dan 5 kelas praktis dengan pendalaman bertahap dalam topik yang berkaitan dengan pengontrol.
Selain itu, institut akan merekam semua kuliah dan secara selektif merekam pelajaran praktis; di blog Samsung Academy IoT, catatan kuliah akan diterbitkan disesuaikan dengan penggunaan papan ST Nucleo-L152, tersedia untuk semua orang dengan harga 1.200-1.400 rubel, dan dalam Repositori github Devices yang Tidak Diinginkan akan menampilkan kode yang digunakan di kelas.
Dalam semua latihan praktis, kita hanya akan menggunakan kode OS dasar. Jadi, meskipun setumpuk penuh untuk jaringan LoRa tersedia untuk siswa, dalam pelajaran terakhir tugasnya bukan untuk menggunakannya, tetapi untuk menulis protokol transfer data Anda sendiri dan memastikan perlindungannya terhadap serangan besar.
Kami tidak akan menggunakan StdPeriphLib, CubeMX dan bahkan LL - jika kita perlu berbicara tentang operasi mikrokontroler, kita akan berbicara tentang register dan CMSIS. Kode OS HAL juga tidak menggunakan apa-apa selain CMSIS.
Jadi apa yang akan dimasukkan dalam kursus?
0. kuliah pengantar. Mikrokontroler modern, alat pemrograman, sistem operasi waktu-nyata. Keluarga pengendali STM32.
1. Multitasking di embedded OS. Sistem tickless multitasking preemptive dan non-preemptive. Utas, pengatur waktu, interupsi.
Praktek: menulis aplikasi sederhana yang berfungsi dengan tombol dan LED dengan mengirim pesan dari interupsi ke aliran terpisah.
2. Port I / O dan antarmuka SPI, I2C, UART. Antarmuka clocking, sinkron dan asinkron, implementasi perangkat keras dan perangkat lunak.
Praktek: perangkat driver sensor cahaya TI OPT3001 (I2C) dan bekerja dengannya dari aplikasi pengguna. Menambahkan ke driver fungsi menghasilkan interupsi pada ambang batas yang ditetapkan pengguna.
3. Bekerja dengan sinyal analog dan kuasi-analog. PWM, ADC, DAC. Metode untuk menghasilkan sinyal analog. Digitalisasi sinyal, laju sampling, dan teorema Kotelnikov.
Praktik: sesuaikan kecerahan lampu menggunakan PWM sesuai dengan nilai sinyal analog yang masuk. Digitalisasi sinyal analog yang bervariasi waktu dan mengunggah nilai yang diterima ke UART.
4. Hemat energi. Mode pengoperasian inti prosesor - RUN, SLEEP, STOP, STANDBY. Bangkit dari sumber eksternal dan internal. Menyimpan status RAM pengontrol, register cadangan RTC. Bekerja dengan mode daya rendah di OS.
Praktik: aplikasi "tidur" dari penghitung denyut nadi dengan pemungutan suara berkala dari keadaan GPIO yang diberikan dan akumulasi nilai. Menyimpan nilai akumulasi di EEPROM dan register cadangan.
5. Jaringan data nirkabel. Bekerja dengan saluran radio LoRa. Perlindungan data yang dikirimkan dari serangan tipikal.
Praktek: perpesanan antara dua mikrokontroler menggunakan driver transceiver LoRa SX1276. Enkripsi pesan, perlindungan terhadap pemalsuan pesan, perlindungan terhadap serangan berulang.
6. Pelajaran praktis tambahan dalam bentuk gratis. Tanya jawab, konsultasi tentang proyek siswa sendiri.Apakah Anda berpikir bahwa sesuatu yang penting dan perlu telah hilang? Tulis tentang ini di komentar.
