Skocz do zawartości

Miniaturowa konsola do nauki programowania gier


deshipu

Pomocna odpowiedź

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Kolejne kroki. Po pierwsze, dotarły pojemniki na baterie, więc mam już docelowy wygląd:

IMG_20180804_124537.thumb.jpg.47631dede416253fe58a6efb39a8d297.jpg

Niestety urządzenie wyszło troszkę bardziej toporne i ciężkie, niż się spodziewałem. Jednak baterie AA małe nie są i swoje ważą. Zastanawiam się nad zmianą orientacji urządzenia na poziomą (z przyciskami po bokach ekranu) i użyciem baterii AAA — ale nie wiem jeszcze co wtedy zrobić z wtyczką USB.

Po drugie, kod sterujący matrycą LED przepisany do C działa dobrze jeśli wyświetlam tylko zapalone lub zgaszone piksele. Niestety, przy próbie uzyskania wymaganych czterech odcieni szarości okazało się, że przerwanie systemowe odpalane co 1ms to trochę za mało i widać miganie. Mam zatem trzy możliwości: pohaczyć CircuitPythona żeby przerwanie systemowe wykonywało się szybciej (zrobiłem to dla testów), użyć osobnego timera z osobnym przerwaniem (docelowo i tak będę chciał to zrobić, bo mam w planach też wersję z charlieplexowanymi LEDami), albo użyć sprzętowego PWM do kontrolowania odcieni szarości. Niestety, ten ostatni punkt wymaga, żeby wszystkie piny użyte do sterowania kolumn (czy też wierszy, wszystko jedno) obsługiwały PWM, a niestety mój robiony na szybko projekt płytki tego nie przewidział i dwa piny nie mają takiej opcji.

Zatem trzeba przeprojektować płytkę. Przy okazji poprawiłem też parę niedociągnięć poprzedniej i ładniej poprowadziłem ścieżki:

96ae60c371675154cea5a7ccbf576f11.thumb.png.d3256a944b98535f2015a5c8f3073b2b.png

Dzięki uprzejmości OSHPark płytki będą zrobione ekspresowo i powinienem mieć je za kilka dni — wtedy będę kontynuować eksperymenty.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Była ciemna i burzliwa noc.

Jak zwykle w takich sytuacjach dopadło mnie przekleństwo majsterkowicza: myślenie. Otóż pomyślałem sobie, że fajnie by było gdyby oprócz pisania prostych gier dało się z tym urządzeniem robić także eksperymenty z hobbystyczną elektroniką, tak jak to umożliwia Micro:bit czy inne płytki prototypowe. Mielibysmy wtedy takiego naszego microbita, tylko tańszego, wygodniejszego w obsłudze i lepiej się nadającego do realistycznych aplikacji. Byłoby super, ale w tym celu musiałbym wyprowadzić co najmniej kilka wyjść GPIO tak, aby dało się do nich coś podłączyć. Niestety, mój budżet pinów w tym projekcie wygląda obecnie tak:

  • 8 kolumn matrycy LED
  • 8 wierszy matrycy LED
  • 6 przycisków
  • 2 piny programatora/debugera
  • 2 linie danych USB

Te dwa piny dla debugera to jednak trochę mało, choć można ich użyć zarówno jako zwykłych GPIO jak i jako magistrali I²C, a to już coś. No ale przydałoby się jednak więcej. Co można zrobić?

Charlieplexowanie LED-ów rozwiązałoby problem pozwalając obsłużyć wyświetlanie zaledwie 9 pinami, zamiast 16, ale wtedy nie mógłbym użyć gotowej matrycy LED, tylko musiałbym mieć indywidualne diody jak w tym prototypie karty — podraża to montaż i nie wygląda najlepiej.

Być może dałoby się coś ugrać przyciskami? W końcu osobny pin na każdy przycisk do marnotrawstwo. Mógłbym je połączyć w macierz 3×2 uzyskując jedną wolną nóżkę, ale wtedy musiałbym dodać sześć diod żeby uniknąć efektu ghostingu. Mógłbym też podłączyć te przyciski przez diody do wierszy matrycy LED i dodać w kodzie dziewiąta "wirtualną" komunę, przy skanowaniu której sprawdzałbym przyciski. Niestety, to jest nadal 6 dodatkowych komponentów i wolniejsze skanowanie, które odbiłoby się na jasności pikseli.

W końcu mnie oświeciło. Powinienem podłączyć jeden koniec każdego z przycisków do poszczególnych kolumn matrycy (kod skanujący łączy po kolei każdą z nich z masą), a drugi koniec razem do jednego pinu GPIO ustawionego na input z rezystorem podciągającym. Coś takiego:

IMG_20180814_105851.thumb.jpg.1595a1a8c551703c19cd4c5be3496e20.jpg

Wówczas kod skanujący matrycę może przy każdej kolumnie przy okazji także sprawdzać stan przycisku na tym jednym dodanym pinie. Zaoszczędziłem 5 pinów i uprościłem kod programu.

