
Keluar ke pedesaan selalu menyenangkan, tetapi dengan peta di tangan dan dengan tujuan sadar selalu lebih menarik. Ada beberapa jenis kegiatan di luar ruangan seperti orienteering, rogain, multi-ras, berpartisipasi di mana Anda dapat bersenang-senang. Tugas orienter adalah mengunjungi pos-pos pemeriksaan yang ditunjukkan pada peta dalam waktu minimum. Untuk membuktikan fakta kunjungan mereka, mereka digunakan sebagai yang disebut Sistem penandaan "Tradisional": pensil warna, simbol kode, komposer, dll., Serta sistem elektronik. Terlepas dari kenyamanan yang terakhir, metode tradisional masih banyak digunakan dalam kompetisi amatir. Ini karena biaya peralatan (dari 3.500 rubel per tanda stasiun dan dari 450 rubel per keping), dengan kemungkinan pencurian stasiun yang dipasang di tempat-tempat umum, kebutuhan untuk mengambil setoran untuk chip tersebut. Karena itu, saya menetapkan tujuan untuk menciptakan alternatif yang lebih terjangkau. Implementasinya di lingkungan Arduino dijelaskan di bawah ini.
Sistem penandaan elektronik biasanya terdiri dari chip RFID dan stasiun - perangkat khusus untuk merekam dan membaca. Sistem bekerja sebagai berikut. Pada awalnya, atlet orienteering menerima chip, mengambil kartu dan mulai. Berlari ke CP, ia menerapkan chip-nya ke stasiun penandaan, dia mencatat waktu saat ini di chip dan memberikan sinyal, setelah itu atlet dapat melanjutkan. Pada garis finish, atlet menyerahkan chip kepada hakim, yang membaca informasi menggunakan stasiun gateway dan mengumumkan hasilnya kepada atlet - waktunya di kejauhan, jumlah CP yang dikunjungi, kepatuhan dengan arahan yang diberikan. Dia juga dapat mencetak waktu split - waktu yang dihabiskan di jalur antara CP, yang memungkinkan atlet untuk menganalisis jalannya dan membandingkan dirinya dengan orang lain pada segmen tertentu dari jarak.
Untuk bekerja dengan chip RFID, ada modul yang tersedia banyak RFID-RC522, yang ada perpustakaan yang sangat baik untuk Arduino, dalam banyak hal fakta ini menentukan penggunaannya. Modul beroperasi pada frekuensi 13,56 MHz dan mendukung standar ISO 14443, bekerja dengan berbagai chip, pembacaan dan penulisan terjadi dari jarak beberapa sentimeter, yang sangat cocok untuk keperluan kita.
KeripikUntuk membuat sistem penandaan, saya menggunakan chip Mifare Classic 1K (S50) karena ketersediaannya yang luas dalam berbagai desain dan murahnya (11 rubel per chip dalam bentuk gantungan kunci). Chip ini memungkinkan Anda membaca dan menulis informasi dengan cepat dan andal. Memori chip secara struktural dibagi menjadi 16 sektor, yang masing-masing berisi 4 blok 16 byte. Blok ke-4 dari setiap sektor berisi kunci yang dapat digunakan untuk menulis / membaca blok di sektor ini. Selain itu, di sektor nol, blok nol berisi UID dan informasi tentang produsen. Dengan demikian, ada 3 blok 16 byte yang tersisa untuk ditulis di sektor dari 1 ke 15 dan dua blok di sektor 0. Struktur rekaman disajikan dalam tabel di bawah ini, semua data dicatat dalam rangkap tiga untuk keandalan.

Sistem perekaman ini memungkinkan Anda untuk merekam 45 tanda dalam memori, termasuk mulai dan selesai, untuk sebagian besar kompetisi ini cukup. Tetapi jika Anda mengoptimalkan penggunaan memori dan menempatkan sedikit lebih banyak waktu pada sasaran, kapasitas dapat meningkat secara signifikan.
Stasiun StasiunSkema dan instalasiKomponen utama dari stasiun tanda: mikrokontroler - Atmega328p-au, modul RF522, jam DS3231. Didukung oleh 3 baterai AA melalui stabilizer linier MCP1700T-33.

Saya memasang komponen pada papan sirkuit tercetak, semua komponen SMD, dengan papan RFID saya membuat koneksi dengan menyolder melalui konektor pin. Papan diproduksi menggunakan photoresist, trek 0,5 mm. Sementara metode ini disempurnakan, saya melakukan banyak pernikahan, mungkin lebih bijaksana untuk membuat file gerber dan memesan produksinya di samping, karena itu tidak terlalu mahal.

Saya menggunakan g1020BF yang terjangkau sebagai kasingnya. Saya mengebor sebuah lubang di kotak untuk LED dan memotong kelebihan plastik untuk masuk ke kompartemen baterai. Lubang untuk LED dirawat dengan epoksi, kemudian dimasukkan papan sirkuit yang disolder. Setelah epoksi mengeras, ia menyuntikkan 30 mililiter senyawa PK-68, yang cukup untuk menutupi papan. Saya memasukkan baterai ke dalam kompartemen baterai dan melumuri semuanya dengan minyak untuk anti bocor. Setelah mengencangkan tutupnya, stasiun siap digunakan.

