Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Komputer inspirowany Arduino firmy DemeterArt Wykorzystaj w pełni swoją starą klawiaturę PS2. Zhakuj go na dostosowanym komputerze osobistym, aby kontrolować rzeczy! Zawsze chciałem zbudować własny komputer domowy, trochę w stylu retro, nic wymyślnego, ale z konkretnymi możliwościami dostosowanymi do moich preferencji. Tak więc dotarłem do tego z MCU atmega328 i zestawem rozwojowym Arduino.
Pozwolę sobie stwierdzić, że ten projekt trwałby znacznie dłużej z wątpliwymi wynikami końcowymi, gdyby nie utalentowani fani, którzy mniej samolubni dostarczają darmowe biblioteki do użytku wszystkich. Dziękuję wam wszystkim:-)
odwiedź moją stronę, aby przeczytać całą historię i pobrać wszystkie odpowiednie pliki
www.sites.google.com/site/demeterart
Krok 1: Funkcje
- Oparty na ATMEGA328 z 32KB flash, 2KB SRAM i 1KB EEPROM.
- obsługa trybów interaktywnych i wsadowych
- edytor linii i tryb listy podczas edycji
- 8 niestandardowych znaków dla grafiki użytkownika
- 60 kroków programu o numerach 00, …, 99
- Pętle warunkowe „If”, „while” i „for” oraz instrukcje „goto” i „sub” dla rozgałęzień
- Podstawowe wyrażenia arytmetyczne i matematyczne plus testy logiczne
- zmienne systemowe pozwalają na zdarzenia czasowe, średnie, rms, minimalne i maksymalne wartości z pinów analogowych itp
- 26 zmiennych użytkownika do interakcji ze zmiennymi systemowymi i poleceniami
- 104 bajty tablicy adresowalnej przez użytkownika lub 52 krótkie liczby całkowite
- możliwość odczytu/zapisu danych programu oraz kodu w locie (zmienna p)
- mini aplikacja oscyloskopowa z niestandardowymi znakami do pseudografiki
- zapisywanie i ładowanie programów i danych do/z EEPROM
- ładowanie/zapisywanie programów i zmiennych z/do komputera
- autoexec do ładowania i uruchamiania programu z EEPROM po każdym resecie
- 9 pinów GPIO (w zestawie SPI) dostępnych na zewnętrznym złączu DB15
- BUZZER dla efektów dźwiękowych
Krok 2: Rzeczy, których będziesz potrzebować
Stara klawiatura ps/2 wystarczająco gruba, aby pomieścić wyświetlacz LCD pcb (popularny format równoległy) Układ MAX232 dla portu RS232 zestaw rozwojowy Arduino atmel atmega328PU z regulatorem IDE 1.0.1 LM7805 5 V prostownik mostkowy brzęczyk, kondensatory, przycisk resetowania, złącza itp
Krok 3: Nagrywanie bootloadera
Tak więc po zakupie „pustego” układu atmega328PU należy podjąć decyzję. Czy używam specjalnego programatora zewnętrznego lub ISP, czy też wypalam bootloader Arduino do bestii i renderuję urządzenie do programowania za pośrednictwem portu UART? Wybrałem to drugie, aby ułatwić sobie życie! Nowy bootloader zajmuje tylko pół kilobajta pamięci flash, pozostawiając nieco ponad 31 KB programu użytkownika i danych statycznych. Strona Arduino obejmuje przypadek wypalenia bootloadera na nowym chipie, jeśli chodzi o użycie avrdude do faktycznego wypalenia docelowego chipa, proces nie powiódł się z błędem wskazującym zły identyfikator dla konkretnego MCU. Więc po kilku poszukiwaniach znalazłem tego faceta, który miał rację i zastosowałem się do jego procedury. Jedyną różnicą były 2 pliki konfiguracyjne, avrdude.conf i boards.txt, potrzebne avrdude i arduino IDE 1.0.1, aby było to możliwe. Po skopiowaniu 2 plików do odpowiednich lokalizacji (najpierw wykonaj kopię zapasową starych) dostępna była opcja „arduino328” z Tools->Board i avrdude przystąpił do wypalania bezpieczników i bootloadera. Teraz chip jest gotowy do zaprogramowania z poziomu nowej maszyny!
Krok 4: Budowanie jednostki
Perforowana płyta z miedzianymi paskami została wykorzystana jako rozwiązanie do szybkiego montażu z gniazdami DIP na chipy, wiesz, na wszelki wypadek! Następnie otwory i nacięcia na złącza, przycisk resetowania i wyświetlacz LCD zostały otwarte przez wyjątkowo wytrzymały i gruby plastik klawiatury. Tak, to zostało zbudowane 25 lat temu! Nastąpił bałagan przewodów wychodzących z płytki drukowanej w kierunku różnych urządzeń peryferyjnych. Prymitywna kontrola ciągłości, a następnie podłączenie zasilania bez zapełnienia chipów tylko po to, aby sprawdzić gniazda pod kątem prawidłowych napięć. Potem pojawiły się 2 układy scalone, a obudowa klawiatury została mocno zamknięta za pomocą plastikowych zatrzasków na dole. Urządzenie było gotowe do wypalenia szkiców w sterowniku!
Proponuję użyć niepolarnych kondensatorów 1uF/16V do pomp ładujących MAX232. Zlokalizuj kondensatory odsprzęgające 100nF dla dwóch chipów jak najbliżej odpowiednich pinów VCC i GND. Użyj połączenia w gwiazdę dla zasilania i uziemienia w odniesieniu do regulatora LM7805. Przełącznik 2 może być zworką w zależności od implementacji, ale dobrze jest mieć, choćby w celu uniknięcia niechcianych resetów MCU z komputera hosta w niektórych przypadkach. W każdym razie przełącznik musi być zamknięty, aby umożliwić Arduino IDE wypalenie szkicu poprzez zresetowanie docelowego MCU (pin DTR RS232). W moim przypadku połączenie jest stałe (zawsze zamknięte). Użyj rezystora szeregowego dla brzęczyka, aby odizolować kilka nF pojemności od bramki sterującej… nigdy nie wiadomo. Zlokalizuj XTAL i ładujące kondensatory 18-22pF jak najbliżej odpowiednich pinów sterownika.
Dzięki mostkowi prostowniczemu urządzenie może być zasilane zarówno z zasilaczy AC, jak i DC. W przypadku prądu stałego pomiędzy adapterem a wejściem regulatora występuje spadek napięcia 1,5 V. W przypadku prądu przemiennego wejście regulatora jest około 1,4 razy większe niż wyjście RMS adaptera lub mniej z powodu obciążenia. Jeśli różnica między wejściem regulatora a jego wyjściem (+5V) jest duża, powiedzmy 7 V, to moc pobierana przez regulator zbliża się do 0,5 wata i lepiej jest użyć małego radiatora, na którym można zamontować chip (pod warunkiem jest na to miejsce) na długie godziny pracy w czasie upałów.
Bezpiecznik wejściowy AC może być wybrany w zależności od zewnętrznych obciążeń (poprzez złącze DB15). Inne czynniki wpływające na wybór bezpiecznika to rezystor ograniczający prąd dla podświetlenia LED wyświetlacza LCD, kondensator mostkowy dla prądu ładowania i obciążalność prądowa transformatora zasilającego.
Krok 5: SCHEMAT
Krok 6: OPROGRAMOWANIE URUCHOMIONE NA POKŁADZIE
To jest szkic, który sprawia, że wszystko się dzieje… a 32 KB to za mało! Możesz używać go w niezmienionej formie, w takim przypadku byłbym wdzięczny za odniesienie do mojego imienia, lub zmienić je do woli i zapomnieć o mnie;-)
To jest szczegółowa dokumentacja dotycząca maszyny.
Podsumowanie poleceń i wyrażeń
„: niedrukowalna linia komentarza
ai: dołącz przerwanie 0 (pin D2)
ar: odczyt analogowy
aw: 'zapis analogowy' na arduino lub bardziej poprawnie pwm
ca: przechwytywanie analogowe w tablicy
cl: czyści wyświetlacz cno: return *Prgm indeks linii o numerze
di: czekaj na serię impulsów i zmierz czas trwania i czas
dl: opóźnienie
zrobić: w połączeniu z „wh”
dr: cyfrowy odczyt dowolnego pinu
dw: cyfrowy zapis dowolny pin
ed: tryb edytora / ładowanie programu z komputera / zmiana numeracji linii
el: funkcja dostępu do pamięci EEPROM;
end: instrukcja END programu
enb: kończy podprogram
es: funkcja dostępu do EEPROM
fl: prosty filtr średniej ruchomej
fr: pętla for-next (fr-nx)
idź: przejdź do kroku programu
gosb: kontynuuj wykonanie do podprogramu
gt: czeka na dane wejściowe użytkownika
if: sprawdź warunek i przejdź do kroku
io: GPIO 1-9 bitów
ld: ładowanie/scalanie programu z EEPROM
lp:: pętla sterowana klawiaturą w trybie interaktywnym
ls: tryb listy/wyślij program do komputera po linii na raz
ml: zdobądź czas
mm: wyświetl wolną pamięć
nos: zamienia liczbę na ciąg
nx: w połączeniu z „fr”
pl: tablica kreślenia cxx
pm: ustaw szpilki dla wejścia lub wyjścia
pr: drukuje wiadomość, wartość lub niestandardowy znak
rgc: polecenie kopiowania zakresu dla tablic
rgs: polecenie ustawienia zakresu dla tablic
rn: uruchom program w pamięci RAM
rs: miękki reset
rx: odbierz znak przez RS232
si: synchroniczne wejście szeregowe z zegarem i pinami danych
sm: aplikacja mini oscyloskopu sno: konwertuje ciąg na liczbę
tak: synchroniczne wyjście szeregowe z zegarem i pinami danych
sub: deklaruje podprogram
sv: zapisz program do EEPROM
tn: sygnał dźwiękowy
tx: prześlij numer przez RS232
wh: pętla do-while używana w połączeniu z „do”
Krok 7: Wideoklip z uruchomionej aplikacji Mini App
odwiedź moją stronę, aby przeczytać całą historię i pobrać wszystkie odpowiednie pliki
www.sites.google.com/site/demeterart