Daftar Isi:

Komputer DASAR Genggam: 6 Langkah (dengan Gambar)
Komputer DASAR Genggam: 6 Langkah (dengan Gambar)

Video: Komputer DASAR Genggam: 6 Langkah (dengan Gambar)

Video: Komputer DASAR Genggam: 6 Langkah (dengan Gambar)
Video: MENGERTI DESAIN DALAM 18 MENIT SAJA! 2024, Juli
Anonim
Komputer DASAR Genggam
Komputer DASAR Genggam
Komputer DASAR Genggam
Komputer DASAR Genggam

Instruksi ini menjelaskan proses saya membangun komputer genggam kecil yang menjalankan BASIC. Komputer dibangun di sekitar chip ATmega 1284P AVR, yang juga mengilhami nama konyol untuk komputer (HAL 1284).

Bangunan ini SANGAT terinspirasi oleh proyek luar biasa yang ditemukan di sini dan Lencana BASIC SuperCON.

Komputer menjalankan versi TinyBasic yang dimodifikasi, meskipun sebagian besar perangkat lunak didasarkan pada proyek oleh dan14. Anda tentu saja dapat mengikuti Instruksi ini, atau bahkan lebih baik, memperbaikinya karena saya membuat beberapa kesalahan.

Untuk proyek ini, saya juga membuat manual. Itu menyebutkan beberapa bug dan spesifik untuk monitor yang dipilih tetapi yang paling penting, ia memiliki daftar operasi BASIC.

Setelah ini diterbitkan, saya membuat video yang menampilkan proyek tersebut.

Langkah 1: Bagian yang Saya Gunakan

Bagian yang Saya Gunakan
Bagian yang Saya Gunakan
Bagian yang Saya Gunakan
Bagian yang Saya Gunakan
Bagian yang Saya Gunakan
Bagian yang Saya Gunakan

Untuk IC utama:

  • ATmega 1284P
  • Kristal 16MHz
  • Kapasitor Keramik 2x 22pf
  • Resistor 10KΩ (Untuk reset pull up)
  • Tombol 4-pin (Untuk reset)
  • 470Ω Reistor (Untuk video komposit)
  • 1kΩ Resistor (Untuk sinkronisasi video komposit)
  • Jumper 3-pin (Untuk sinyal video)
  • Buzzer Pasif

Untuk kontrol keybaord:

  • ATmega 328P (Seperti yang digunakan di Arduino Uno)
  • Kristal 16MHz
  • Kapasitor Keramik 2x 22pf
  • 12x 10KΩ Resistor (Untuk reset pull up dan tombol)
  • 51x tombol 4-pin (Untuk keyboard yang sebenarnya)

Untuk daya:

  • Pengatur Tegangan L7805
  • LED 3mm
  • 220Ω Resistor (Untuk LED)
  • 2x 0.1µF Kapasitor Elektrolit
  • Kapasitor Elektrolit 0,22 F (Anda bisa mengganti ini 0,22 dan 0,1 untuk satu 0,33. Saya juga diberitahu bahwa nilainya tidak terlalu penting, tetapi saya tidak hebat dengan kapasitor)
  • 2x 2-pin jumper (Untuk input daya dan untuk sakelar utama)

GPIO (Mungkin menambahkan beberapa alasan lagi):

  • Pelompat 7-pin
  • 2x 8-pin Jumper
  • Jumper 2-pin (Untuk 5V dan GND)
  • Jumper 3-4-pin (Untuk Komunikasi Serial)

Non-PCB:

  • Layar LCD 4" dengan Video Komposit (Tegangan saya memiliki tegangan input antara 7-30V)
  • Dudukan cetak 3D untuk tampilan
  • Semacam saklar

Langkah 2: Sirkuit

Sirkuit
Sirkuit

Sirkuitnya tidak terlalu bagus dan sebagian besar wilayah IC utama terinspirasi oleh dan14. Yang sedang berkata, itu adalah Arduino yang cukup lurus ke depan pada sirkuit Breadboard. Keyboard adalah grid sederhana dan dikendalikan oleh ATmega328. Kedua chip AVR berkomunikasi melalui pin Serial UART.

Baik gambar dan file Eagle saya terlampir dan mudah-mudahan cukup untuk membuat ulang sirkuit. Jika tidak, jangan ragu untuk memberi tahu saya dan saya akan memperbarui Instructable.

Langkah 3: PCB

PCB
PCB
PCB
PCB

PCB berlapis 2 dan dibuat menggunakan Rute Otomatis (Oh, sungguh lubang **!). Ini memiliki tombol dan indikator daya LED di bagian depan dan sisanya di bagian belakang. Saya membuat PCB saya dengan JCL PCB, dan mereka melakukan pekerjaan yang luar biasa dengannya. File yang diperlukan untuk membuat ulang PCB harus ada di file Eagle dari sebelumnya.

Saya menyarankan agar Anda mendesain ulang PCB, karena saya memiliki beberapa hal yang ingin saya lakukan secara berbeda. Jika Anda menyukai desain saya, saya masih memiliki (sampai tulisan ini dibuat) empat papan yang tidak terpakai yang ingin saya jual.

Papan memiliki empat lubang bor yang saya gunakan untuk memasang Layar LCD.

Langkah 4: Mengunggah Kode