Biaya komponen stasiun dan bahan untuk pembuatannya sekitar 500 rubel. Saya membutuhkan sekitar 1,5 jam waktu murni untuk membuat dan mengatur satu stasiun.
Firmware stasiunSelama pengoperasian stasiun, berbagai jenis kerusakan mungkin terjadi, perlu untuk menerapkan pekerjaan pengawas, jadi Anda perlu menggunakan Bootloader yang kompatibel agar berfungsi dengan benar. Versi bootloader yang bagus untuk Atmega328p dan instruksi untuk menginstalnya ada di
sini . Anda juga harus mengubah pustaka kawat standar menjadi non-pemblokiran sehingga stasiun terus bekerja ketika garis i2c putus, dan tidak masuk ke loop tanpa akhir. Saya memuat bootloader menggunakan Arduino lain melalui Arduino sebagai firmware ISP, menghubungkan kontak SPI melalui pin yang mengarah ke modul RFID, yang saya gigit setelah boot berhasil. Setelah itu saya menginstal firmware utama.
Dengan firmware utama, ketika baki dimasukkan, stasiun membaca satu blok informasi yang darinya ia mempelajari angka-angka dari blok yang terakhir direkam dan stasiun di mana tanda itu terjadi. Jika nomor stasiun berbeda, blok informasi diperbarui dan nomor stasiun serta waktu saat ini dicatat di blok bebas berikutnya. Waktu dan nomor stasiun dapat disesuaikan menggunakan chip khusus dan stasiun gateway.
NutrisiSalah satu masalah terpenting yang patut dipecahkan adalah bagaimana memaksimalkan masa pakai stasiun dari satu set baterai. Ini sangat penting untuk orientasi wisata, ketika itu terjadi bahwa stasiun dipasang jauh sebelum kompetisi dan perlu bahwa mereka dijamin berfungsi selama lebih dari sebulan.
Untuk mengurangi konsumsi, mode tidur digunakan untuk pengontrol, serta untuk RC522. Dalam mode tidur, stasiun hanya mengkonsumsi 0,02 mA versus 20 mA selama operasi. Untuk menggunakan energi secara lebih ekonomis, tiga mode pengoperasian stasiun dengan interval waktu tidur yang berbeda telah diterapkan.
Secara default, stasiun mulai dalam mode siaga. Pada saat yang sama, chip dicari setiap detik, kapasitas baterai cukup untuk 160 hari. Ketika chip di-tray (ini dilakukan oleh juri produksi atau atlet pertama yang berlari ke stasiun), stasiun beralih ke mode operasi. Dalam mode operasi, pencarian chip diimplementasikan setiap 250 ms. Baterai baru bertahan selama 45 hari penggunaan terus menerus. Setelah 6 jam tidak aktif, stasiun kembali ke mode siaga.
Ketika master sleep chip (chip hakim khusus dengan pengaturan stasiun) dimasukkan, stasiun beralih ke mode penyimpanan (mencari chip sekali setiap 25 detik), mengambil 3 kali dan me-restart. Baterai baru dalam mode ini akan bertahan selama 5 tahun. Ketika sebuah baki ditempatkan pada chip apa pun, stasiun akan beralih ke mode siaga, dan sisa daya baterai diukur. Jika tegangan turun di bawah 3.1V, yang menunjukkan bahwa sekitar 15% dari muatan tetap, stasiun memberi sinyal ini.
Antarmuka dan pemrosesan dataStasiun antarmuka disediakan untuk bekerja dengan chip dan stasiun penandaan. Menggunakan stasiun gateway, Anda dapat mengatur dan menyesuaikan waktu dan nomor stasiun menggunakan chip master khusus. Juga, stasiun gateway melakukan pembersihan pra-peluncuran dan verifikasi chip, memasukkannya dengan informasi awal dan nomor individual. Yah, tentu saja, itu membaca chip dan mendapatkan hasilnya.
Ke sirkuit, saya juga menambahkan modul SD untuk merekam pemisahan dan modul Bluetooth sehingga stasiun dapat dihubungkan ke ponsel atau komputer untuk menerima atau mengirimkan data.

Sementara sirkuit dan firmware belum cukup dioptimalkan dan diimplementasikan sejauh ini dari modul, di lutut. Di masa depan, direncanakan untuk menyelesaikan untuk penggunaan yang lebih nyaman.

Saat ini, pemrosesan data dilakukan secara semi-manual dengan menyortir file CSV yang dihasilkan. Sistem ini sangat fleksibel dan dapat dengan mudah dikonfigurasikan untuk kompetisi apa pun, untuk mengimplementasikan pemrosesan data di gateway dengan cara yang mudah dalam berbagai kasus. Untuk masa depan, ada rencana untuk menulis perangkat lunak untuk mengotomatisasi pemrosesan data.
KesimpulanSaya baru dalam pemrograman dan pengembangan perangkat elektronik dan telah melakukan ini selama kurang dari setahun. Oleh karena itu, solusi kode dan sirkuit, sangat mungkin, jauh dari optimal atau sepenuhnya salah. Saya akan sangat senang mengkritik, seluruh proyek tersedia secara gratis
di github .
Saya juga ingin menyampaikan terima kasih kepada mereka yang telah membantu dengan tips dan tertarik pada pengembangan.