İçindekiler:

DemUino - Ev Bilgisayarı/Kontrol Cihazı: 7 Adım
DemUino - Ev Bilgisayarı/Kontrol Cihazı: 7 Adım

Video: DemUino - Ev Bilgisayarı/Kontrol Cihazı: 7 Adım

Video: DemUino - Ev Bilgisayarı/Kontrol Cihazı: 7 Adım
Video: Крутые идеи для БОЛГАРКИ (УШМ)! Интересные самоделки и станки! Расширяем функционал! 2024, Kasım
Anonim
Image
Image
Bootloader'ı Yakmak
Bootloader'ı Yakmak

DemeterArt'tan Arduino'dan Esinlenen Bir Bilgisayar Eski PS2 klavyenizden en iyi şekilde yararlanın. Eşyaları kontrol etmek için özelleştirilmiş bir kişisel bilgisayara hackleyin! Her zaman kendi ev bilgisayarımı, bir tür retro tarzı, fantezi olmayan, ancak tercihlerime göre uyarlanmış özel yeteneklerle inşa etmek istedim. Ben de buna atmega328 MCU ve Arduino geliştirme kiti ile ulaştım.

Herkesin kullanması için ücretsiz kütüphaneleri daha az bencilce sağlayan yetenekli hayranlar olmasaydı, bu projenin şüpheli sonuçlarla çok daha uzun süreceğini belirtmeme izin verin. Hepinize teşekkür ederim:-)

tüm hikayeyi okumak ve ilgili tüm dosyaları indirmek için sitemi ziyaret edin

www.sites.google.com/site/demeterart

Adım 1: Özellikler

  • 32KB flash, 2KB SRAM ve 1KB EEPROM ile ATMEGA328'e dayanmaktadır.
  • etkileşimli ve toplu modlar için destek
  • satır düzenleyici ve düzenleme sırasında listeleme modu
  • Kullanıcı grafikleri için 8 özel karakter
  • 00, …, 99 numaralı 60 program adımı
  • "If" koşullu, "while" ve "for" döngüleri artı dallanma için "goto" ve "sub" ifadeleri
  • Temel aritmetik ve matematiksel ifadeler artı boole testleri
  • sistem değişkenleri, analog pinlerden vb. zamanlı olaylara, ortalama, rms, min ve maks değerlerine izin verir.
  • Sistem değişkenleri ve komutları ile etkileşim için 26 kullanıcı değişkeni
  • 104 bayt kullanıcı adreslenebilir dizi veya 52 kısa tam sayı
  • program verilerini ve aynı zamanda anında kod okuma/yazma yeteneği (p değişkeni)
  • sözde grafikler için özelleştirilmiş karakterlere sahip mini osiloskop uygulaması
  • programları ve verileri EEPROM'a/EEPROM'dan kaydedin ve yükleyin
  • programları ve değişkenleri PC'den/PC'ye yükleyin/kaydedin
  • Her sıfırlamadan sonra bir programı EEPROM'dan yüklemek ve çalıştırmak için autoexec
  • Harici DB15 konektöründe 9 GPIO pini (SPI dahil) mevcuttur
  • Ses efektleri için BUZZER

2. Adım: İhtiyacınız Olan Şeyler

Pcb LCD karakter ekranını barındıracak kadar kalın eski bir ps/2 klavye (popüler paralel format) RS232 portu için MAX232 yongası atmel atmega328PU IDE 1.0.1 LM7805 regülatörlü 5V buzzer köprü doğrultucu, kapasitörler, bir sıfırlama düğmesi, Arduino geliştirme kiti, konektörler vb

Adım 3: Önyükleyiciyi Yazma

Yani, "boş" bir atmega328PU çipi satın aldıktan sonra, verilmesi gereken bir karar var. Harici veya ISP özel bir programlayıcı mı kullanmalıyım yoksa Arduino önyükleyicisini canavara yakıp üniteyi UART portu üzerinden programlanabilir hale mi getireyim? Hayatımı kolaylaştırmak için ikincisini seçtim! Yeni önyükleyici yalnızca yarım kilobayt flash bellek kaplar ve 31KB'den biraz daha fazla kullanıcı programı ve statik veri bırakır. Arduino sitesi, önyükleyiciyi yeni bir çip üzerinde yakma durumunu kapsar, hedef çipi gerçekten yakmak için avrdude kullanmaya geldiğinde, işlem belirli MCU için yanlış kimliği belirten bir hatayla başarısız oldu. Biraz araştırmadan sonra doğru anlayan bu adamı buldum ve onun prosedürünü takip ettim. Tek fark, bunu mümkün kılmak için avrdude ve arduino IDE 1.0.1'in ihtiyaç duyduğu 2 konfigürasyon dosyası, avrdude.conf ve boards.txt idi. 2 dosyayı uygun konumlarına kopyaladıktan sonra (önce eskilerini yedekleyin) araçlar->Board'dan 'arduino328' seçeneği mevcuttu ve avrdude sigortaları ve önyükleyiciyi yakmaya devam etti. Artık çip, yeni makinenin içinden programlanmaya hazır!

Adım 4: Üniteyi Oluşturma

Üniteyi İnşa Etme
Üniteyi İnşa Etme
Üniteyi İnşa Etme
Üniteyi İnşa Etme

Çipler için DIP soketli hızlı bir montaj çözümü olarak bakır şeritli delikli bir levha kullanıldı, bilirsiniz, her ihtimale karşı! Ardından konektörler için delikler ve kesikler, sıfırlama düğmesi ve LCD ekran, klavyenin son derece sağlam ve kalın plastiği ile açıldı. Evet, 25 yıl önce inşa edilmiş! Bunu pcb'den çeşitli çevre birimlerine doğru yayılan kablo karmaşası izledi. İlkel bir süreklilik kontrolü ve ardından besleme, soketleri uygun voltajlar için kontrol etmek için hiçbir çip takılmadan bağlandı. Ardından 2 IC geldi ve klavye kasası alttaki plastik çıtçıtlarla sıkıca kapatıldı. Ünite, kontrol cihazında eskizleri yakmaya hazırdı!

MAX232 şarj pompaları için polar olmayan 1uF/16V kapasitörler kullanmanızı öneririm. İlgili VCC ve GND pinlerine mümkün olduğunca yakın iki çip için 100nF ayırma kapasitörlerini bulun. LM7805 regülatörüne atıfta bulunulan güç ve toprak için bir yıldız bağlantı kullanın. Anahtar 2, uygulamaya bağlı olarak bir atlama kablosu olabilir, ancak yalnızca belirli durumlarda ana bilgisayardan istenmeyen MCU sıfırlamalarını önlemek için olması iyidir. Her halükarda, Arduino IDE'nin hedef MCU'yu (RS232 pin DTR) sıfırlayarak taslağı yakmasına izin vermek için anahtar kapatılmalıdır. Benim durumumda bağlantı kalıcıdır (her zaman kapalı). Sürücü kapısından kapasitansın birkaç nF'sini izole etmek için sesli uyarıcı için bir seri direnç kullanın… asla bilemezsiniz.. XTAL'i ve yükleme 18-22pF kapasitörlerini kontrolörün ilgili pinlerine mümkün olduğunca yakın yerleştirin.

Doğrultucu köprüsünden dolayı üniteye hem AC hem de DC güç adaptörleri ile güç sağlanabilir. DC olması durumunda, adaptör ile regülatörün girişi arasında 1,5 V'luk bir voltaj düşüşü vardır. AC durumunda, regülatörün girişi, yükleme nedeniyle adaptörün RMS çıkışının yaklaşık 1,4 katı veya daha azdır. Regülatörün girişi ile çıkışı (+5V) arasındaki fark büyükse, örneğin 7 voltsa, regülatör tarafından tüketilen güç 0,5 watt'a yaklaşır ve çipi monte etmek için küçük bir soğutucu kullanmak daha iyidir (sağlanan bunun için yer var) sıcak havalarda uzun çalışma saatleri için.

AC giriş sigortası, harici yüklerinize bağlı olarak seçilebilir (DB15 konektörü aracılığıyla). Sigorta seçimini etkileyen diğer faktörler, LCD'nin LED arka ışığı için akım sınırlama direnci, şarj akımı için köprü kapasitörü ve besleme transformatörünün akım kapasitesidir.

Adım 5: ŞEMATİK

ŞEMATİK
ŞEMATİK

Adım 6: YAZILIM ÜZERİNDE ÇALIŞIYOR

Her şeyin gerçekleşmesini sağlayan taslak budur… ve 32KB yeterli DEĞİLDİR! Ya değiştirilmemiş olarak kullanabilirsiniz, bu durumda ismime atıfta bulunmayı takdir ediyorum ya da istediğim zaman değiştirip beni unutun;-)

Bu, makineyle ilgili ayrıntılı belgelerdir.

Komutların ve İfadelerin Özeti

“: yazdırılamayan bir yorum satırı

ai: kesme 0 ekle (pin D2)

ar: analog okuma

aw: arduino veya daha düzgün pwm başına 'analog yazma'

ca: bir dizide analog yakalama

cl: ekranı temizler cno: dönüş *Prgm satır numarası indeksi

di: bir dizi darbe bekleyin ve süreyi ve zamanlamayı ölçün

dl: gecikme

do: 'wh' ile birlikte

dr: dijital herhangi bir pini oku

dw: dijital herhangi bir pin yaz

ed: editör modu / programı PC'den yükle / satırları yeniden numaralandır

el: EEPROM erişim işlevi

end: bir programın END ifadesi

ensb: alt programı sonlandırır

es: EEPROM erişim işlevi

fl: basit hareketli ortalama filtresi

fr: sonraki döngü için (fr-nx)

git: program adımına atla

gosb: yürütmeye alt programa devam et

gt: kullanıcı girişi için bekler

if: durumu test edin ve adıma atlayın

io: GPIO 1-9 bit

ld: programı EEPROM'dan yükle/birleştir

lp:: etkileşimli modda klavye kontrollü döngü

ls: liste modu / programı bir seferde PC'ye bir satır gönder

ml: zaman kazan

mm: boş hafızayı göster

nos: sayıyı dizgeye dönüştürür

nx: 'fr' ile birlikte

pl: cxx dizisini çiz

pm: giriş veya çıkış için pinleri ayarla

pr: bir mesaj veya değer ya da özel karakter yazdırır

rgc: diziler için aralık kopyalama komutu

rgs: diziler için aralık kümesi komutu

rn: programı RAM'de çalıştırın

rs: yumuşak sıfırlama

rx: RS232 aracılığıyla bir karakter alın

si: saat ve veri pinleri ile senkron seri giriş

sm: mini osiloskop uygulaması sno: diziyi sayıya dönüştürür

yani: saat ve veri pinleri ile senkron seri çıkış

sub: alt programı bildirir

sv: programı EEPROM'a kaydet

tn: bip sesi

tx: RS232 aracılığıyla bir numara iletin

wh: 'do' ile birlikte kullanılan bir do-while döngüsü

7. Adım: Mini Uygulamanın 'sm' Çalışmasının Video Klibi

tüm hikayeyi okumak ve ilgili tüm dosyaları indirmek için sitemi ziyaret edin

www.sites.google.com/site/demeterart

Önerilen: