Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Któregoś dnia chciałem sprawdzić jeden z moich odbiorników AVR, ale byłem na górze i Bóg wie, że zejście na dół do miejsca, w którym był mikrokontroler, było zbyt trudne. Ale na górze obok mojego leniwego tyłka siedziały dwa bezczynne komputery, więc miałem pół dnia pracy i postanowiłem napisać aplikację łączącą dwa porty: port szeregowy do połączenia z Arduino/AVR i TCP/IP port, do którego mogę się telnetować z mojej sieci bezprzewodowej lub przez Internet. Aplikacja działa wtedy jako proxy między siecią TCP/IP a odbiornikiem AVR. Aby lepiej zobaczyć film, kliknij dwa razy i przywołaj go w osobnym oknie i powiększ. W przeciwnym razie zmruż oczy i zobaczysz, co jest pisane. Skończyło się na tym, że zmodyfikowałem aplikację połączenia szeregowego AVR Terminal, którą już napisałem, i dodałem do niej obsługę TCP/IP. Aby to zrobić, napisałem oprogramowanie, które zapewnia coś w rodzaju powłoki UNIX, dając mi zdalny dostęp do wszystkich pinów, ustawień bezpieczników itp. Możesz zdalnie włączyć diody LED i inne rzeczy. Obsługuje nawet regulację prędkości zegara w czasie rzeczywistym i ma system pseudo-hasła, który zapewnia ramy dla list kontroli dostępu lub uwierzytelniania dla poleceń na poziomie root (takich jak wyłączanie podsystemów itp.). Oto kilka rzeczy, które może zrobić:
- Wyświetl częstotliwość swojego procesora
- Ustaw dowolny pin na wejście lub wyjście
- Przeczytaj stan dowolnego pinu
- Wyślij logikę 1 i 0 do dowolnego pinu, aby włączyć diody LED itp
- Wyłącz i włącz urządzenia peryferyjne SPI, TWI, USART i ADC
- Odczytaj dolny bezpiecznik, wyższy bezpiecznik, zewnętrzny bezpiecznik i zablokuj bity w czasie rzeczywistym!
- Uruchom liczniki, aby automatycznie odmierzać czasy wydarzeń i rzeczy.
- Struktura systemu uwierzytelniania w EEPROM
- Ustaw dowolny dostępny preskaler zegara w czasie rzeczywistym
- Napisany w C++ i skompilowany dla ATmega328P
Ta instrukcja zawiera szczegółowe informacje o tym, jak pobrać oprogramowanie (i oprogramowanie układowe, jeśli chcesz), zainstalować je i rozpocząć dostęp do swojego odbiornika AVR z bezprzewodowej sieci domowej lub przez Internet.
Krok 1: Czego będziesz potrzebować
- Samodzielny AVR lub Arduino / klon (szczegółowe instrukcje, jak stworzyć własny, całkiem kompletny, samodzielny system AVR, w tym zewnętrzny kryształ, kondensatory odsprzęgające i regulowane źródło zasilania, zobacz moje inne instrukcje).
- Połączenie szeregowe lub USB z komputerem hosta
- Wersja terminala AVR z wbudowanym serwerem TCP/IP
- Opcjonalnie powłoka AVR (avrsh), jeśli chcesz uruchomić oprogramowanie układowe na docelowym AVR/Arduino, aby uzyskać dostęp do urządzeń peryferyjnych.
Brama TCP/IP działa z dowolnym oprogramowaniem sprzętowym, którego używasz lub chcesz napisać, o ile komunikuje się przez UART z komputerem. Niestety nie ma wersji Java, więc Terminal AVR działa obecnie tylko w systemie Windows.
Krok 2: Pobierz i zainstaluj terminal AVR i serwer TCP/IP
Terminal AVR to aplikacja Windows, którą wprowadziłem we wcześniejszych instrukcjach. Może komunikować się z odbiornikiem AVR przez interfejs RS232 USART, a także nasłuchiwać przychodzących połączeń TCP/IP i przekazywać je przez łącze RS232 w celu uzyskania odpowiedzi od oczekującego odbiornika AVR. Nie jest kompletny, ale oferuje wstępną prezentację funkcji opisanych tutaj i w innych moich instrukcjach. Najnowszą wersję można pobrać tutaj. Oprogramowanie nie wymaga pełnej instalacji; możesz po prostu uruchomić oprogramowanie z jego katalogu. Pole tekstowe na pasku narzędzi z napisem DOWOLNY to adres IP, który ma być przypisany do nasłuchiwania. ANY będzie wiązać dowolny i wszystkie adresy IP, lub opcjonalnie możesz podać jeden, z którym chcesz się powiązać. Pole tekstowe po prawej stronie adresu IP to port IP, z którym będzie powiązany serwer. Domyślnie jest to 23232, ale możesz to zmienić na cokolwiek chcesz.
Krok 3: Zainstaluj swoją powłokę
Zanim odbiornik AVR będzie mógł się z tobą komunikować, musisz mieć jakiś system operacyjny lub powłokę na docelowym odbiorniku AVR. Dostępnych jest kilka, w tym moja powłoka AVR i powłoka Bitlash.
Ewentualnie wykorzystaj to doświadczenie jako szansę na napisanie własnej minimalnej powłoki.
Krok 4: Telnet i ciesz się
Zapamiętaj informacje o konfiguracji lub możesz zachować je domyślnie. Na moim przykładowym zdjęciu jestem na hoście o nazwie „newton” i telnetuję się z komputerem, do którego podłączony jest mój odbiornik AVR, hostem o nazwie „quadcpu1”. Możesz zobaczyć standardowe wyjście telnet. Tak więc, jeśli zachowałeś ustawienia domyślne, możesz uzyskać dostęp do swojego AVR / Arduino z sieci TCP / IP za pomocą: telnet 23232
lub jeśli jesteś na tym samym urządzeniu: telnet localhost 23232
Pamiętaj tylko, aby użyć konfiguracji, w której ją zmieniłeś, jeśli ją zmieniłeś. To powinno być to. Kod źródłowy zarówno serwera telnet, jak i oprogramowania sprzętowego AVR jest swobodnie dostępny jako open source i powinien dostarczyć wystarczająco dobrych informacji, aby umożliwić ci jego modyfikację lub napisanie własnych wersji. Następnym krokiem może być napisanie implementacji Java lub Qt serwera TCP/IP, aby użytkownicy systemów Mac i Linux mogli na tym skorzystać.