Spisu treści:
- Krok 1: Części, których użyłem
- Krok 2: Obwód
- Krok 3: PCB
- Krok 4: Przesyłanie kodu
- Krok 5: Montaż
- Krok 6: Błędy i przyszła praca
Wideo: Ręczny komputer BASIC: 6 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:26
Ten Instruktaż opisuje mój proces budowania małego komputera przenośnego z systemem BASIC. Komputer jest zbudowany na chipie ATmega 1284P AVR, który również zainspirował głupią nazwę komputera (HAL 1284).
Ta konstrukcja jest CAŁKOWICIE zainspirowana niesamowitym projektem znalezionym tutaj i odznaką SuperCON BASIC.
Na komputerze działa zmodyfikowana wersja TinyBasic, chociaż większość oprogramowania jest oparta na projekcie dan14. Możesz oczywiście postępować zgodnie z tym Instruktażem, a nawet lepiej, ulepszyć go, ponieważ popełniłem kilka błędów.
Do tego projektu stworzyłem również instrukcję obsługi. Wspomina o kilku błędach i szczegółach dla wybranego monitora, ale co najważniejsze, zawiera listę operacji BASIC.
Po publikacji nakręciłem film prezentujący projekt.
Krok 1: Części, których użyłem
Dla głównego układu scalonego:
- ATmega 1284P
- Kryształ 16 MHz
- Kondensator ceramiczny 2x22pf
- Rezystor 10KΩ (do resetowania podciągania)
- 4-stykowy przycisk (do resetowania)
- Rezystor 470 Ω (dla sygnału kompozytowego)
- Rezystor 1kΩ (do synchronizacji kompozytowego sygnału wideo)
- Zworka 3-pinowa (dla sygnału wideo)
- Brzęczyk pasywny
Do kontroli klawiatury:
- ATmega 328P (jak te używane w Arduino Uno)
- Kryształ 16 MHz
- Kondensator ceramiczny 2x22pf
- Rezystor 12x 10KΩ (do resetowania podciągania i przycisków)
- 51x 4-pinowy przycisk (dla rzeczywistej klawiatury)
Dla mocy:
- Regulator napięcia L7805
- 3mm dioda LED
- Rezystor 220Ω (dla LED)
- 2x 0.1 µF kondensator elektrolityczny
- Kondensator elektrolityczny 0,22 µF (można zamienić ten 0,22 i jeden 0,1 na jeden 0,33. Powiedziano mi również, że wartości nie mają większego znaczenia, ale nie radzę sobie dobrze z kondensatorami)
- 2x zworka 2-pinowa (dla wejścia zasilania i dla wyłącznika głównego)
GPIO (może dodać jeszcze kilka podstaw):
- Zworka 7-pinowa
- 2x zworka 8-pinowa
- Zworka 2-pinowa (dla 5V i GND)
- Zworka 3-4-pinowa (do komunikacji szeregowej)
Inne niż PCB:
- 4-calowy wyświetlacz LCD z kompozytowym wideo (Mój miał napięcie wejściowe między 7-30 V)
- Drukowany w 3D uchwyt na wyświetlacz
- Jakiś przełącznik
Krok 2: Obwód
Obwód nie jest zbyt ładny i większość głównego regionu IC jest inspirowana przez dan14. To powiedziawszy, jest to całkiem proste Arduino na obwodzie Breadboard. Klawiatura ma prostą siatkę i jest kontrolowana przez ATmega328. Dwa układy AVR komunikują się za pośrednictwem pinów szeregowych UART.
Zarówno obraz, jak i moje pliki Eagle są załączone i mam nadzieję, że wystarczą do odtworzenia obwodu. Jeśli nie, poinformuj mnie, a zaktualizuję Instructable.
Krok 3: PCB
Płytka jest dwuwarstwowa i stworzona za pomocą Auto Route (och, co za ** dziura!). Posiada przyciski i wskaźnik zasilania LED z przodu, a resztę z tyłu. Miałem swoją płytkę PCB wykonaną z PCB JCL i wykonali z nią niesamowitą robotę. Pliki potrzebne do odtworzenia PCB powinny znajdować się w plikach Eagle z wcześniej.
Sugerowałbym przeprojektowanie PCB, ponieważ mam kilka rzeczy, które chciałbym zrobić inaczej. Jeśli podoba Ci się mój projekt, nadal mam (w momencie pisania) cztery nieużywane tablice, które chętnie sprzedam.
Na płytce znajdują się cztery wywiercone otwory, które wykorzystałem do montażu wyświetlacza LCD.
Krok 4: Przesyłanie kodu
Zarówno 1284, jak i 328 oczywiście potrzebują kodu, a kod, którego użyłem, można znaleźć tutaj: https://github.com/PlainOldAnders/HAL1284 pod ArduinoSrc/src. Po prostu użyłem Arduino IDE do modyfikacji i przesyłania kodu, ale zanim to zrobisz, musisz nagrać bootloadery na układach scalonych:
ATMega328:
Ten jest łatwy w tym sensie, że jest dużo wsparcia, jak nagrać bootloader i przesłać kod do tego IC. Zwykle podążam za tym przewodnikiem, głównie dlatego, że ciągle zapominam o szczegółach.
Kod dla 328 (pod ArduinoSrc/klawiaturą) jest dość prosty. Całkowicie opiera się na bibliotece Adafruit_Keypad-master. Na wypadek, gdyby coś się zmieniło w lib, dołączyłem wersję, której użyłem na mojej stronie github pod ArduinoSrc/lib.
ATmega1284:
To było dla mnie trochę trudne, kiedy po raz pierwszy dostałem IC. Zacząłem od pobrania bootloadera stąd i podążałem za przewodnikiem instalacji. Aby spalić bootloader, po prostu zrobiłem to samo, co z 328 i otrzymałem stąd pomoc. W przypadku obu układów scalonych użyłem Arduino Uno zarówno do nagrywania bootloadera, jak i przesyłania kodu (usunąłem układ scalony z Arduino Uno podczas przesyłania).
Kod (pod ArduinoSrc/HAL1284Basic) jest dla mnie zbyt skomplikowany, ale udało mi się zmodyfikować niektóre części kodu:
Dodałem kilka komend (oznaczonych [A] w manual.pdf), zmieniłem też inne komendy:
Tone: Polecenie tonu używało wcześniej funkcji tonu Arduino, ale podczas korzystania z biblioteki TVout powodowało to, że brzęczyk nie działał poprawnie. Zmieniłem go na funkcję tone TVout, ale to oznacza, że pin tonu MUSI być pin 15 (dla atmega1284)
Komunikacja szeregowa: Ponieważ klawiatura jest DIY, używa komunikacji szeregowej do odczytywania znaków. Ponieważ atmega1284 jest tutaj używany, dostępne są dwie linie komunikacji szeregowej, a przy włączonym "sercom" kod pozwala również na zapis przez port szeregowy (z komputera lub czegokolwiek).
Rozdzielczość: Monitor używany w tym projekcie jest dość głupi i potrzebna jest mała rozdzielczość, w przeciwnym razie obraz migocze. Jeśli używany jest lepszy monitor, sugerowałbym zmianę rozdzielczości w funkcji ustawień.
Krok 5: Montaż
Po przesłaniu kodu i gotowej płytce drukowanej i częściach nadszedł czas na montaż. Wszystkie części, których użyłem, były przelotowe, więc lutowanie nie było zbyt trudne (w przeciwieństwie do twardzieli z SMD). Monitor został przymocowany do czterech otworów w płytce drukowanej za pomocą drukowanego w 3D uchwytu. Jeśli używany jest inny monitor, cztery otwory mogą być wykorzystane do jego zamontowania.
Zastosowany tutaj uchwyt monitora jest również przeznaczony do umieszczenia przełącznika dwustabilnego (podłączonego do zworki „switch” na płytce drukowanej) oraz trzech przycisków sterujących monitorem. Uchwyt mocowany jest plastikowymi śrubami M3 i przekładkami.
Do wtyczki zasilania użyłem złącza JST PCB, chociaż zgrabne gniazdo baryłkowe byłoby nieco bardziej płynne. Aby zasilić płytkę przełączyłem się między zasilaczem 12V lub trzema akumulatorami 18650 szeregowo. Gładszy kowboj niż ja mógłby prawdopodobnie zaprojektować zgrabny uchwyt baterii do deski.
Krok 6: Błędy i przyszła praca
Klawisze strzałek: Klawisze strzałek zostały umieszczone przypadkowo i nie pełnią zbyt wiele funkcji. To utrudnia nawigację
File I/O: Istnieją możliwości File I/O, ale nie są one zaimplementowane. Aby temu zaradzić, oprogramowanie HAL1284Com jest w stanie przesyłać pliki na płytę. Możliwe jest również wgranie do EEPROM.
PEEK/POKE: PEEK i POKE nie są testowane i nie jestem pewien, jakie są adresy.
Break: Break (Esc) czasami mieszał z całym kodem, gdy jest w nieskończonych pętlach.
Pin 7: Pin 7 PWM może być trudny podczas próby DWRITE High lub AWRITE 255. Działa dobrze z AWRITE 254.
Idiota: Idealnie byłoby również móc przesyłać przez UART1, ale przesyłanie jest możliwe tylko przez UART0, więc przesyłanie będzie musiało zostać wykonane przez wyodrębnienie głównego układu scalonego. Ekran i Regulator Napięcia 5 nagrzewają się nieco za gorąco podczas długiej pracy.
Zalecana:
Ręczny wentylator Arduino z pojemnościowym przełącznikiem dotykowym.: 6 kroków
Ręczny wentylator Arduino z pojemnościowym przełącznikiem dotykowym.: W tym samouczku dowiemy się, jak włączać i wyłączać wentylator akumulatora Hendheld za pomocą pojemnościowego czujnika dotykowego, modułu reley i Visuino. Obejrzyj film demonstracyjny
SKARA- Autonomous Plus Ręczny robot do czyszczenia basenu: 17 kroków (ze zdjęciami)
SKARA- Autonomous Plus Ręczny robot do czyszczenia basenu: Czas to pieniądz, a praca ręczna jest kosztowna. Wraz z nadejściem i postępem w technologiach automatyki należy opracować bezproblemowe rozwiązanie dla właścicieli domów, stowarzyszeń i klubów, aby oczyścić baseny z gruzu i brudu codziennego życia, a
Modułowy asystent ręczny: 7 kroków
Modular Hand Assist: Widziałem ludzi z urazami palców, brakiem palców lub niepełnosprawnością mięśni, którzy mieli trudności z chwytaniem rzeczy. Może to bardzo wpłynąć na ich życie. Choć na rynku są już dziesiątki urządzeń asystujących, to na cenę trudno sobie pozwolić. Tam
Wysuwany ręczny gimbal dla GoPro/SJ4000/Xiaomi Yi/iLook: 9 kroków (ze zdjęciami)
Wysuwany ręczny gimbal do GoPro/SJ4000/Xiaomi Yi/iLook: Ten samouczek pokaże Ci, jak zhakować kij do selfie i gimbal 2D, aby stworzyć wysuwany ręczny gimbal, który może montować kamery takie jak GoPro SJ4000/5000/6000 Xiaomi Yi Walkera iLook. Gimbal to mechanizm stabilizacji, który rem
Ręczny stabilizator aparatu: 13 kroków (ze zdjęciami)
Ręczny stabilizator kamery: wprowadzenie Jest to przewodnik dotyczący tworzenia 3-osiowego ręcznego urządzenia do stabilizacji kamery dla GoPro przy użyciu płytki rozwojowej Digilent Zybo Zynq-7000. Ten projekt został opracowany dla klasy CPE Real-Time Operating Systems (CPE 439). Stabilizator wykorzystuje t