Spisu treści:
- Krok 1: Funkcje
- Krok 2: Rzeczy, których będziesz potrzebować
- Krok 3: Nagrywanie bootloadera
- Krok 4: Budowanie jednostki
- Krok 5: SCHEMAT
- Krok 6: OPROGRAMOWANIE URUCHOMIONE NA POKŁADZIE
- Krok 7: Wideoklip z uruchomionej aplikacji Mini App
Wideo: DemUino - komputer domowy/kontroler: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
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
Zalecana:
Domowy system bezpieczeństwa wykorzystujący technologię Sensor Fusion: 5 kroków
Domowy system bezpieczeństwa wykorzystujący Sensor Fusion: Ideą tego projektu jest stworzenie taniego i łatwego do wykonania czujnika bezpieczeństwa, który może być używany do ostrzegania, gdy ktoś go przekroczy. Pierwotnym celem było stworzenie czegoś, co mogłoby mnie powiadomić, gdy ktoś wejdzie po schodach, ale ja też
Napar domowy - Mac: 14 kroków
Home Brew - Mac: Ta instrukcja będzie używana w kilku innych dokumentach, dlatego postanowiłem ją oddzielić, aby zapobiec podwojeniu w innych instrukcjach, które będę pisać. Ta instrukcja poprowadzi Cię przez proces zainstaluj Ho
Domowy samolot RC Cessna Skyhawk ŁATWA BUDOWA: 7 kroków (ze zdjęciami)
Domowy samolot RC Cessna Skyhawk ŁATWA BUDOWA: Odkąd byłem dzieckiem, jak każdy inny dzieciak byłem zafascynowany samolotami RC, ale nigdy nie mogłem ich kupić ani zrobić, ponieważ były bardzo drogie lub trudne do zbudowania, ale te czasy są już za nami i Podzielę się tym, jak zrobiłem swój pierwszy samolot RC (ja
Kontroler gier DIY oparty na Arduino - Kontroler gier Arduino PS2 - Granie w Tekken z DIY Arduino Gamepad: 7 kroków
Kontroler gier DIY oparty na Arduino | Kontroler gier Arduino PS2 | Granie w Tekken z DIY Arduino Gamepad: Witajcie, granie w gry jest zawsze zabawne, ale granie z własnym niestandardowym kontrolerem do gier jest przyjemniejsze. Dlatego stworzymy kontroler do gier za pomocą arduino pro micro w tej instrukcji
Kontroler Arduino HRV (domowy wymiennik powietrza) z ekonomizerem powietrza: 7 kroków (ze zdjęciami)
HRV (Home Air Exchanger) Kontroler Arduino z ekonomizerem powietrza: Kontroler HRV Arduino z ekonomizerem powietrza Moja historia z tym projektem polega na tym, że mieszkam w Minnesocie, a moja płytka drukowana jest smażona na moim LifeBreath 155Max HRV. Nie chciałem płacić 200 USD za nowy. Zawsze chciałem coś z grzechem ekonomizera powietrza