Mengunggah Kode
Mengunggah Kode
Mengunggah Kode
Mengunggah Kode
Mengunggah Kode
Mengunggah Kode

Baik 1284 dan 328 tentu saja membutuhkan kode dan kode yang saya gunakan dapat ditemukan di sini: https://github.com/PlainOldAnders/HAL1284 di bawah ArduinoSrc/src. Saya hanya menggunakan Arduino IDE untuk memodifikasi dan mengunggah kode, tetapi sebelum itu dapat dilakukan, Anda harus membakar bootloader pada IC:

ATMega328:

Yang ini mudah, dalam arti bahwa ada banyak dukungan di luar sana tentang cara membakar bootloader dan mengunggah kode ke IC ini. Saya biasanya mengikuti panduan ini, sebagian besar karena saya selalu lupa secara spesifik.

Kode untuk 328 (di bawah ArduinoSrc/keypad) cukup sederhana. Ini sepenuhnya bergantung pada perpustakaan Adafruit_Keypad-master-. Jika ada perubahan tentang lib, saya telah menyertakan versi yang saya gunakan di halaman github saya di bawah ArduinoSrc/lib.

ATMega1284:

Ini agak sulit bagi saya ketika saya pertama kali mendapatkan IC. Saya memulai dengan mendapatkan bootloader dari sini, dan mengikuti panduan instalasi. Untuk membakar bootloader, saya hanya melakukan hal yang sama seperti dengan 328 dan mendapat bantuan dari sini. Untuk kedua IC saya hanya menggunakan Arduino Uno untuk membakar bootloader dan mengunggah kode (IC dihapus dari Arduino Uno saat mengunggah).

Kode (di bawah ArduinoSrc/HAL1284Basic) terlalu rumit bagi saya, tetapi saya dapat memodifikasi beberapa bagian kode:

Saya menambahkan beberapa perintah (yang ditandai dengan [A] di manual.pdf), dan saya juga mengubah perintah lain:

Nada: Perintah nada hanya menggunakan fungsi nada Arduino sebelumnya, tetapi saat menggunakan perpustakaan TVout, ini menyebabkan buzzer tidak berfungsi dengan baik. Saya mengubahnya untuk menggunakan fungsi nada TVout, tetapi ini berarti bahwa pin nada HARUS menjadi pin 15 (untuk atmega1284)

Komunikasi Serial: Karena keyboard adalah DIY, menggunakan komunikasi serial untuk membaca karakter. Karena atmega1284 digunakan di sini, ada dua jalur komunikasi serial yang tersedia, dan ketika "sercom" diaktifkan, kode tersebut juga memungkinkan untuk menulis melalui port serial (dari komputer atau apa pun).

Resolusi: Monitor yang digunakan untuk proyek ini cukup bodoh, dan resolusi kecil diperlukan, atau gambar akan berkedip. Jika monitor yang lebih baik digunakan, saya sarankan Anda mengubah resolusi dalam fungsi pengaturan.

Langkah 5: Perakitan

perakitan
perakitan
perakitan
perakitan
perakitan
perakitan

Dengan kode yang diunggah dan PCB serta bagiannya sudah siap, sekarang saatnya untuk perakitan. Semua bagian yang saya gunakan adalah melalui lubang, jadi menyolder tidak terlalu sulit (berlawanan dengan badass-SMD-solder-fellas di luar sana). Monitor diikat ke empat lubang bor di PCB dengan dudukan cetak 3D. Jika monitor lain digunakan, empat lubang bor diharapkan dapat digunakan untuk memasang ini.

Dudukan monitor yang digunakan di sini, juga dirancang untuk menampung sakelar sakelar (terhubung ke jumper "sakelar" pada PCB) dan tiga tombol kontrol untuk monitor. Dudukan diikat dengan baut dan spacer M3 plastik.

Untuk colokan listrik saya menggunakan konektor PCB JST, meskipun jack barel yang licin akan sedikit lebih halus. Untuk memberi daya pada papan, saya beralih antara catu daya 12V atau tiga baterai 18650 secara seri. Seorang koboi yang lebih halus dari saya mungkin bisa mendesain dudukan baterai yang apik untuk papan.

Langkah 6: Bug dan Pekerjaan di Masa Depan

Tombol Panah: Tombol Panah diletakkan secara tidak sengaja dan tidak berfungsi banyak. Ini membuat navigasi menjadi sulit

File I/O: Ada kemampuan File I/O tetapi ini tidak diterapkan. Untuk mengatasi hal ini, perangkat lunak HAL1284Com dapat mengunggah file ke papan. Dimungkinkan juga untuk mengunggah ke EEPROM.

MENGINTIP/POKE: MENGINTIP dan POKE belum diuji, dan saya tidak yakin apa alamatnya.

Break: Break (Esc) terkadang mengacaukan seluruh kode, saat berada dalam infinite loop.

Pin 7: Pin 7 PWM dapat menjadi sulit ketika mencoba DWRITE High atau AWRITE 255. Ini bekerja dengan baik dengan AWRITE 254.

Idiot: Akan ideal untuk juga dapat mengunggah melalui UART1 tetapi pengunggahan hanya dimungkinkan melalui UART0, jadi pengunggahan harus dilakukan dengan mengekstraksi IC utama. Layar dan Pengatur Tegangan 5 menjadi agak terlalu panas saat berjalan dalam waktu lama.

Direkomendasikan: