Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Počítač inspirovaný Arduino od DemeterArt Využijte co nejlépe svou starou klávesnici PS2. Hackujte to do přizpůsobeného osobního počítače a ovládejte věci! Vždy jsem chtěl postavit svůj vlastní domácí počítač, jakýsi retro styl, nic efektního, ale s konkrétními schopnostmi přizpůsobenými mým preferencím. Tak jsem se k tomu dostal s atmega328 MCU a vývojovou sadou Arduino.
Dovolte mi, abych uvedl, že tento projekt by trval podstatně déle s pochybnými konečnými výsledky, kdyby nebylo těch nadaných fanoušků, kteří by sobecky méně dodávali freewarové knihovny pro každého. Děkuji vám všem:-)
navštivte můj web, přečtěte si celý příběh a stáhněte si všechny relevantní soubory
www.sites.google.com/site/demeterart
Krok 1: Funkce
- Na základě ATMEGA328 s 32 kB flash, 2 kB SRAM a 1 kB EEPROM.
- podpora interaktivních a dávkových režimů
- editor řádků a režim seznamu při úpravách
- 8 vlastních znaků pro uživatelskou grafiku
- 60 programových kroků očíslovaných 00,…, 99
- Smyčky „pokud“podmíněné, „zatímco“a „pro“plus výrazy „přejít“a „pod“pro větvení
- Základní aritmetické a matematické výrazy plus booleovské testy
- systémové proměnné umožňují časované události, průměr, efektivní hodnoty, minimální a maximální hodnoty z analogových pinů atd
- 26 uživatelských proměnných pro interakci se systémovými proměnnými a příkazy
- 104 bajtů adresovatelného pole uživatele nebo 52 krátkých celých čísel
- schopnost číst/zapisovat programová data i kód za běhu (proměnná p)
- aplikace mini osciloskopu s přizpůsobenými znaky pro pseudo grafiku
- ukládat a načítat programy a data do/z EEPROM
- načítat/ukládat programy a proměnné z/do PC
- autoexec do načtení a spuštění programu z EEPROM po každém resetu
- Na externím konektoru DB15 je k dispozici 9 pinů GPIO (včetně SPI)
- BUZZER pro zvukové efekty
Krok 2: Věci, které budete potřebovat
Stará klávesnice PS/2 dostatečně silná, aby pojala PCB LCD znakový displej (populární paralelní formát) MAX232 čip pro RS232 port atmel atmega328PU Arduino vývojová sada s IDE 1.0.1 LM7805 regulátor 5V bzučákový usměrňovací můstek, kondenzátory, resetovací tlačítko, konektory atd
Krok 3: Vypálení bootloaderu
Po nákupu „prázdného“čipu atmega328PU je tedy třeba učinit rozhodnutí. Mám použít speciální programátor, buď externí, nebo ISP, nebo vypálím zavaděč Arduino do šelmy a vykreslím jednotku programovatelnou přes její port UART? Vybral jsem si to druhé, abych si usnadnil život! Nový bootloader zabírá jen půl kilobajtu flash paměti, takže je k dispozici o něco více než 31 kB uživatelského programu a statických dat. Stránka Arduino pokrývá případ vypalování bootloaderu na nový čip, když došlo na použití avrdude ke skutečnému vypálení cílového čipu, proces selhal s chybou označující nesprávné ID pro konkrétní MCU. Po nějakém hledání jsem tedy našel toho chlapíka, který to pochopil správně, a já jsem se řídil jeho postupem. Jediným rozdílem byly 2 konfigurační soubory, avrdude.conf a boards.txt, které avrdude a arduino IDE 1.0.1 potřebovaly, aby to bylo možné. Po zkopírování 2 souborů na jejich správná místa (nejprve zazálohujte ty staré) byla k dispozici možnost „arduino328“z nástrojů-> Deska a avrdude pokračovalo vypalováním pojistek a zavaděče. Nyní je čip připraven k programování z nového stroje!
Krok 4: Sestavení jednotky
Děrovaná deska s měděnými pásy byla použita jako řešení rychlé montáže s DIP zásuvkami pro čipy, víte, jen pro případ! Poté byly otvory a výřezy pro konektory, resetovací tlačítko a LCD displej otevřeny pomocí extrémně pevného a silného plastu klávesnice. Jo, to bylo postaveno před 25 lety! Následoval nepořádek drátů vycházejících z desky plošných spojů směrem k různým periferním zařízením. Byla provedena základní kontrola kontinuity a poté bylo připojeno napájení bez osídlených čipů, jen aby se zkontrolovala správnost napětí v zásuvkách. Poté přišly 2 integrované obvody a pouzdro klávesnice bylo pevně uzavřeno plastovými západkami ve spodní části. Jednotka byla připravena vypálit náčrty v ovladači!
Navrhuji, aby jeden použil nepolární 1uF/16V kondenzátory pro nabíjecí čerpadla MAX232. Najděte oddělovací kondenzátory 100nF pro dva čipy co nejblíže příslušným pinům VCC a GND. Pro napájení a uzemnění regulátoru LM7805 použijte hvězdicové připojení. Přepínač 2 by mohl být propojkou v závislosti na impementaci, ale je dobré ji v určitých případech zamezit nechtěným resetům MCU z hostitelského počítače. V každém případě musí být spínač sepnutý, aby umožnilo Arduino IDE vypálit skicu resetováním cílového MCU (pin DTR RS232). V mém případě je připojení trvalé (vždy uzavřené). Použijte sériový rezistor pro bzučák k izolaci několika nF kapacitance od budicí brány … nikdy nevíte.. Najděte XTAL a nabíjecí 18-22pF kondenzátory co nejblíže příslušným kolíkům ovladače.
Díky můstku usměrňovače může být jednotka napájena jak napájecími adaptéry AC, tak DC. V případě stejnosměrného proudu dochází k poklesu napětí 1,5 V mezi adaptérem a vstupem do regulátoru. V případě střídavého proudu je vstup regulátoru přibližně 1,4násobek výkonu RMS adaptéru nebo méně v důsledku zatížení. Pokud je rozdíl mezi vstupem regulátoru a jeho výstupem (+5 V) velký, řekněme 7 voltů, pak se výkon spotřebovaný regulátorem blíží 0,5 wattu a je lepší použít malý chladič, na který se čip připevní (za předpokladu je na to prostor) na dlouhé hodiny provozu v horkém počasí.
Vstupní pojistka AC může být zvolena v závislosti na vašem externím zatížení (přes konektor DB15). Další faktory, které ovlivňují výběr pojistky, jsou proud omezující odpor pro LED podsvícení LCD, můstkový kondenzátor pro nabíjecí proud a proudová kapacita napájecího transformátoru.
Krok 5: SCHÉMA
Krok 6: SOFTWARE SPUŠTĚNÉ NA VSTUPU
Toto je náčrt, díky kterému se to všechno děje … a 32 kB nestačí! Buď ho můžete použít neupravený, v takovém případě bych ocenil odkaz na své jméno, nebo jej libovolně změnit a zapomenout na mě;-)
Toto je podrobná dokumentace o stroji.
Souhrn příkazů a výrazů
“: Netisknutelný řádek komentáře
ai: připojit přerušení 0 (pin D2)
ar: analogové čtení
aw: ‘analogový zápis’ na arduino nebo přesněji pwm
ca: analogový záznam v poli
cl: vymaže zobrazení cno: return *Prgm index čísla řádku
di: počkejte na sérii pulzů a změřte trvání a načasování
dl: zpoždění
dělat: ve spojení s „wh“
dr: digital read any pin
dw: digital write any pin
ed: režim editoru / načíst program z PC / přečíslovat řádky
el: EEPROM přístupová funkce
end: END prohlášení programu
ensb: končí podprogram
es: Funkce přístupu EEPROM
fl: jednoduchý filtr klouzavého průměru
fr: for-next loop (fr-nx)
přejít: skok na krok programu
gosb: pokračovat v provádění podprogramu
gt: čeká na vstup uživatele
pokud: testovací podmínky a skok na krok
io: GPIO 1-9 bitů
ld: načíst/sloučit program z EEPROM
lp:: smyčka ovládaná klávesnicí v interaktivním režimu
ls: režim seznamu / odeslání programu do počítače po řádku
ml: získejte čas
mm: zobrazení volné paměti
nos: převede číslo na řetězec
nx: ve spojení s „fr“
pl: plot pole cxx
pm: nastavit piny pro vstup nebo výstup
pr: vytiskne zprávu nebo hodnotu nebo vlastní znak
rgc: příkaz kopírování rozsahu pro pole
rgs: příkaz pro nastavení rozsahu pro pole
rn: spusťte program v RAM
rs: soft reset
rx: obdrží znak přes RS232
si: synchronní sériový vstup s hodinami a datovými piny
sm: mini osciloskop app sno: převede řetězec na číslo
tedy: synchronní sériový výstup s hodinami a datovými piny
sub: deklaruje podprogram
sv: uložit program do EEPROM
tn: pípnutí
tx: přenos čísla přes RS232
wh: smyčka do-while používaná ve spojení s „do“
Krok 7: Videoklip spuštěné aplikace Mini sm 'sm'
navštivte můj web, přečtěte si celý příběh a stáhněte si všechny relevantní soubory
www.sites.google.com/site/demeterart