Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Big Hex Machine - komputer zbudowany do nauczania podstaw działania tych maszyn

Natsuki Kuga 21 Paź 2017 18:52 2616 5
  • Big Hex Machine - komputer zbudowany do nauczania podstaw działania tych maszyn

    ’Big Hex Machine’ - tak nazwano projekt zbudowany poprzez połączenie sił studentów i pracowników wydziału informatyki Uniwersystetu w Bristolu.

    Jest to dużej wielkości komputer (ponad 8 metrów kwadratowych), zbudowany specjalnie do nauczania tego, jak działają komputery. Maszyna ta obsługuje instrukcje 16-bit, jest również w pełni programowalna (posiada kompilator o małej objętości, jednak z wielkimi możliwościami tworzenia aplikacji).

    Jak mówią twórcy, ich założeniem było dokładne pokazanie, jak informacja w postaci kodu binarnego przechodzi od komponentu do komponentu w trakcie przetwarzania informacji. W tym celu użyto ponad 100 różnych części: 4-bitowe moduły ’hex’, procesor, własny ekran, porty wejścia i wyjścia (obsługują między innymi guziki), dodatkowo posiada kompletny zestaw narzędzi do pisania i kompilacji programów.

    Maszyna sterowana jest poprzez Raspberry Pi - dla twórców był on idealnym wyborem, dzięki dużym możliwościom i niskiej cenie.

    Twórcy na podstawie etapów budowy prototypu przedstawiają zasadę działania całego urządzenia. Jak wspominają, na początku ’Big Hex Machine’ był ich pierwszym 8-bitowym prototypem, bez innej możliwości włączania i wyłączania niż wyłączenia niż wyłączenie z sieci elektrycznej, to samo tyczyło się restartowania. Istniała możliwość ustawiania szybkości taktowania zegara procesora, jednakże wartością maksymalną był 1KHz, przy której nawet najprostsze programy wymagały czasu na załadowanie się do pamięci. Przy ładowaniu drugiego programu do pamięci potrzebna była druga płytka z modułami, lecz by się do niej dostać potrzebne było manualne przełączenie kabli komunikacyjnych do gniazd tej drugiej płytki. Samo ładowanie programu do pamięci również było kłopotliwe - do Raspberry Pi podpinana była płytka i2c, która korzystała ze skryptu napisanego w języku Python, który to z kolei przesyłał instrukcje programu do pamięci, skąd program mógł już być wykonywany.

    Big Hex Machine - komputer zbudowany do nauczania podstaw działania tych maszyn Big Hex Machine - komputer zbudowany do nauczania podstaw działania tych maszyn

    Następnym krokiem było pokonanie kolejnej bariery - maszyna miała wykonywać jednocześnie dwie czynności:

    * Czuwanie nad zegarem - zaczynanie i kończenie pracy urządzenia, również kontrola szybkości własnej pracy

    * Kompilowanie i ładowanie różnorodnych programów do własnej pamięci bez żadnej zewnętrznej interwencji (np. wcześniejszego przełączania kabli pomiędzy płytkami)

    W rozwiązaniu tych problemów pomocne okazało się stworzenie serwera NodeJS na Raspberry Pi oraz połączenie z nim płytki i2c poprzez GPIO.
    Big Hex dzięki temu otrzymywał komendy do startu, wyłączenia się, resetowania oraz zmiany prędkości taktowania procesora. Odpowiednia adaptacja maszyny pozwoliła również twórcom na bezpośrednią injekcję instrukcji. W połączeniu z wbudowanym kompilatorem pozwoliło to
    na automatyczne ładowanie kodu bez potrzeby dotykania żadnych kabli.

    Big Hex Machine - komputer zbudowany do nauczania podstaw działania tych maszyn

    Następnym krokiem było ustawienie Raspberry Pi w roli bezprzewodowego hotspotu Wi-Fi, co pozwoliło na zlikwidowanie routera Wi-Fi na USB i innych kabli potrzebnych do połączenia ze sobą poszczególnych części maszyny.

    W tym miejscu niemal wszystko było już gotowe - brakowało tylko przyjaznego interfejsu użytkownika. Udało się rozwiązać to za pomocą autorskiej aplikacji webowej, która korzystała z już wcześniej zaimplementowanego interfejsu REST, wystarczyło jedynie dodać HTML5, JQuery oraz bootstrap.

    Big Hex Machine - komputer zbudowany do nauczania podstaw działania tych maszyn

    Ostatnim krokiem było odłączenie płytki i2c i podłączenie komputera bezpośrednio do pinów GPIO Raspberry Pi oraz modułów hex, dodatkowo zaistniała potrzeba izolacji kabli, by przez przypadek przepięcie lub inny wypadek losowy nie zniszczyły Raspberry. Po połączeniu Pi bezpośrenio do komputera, bez i2c okazało się, że cała maszyna jest w stanie pracować szybciej - protokół od i2c „zjada” dużą ilość taktów zegara.

    Dodatkowym krokiem do przyspieszenia pracy było zbudowanie wrappera NodeJS / C++ GPIO. Wszystkie te operacje pozwoliły na uzyskanie prędkości procesora 80kHz, co pozwala na wykonywanie rozmaitych, ciekawych prac.

    Big Hex Machine - komputer zbudowany do nauczania podstaw działania tych maszyn

    Źródła:

    1. https://youtu.be/sQM2s8UJJQw

    2. https://bighexmachine.github.io

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Natsuki Kuga
    Poziom 13  
    Offline 
  • e-miernikie-mierniki
  • e-miernikie-mierniki
  • #3
    acctr
    Poziom 16  
    Moim zdaniem takie 'pomoce dydaktyczne' wcale nie ułatwiają zrozumienia działania komputera. Nie ma to jak zacząć od programowania w asemblerze, czy to mikrokontrolerów czy architektury na PC.
  • #4
    Tommy82
    Poziom 40  
    Bardzo dobry nikomu do niczego niepotrzebny projekt.
  • #5
    dr.hannibal
    Poziom 22  
    szymon122 napisał:
    Moim zdaniem takie 'pomoce dydaktyczne' wcale nie ułatwiają zrozumienia działania komputera.

    Popieram w 100%, projekt jako źródło wiedzy na temat architektury mirkoprocesorów jest beznadziejny i przede wszystkich PRZEKOMBINOWANY. Im prościej, tym lepiej (zwłaszcza jeśli ktoś nie zna podstaw). Lepiej było by zbudować jak najprostszy model/architekturę i dać możliwość rozbudowy przez dodatkowe moduły.
    Skoro to projekt akademicki, to pewnie była kasa, znalazł się temat i to zostało zrobione (liczy się głównie efekt wizualny, jak przyjdzie rektor/prorektor to można coś widowiskowego pokazać). Natomiast "efekt dydaktyczny" (dalszej przydatności) został tu pominięty.
  • #6
    Tommy82
    Poziom 40  
    Mogli by zrobić prosty procesor na kilku bramkach logicznych albo tranzystorach. Choć poziom tranzystora to już trochę za głęboko.
    A potem za symulować działanie każdej bramki na osobnym rpi ;) Tez by było bez sensu...