No to dalej. Trzeba się zastanowić jak te piny powinny być wyprowadzone. Po pierwsze, patent z wtyczką USB z płytki PCB odpada, bo jak chcemy to podłączać do płytki stykowej, to jednak potrzebujemy kabel USB. Zatem powrót gniazdka micro-USB. Mogę też obrócić urządzenie do wygodniejszej, poziomej konfiguracji i zastąpić baterie AA bateriami AAA, żeby całość była trochę cieńsza i lżejsza. Wyprowadzenie pinów powinno być z innej strony niż port USB i wyłącznik, żeby te nie zawadzały przy budowaniu naszych układów. Najlepiej, gdyby piny wyprowadzone były na górze płytki, a porty i wyłącznik znajdowały się na dole. Nie mogę użyć standardowych męskich goldpinów, choć byłoby wygodnie po prostu wpinać całe urządzenie w płytkę stykową — niestety, założenie jest takie, że to ma być noszone w kieszeni, a nie chcemy kontuzji, podartych ubrań i pogiętych nóżek. Nie chcę też żadnych dziur na wtyczki bananowe ani specjalnych łączy jak w Micro:bit — to ma być proste urządzenie nie wymagające dodatkowego specjalnego sprzętu. Pozostają zatem dwie opcje: header goldpinów damski, albo po prostu dziury w płytce ustawione tak, żeby dało się w nie wstawić godlpiny (albo wlutować damskie złącze) w razie potrzeby. Ta ostatnia opcja jest szczególnie kusząca, bo oszczędza mi jedną część i sporo lutowania.

Po podsumowaniu wszystkiego, wychodzi mi coś w ten deseń:

pew.thumb.png.bcd5a6ced883a690165013c4a72eaa11.png

Nie będę na razie nic zamawiał, już dosyć płytek zamówiłem w tym miesiącu, pozwolę się pomysłom ustabilizować i będę wprowadzał drobne poprawki w miarę jak mi będą przychodzić do głowy, ale chyba jest to ten kierunek, w którym chciałbym z tym projektem pójść. Co prawda port USB i mniejsze baterie zwiększają nieco koszt (i powodują powrót potencjalnych problemów z kablami tylko do ładowania), ale za to zdecydowanie zwiększają komfort pracy, więc chyba się z tym pogodzę.

  • Lubię! 2
Link do komentarza
Share on other sites

Pisałeś o problemie z panelizacją. Dzisiaj przyszło mi zamówienie z Elecrow 10 szt (wysłali 12) takich płytek 10x5cm:

IMG_20180817_134858.thumb.jpg.93bb79236418797cef3ede313baec877.jpg

Po przełamaniu będę miał 24 szt. Płaciłem jak za normalne płytki 10x5cm czyli 5$ produkcja + 8$ wysyłka i o nic się nie czepiali.

  • Lubię! 1
Link do komentarza
Share on other sites

17 minut temu, Treker napisał:

Próbujesz zlecić całość w Chinach czy gdzieś lokalnie?

Lokalnie wychodzi niestety trochę drogo, a po znajomości jest ciężko jak się nie zna języka. Na razie mam na oku dwie fabryki w Shenzhen i jedną na Florydzie. Ta ostatnia to siakaś nowa i mają ciekawą ofertę dodatkową: magazynowanie i wysyłanie na podane adresy, co w przypadku zamówień z USA ma dużo sensu. W sumie Seeedstudio też ma takie coś (tylko z Chin), ale jak dotychczas nie odpowiadają na żadne moje maile, więc nie udało mi się z nimi nawiązać żadnej współpracy. Zobaczymy co odpowiedzą inni.

  • Lubię! 1
Link do komentarza
Share on other sites

Mogę Ci zasugerować poproszenie o wycenę w firmie EPROM. Żeby nie było - nie mam z nimi nic wspólnego, po prostu kiedyś wycenialiśmy wykonanie małej serii 50 sztuk (PCB 4 warsty i przelotki zagrzebane + lutowanie) i wyszło taniej albo porównywalnie, jak u konkurencji z Azji. PCB oczywiście i tak zamawiają w Chinach (honyapcb.eu/)  , ale montują w kraju.

Pewien znany sklep dla elektroników, w którym 5 lat temu pracowałem, też korzystał wtedy z usług tej firmy (nie wiem jak dzisiaj) i jakość wykonania była ok.

 

Link do komentarza
Share on other sites

15 minut temu, Nawyk napisał:

Mogę Ci zasugerować poproszenie o wycenę w firmie EPROM. Żeby nie było - nie mam z nimi nic wspólnego, po prostu kiedyś wycenialiśmy wykonanie małej serii 50 sztuk (PCB 4 warsty i przelotki zagrzebane + lutowanie) i wyszło taniej albo porównywalnie, jak u konkurencji z Azji. PCB oczywiście i tak zamawiają w Chinach (honyapcb.eu/)  , ale montują w kraju.

Pewien znany sklep dla elektroników, w którym 5 lat temu pracowałem, też korzystał wtedy z usług tej firmy (nie wiem jak dzisiaj) i jakość wykonania była ok.

 

Zapytać o wycenę nigdy nie zaszkodzi. Masz może do nich jakiś kontakt? Bo wyszukiwarka internetowa znajduje dużo firm o takiej nazwie, ale żadna nie wydaje się zajmować składaniem elektroniki...

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.