Lencana Supercon Membaca Kartu “Pukulan”.

Hackaday Supercon tahun ini, yang pertama sejak 2019 berkat pandemi, sangat mirip dengan acara sebelumnya. Hampir setiap acara peretas yang berorientasi pada perangkat keras memiliki lencana elektronik khusus sendiri, dan Supercon tidak berbeda. Lencana tahun ini adalah platform simulasi untuk CPU 4-bit hipotetis yang dibuat oleh kami sendiri [Voja Antonic], dan menghadirkan tantangan nyata bagi beberapa peserta yang belum pernah menyentuh kode mesin selama tahun-tahun pembentukan mereka. Kumpulan tantangannya adalah menghasilkan retasan paling menarik untuk lencana, jadi kolaborator [Ben Hencke] dan [Zach Fredin] mulai memakukan kategori ‘expandr’ dari kompetisi dengan pembaca kartu berlubang optik yang dipasang dengan baut.

Konektivitas periferal agak terbatas. Idenya adalah membuat papan baut dengan pemrosesan lokalnya sendiri — menggunakan papan PixelBlaze [Ben] dibawa bersama — untuk menangani semua detail pemindaian. Kemudian, setelah program pada kartu dibaca, buang semuanya ke CPU lencana melalui antarmuka serialnya. Tanpa akses ke merekaKartu punch palsu kertas cetak yang menampilkan LED baca dan larik set dan setel ulang bit pengkodean fasilitas biasa di rumah, [Ben] dan [Zach] jelas harus berimprovisasi dengan apa pun yang mereka miliki, dan apa pun yang dapat diambil dari lencana lain atau perangkat keras lain yang tergeletak di sekitar.

Satu masalah besar adalah bahwa kebanyakan orang biasanya tidak membawa fotodioda, tetapi untungnya mereka ingat bahwa LED dapat digunakan sebagai fotodioda ketika dibias mundur dengan tepat. Memberi makan sinyal yang dikembangkan melalui resistansi satu Meg, menjadi penguat transkonduktansi berkat LM358 yang disumbangkan, ada cukup variasi untuk ADC STM32 untuk secara andal mendeteksi perbedaan antara kotak centang yang tidak terisi dan terisi pada kartu program yang diisi.

CPU membutuhkan opcode 12-bit, yang jelas menyiratkan 12 fotodioda dan 12 LED untuk membaca setiap kata. Papan PixelBlaze tidak memiliki input analog sebanyak ini. Trik sederhananya adalah alih-alih memiliki input diskrit, semua 12 fotodioda disambungkan secara paralel dan dimasukkan ke dalam amplifier input tunggal. Untuk membedakan bit-bit yang berbeda, LED iluminasi malah di-charlieplexed, sehingga mengirimkan masing-masing bit sebagai urutan nilai ke dalam ADC, untuk de-serialisasi selanjutnya. Video demonstrasi menunjukkan bahwa itu berfungsi, dengan program dimuat dari kartu dan dijalankan secara manual. Sangat menyenangkan!

Kartu punch biasanya memiliki lubang di dalamnya dan dapat dibaca secara mekanis, dan merupakan cara yang bagus untuk mengonfigurasi penguji seperti penguji katup vakum menarik yang kami bahas beberapa waktu lalu.