Inhoudsopgave:

Telnet naar uw Arduino/AVR!: 4 stappen
Telnet naar uw Arduino/AVR!: 4 stappen

Video: Telnet naar uw Arduino/AVR!: 4 stappen

Video: Telnet naar uw Arduino/AVR!: 4 stappen
Video: Telnet объяснил 2024, Juli-
Anonim
Telnet naar uw Arduino/AVR!
Telnet naar uw Arduino/AVR!

Laatst wilde ik een van mijn AVR's controleren, maar ik was boven en god weet dat het te veel gedoe was om naar beneden te gaan naar waar de microcontroller was. Maar er waren twee inactieve computers boven naast mijn luie kont, dus ik had een halve dag van mijn werk en besloot een applicatie te schrijven die twee poorten verbindt: een seriële poort om verbinding te maken met de Arduino/AVR en een TCP/IP poort waar ik vanaf mijn draadloze netwerk of via internet naar kon telnetten. De applicatie fungeert dan als proxy tussen het TCP/IP-netwerk en de AVR. Om de video beter te zien, klikt u twee keer en opent u deze in zijn eigen venster en vergroot u hem. Anders knijp je je ogen dicht en kun je zien wat er wordt getypt. Dus uiteindelijk heb ik de AVR Terminal-toepassing voor seriële verbinding die ik al had geschreven, gewijzigd en ik heb er TCP/IP-ondersteuning aan toegevoegd. Om daarbij te helpen, heb ik wat firmware geschreven die zoiets als een UNIX-shell biedt, waardoor ik op afstand toegang heb tot alle pinnen, zekeringinstellingen, enz. Je kunt LED's en al dat soort dingen op afstand inschakelen. Het ondersteunt zelfs het in realtime aanpassen van de kloksnelheid en heeft een pseudo-wachtwoordsysteem dat het raamwerk biedt voor toegangscontrolelijsten of authenticatie voor commando's op rootniveau (zoals het uitschakelen van subsystemen, enz.). Hier zijn enkele van de dingen die het kan doen:

  • Geef uw cpu-frequentie weer
  • Stel een willekeurige pin in op invoer of uitvoer
  • Lees de staat van elke pin
  • Stuur logische 1 en 0 naar een willekeurige pin om LED's in te schakelen, enz.
  • Schakel de SPI-, TWI-, USART- en ADC-randapparatuur uit en weer in
  • Lees de onderste zekering, hogere zekering, externe zekering en slotbits in realtime
  • Start timers voor het automatisch timen van gebeurtenissen en dingen.
  • Een raamwerk voor een authenticatiesysteem in EEPROM
  • Stel een beschikbare klokprescaler in realtime in
  • Geschreven in C++ en gecompileerd voor een ATmega328P

Deze instructable beschrijft hoe u de software (en firmware, als u dat wilt), kunt downloaden, installeren en toegang krijgen tot uw AVR vanaf uw draadloze thuisnetwerk of via internet.

Stap 1: Wat heb je nodig

  • Een stand-alone AVR of Arduino/kloon (voor gedetailleerde instructies over hoe u uw eigen, redelijk complete stand-alone AVR-systeem kunt maken, inclusief een extern kristal, ontkoppelcondensatoren en een gereguleerde stroombron, zie mijn andere instructable).
  • Een seriële of USB-verbinding met uw host-pc
  • De AVR Terminal-versie met de ingebouwde TCP/IP-server
  • Optioneel de AVR Shell (avrsh) als je firmware op je doel-AVR/Arduino wilt draaien om toegang te krijgen tot je randapparatuur.

De TCP/IP-gateway werkt met elke firmware die u gebruikt of wilt schrijven, zolang deze maar via de UART naar de pc communiceert. Helaas is er geen Java-versie, dus de AVR Terminal draait momenteel alleen op Windows.

Stap 2: Download en installeer de AVR-terminal en de TCP/IP-server

Download en installeer de AVR-terminal en de TCP/IP-server
Download en installeer de AVR-terminal en de TCP/IP-server

De AVR Terminal is een Windows-toepassing die ik in eerdere instructables heb geïntroduceerd. Het kan met uw AVR praten via de RS232 USART en luisteren naar inkomende TCP/IP-verbindingen en deze doorsturen via de RS232-verbinding voor reactie van uw wachtende AVR. Het is niet compleet, maar biedt een eerste rondleiding door functies die hier en in mijn andere instructables worden beschreven. De meest recente versie is hier te downloaden. De software hoeft niet volledig te worden geïnstalleerd; u kunt de software gewoon vanuit de map uitvoeren. Het tekstvak in de werkbalk met de tekst ELKE is het IP-adres dat moet worden gekoppeld om te luisteren. ANY zal alle IP-adressen binden, of u kunt er optioneel een opsommen om aan te binden. Het tekstvak rechts van het IP-adres is de IP-poort waaraan de server zal worden gebonden. Standaard is 23232, maar u kunt dit wijzigen in wat u maar wilt.

Stap 3: installeer uw shell

Voordat uw AVR met u kan communiceren, moet u een soort besturingssysteem of shell op de doel-AVR hebben. Er zijn er een paar beschikbaar, waaronder mijn AVR Shell en de Bitlash-shell.

U kunt deze ervaring ook gebruiken als een kans om uw eigen minimale shell te schrijven.

Stap 4: Telnet en geniet

Telnet en geniet
Telnet en geniet

Onthoud uw configuratie-informatie of u kunt deze op de standaardwaarden laten staan. In mijn voorbeeldafbeelding zit ik op een host met de naam "newton" en telnet naar de machine waarmee mijn AVR is verbonden, een host met de naam "quadcpu1". U kunt de standaard telnet-uitvoer zien. Dus, als je het op de standaardwaarden hebt gehouden, heb je toegang tot je AVR/Arduino vanaf je TCP/IP-netwerk met:telnet 23232

of als je op dezelfde box zit:telnet localhost 23232

Vergeet niet om de configuratie te gebruiken waarin u het hebt gewijzigd, als u het hebt gewijzigd. Dat zou het moeten zijn. De broncode voor zowel de telnet-server als de AVR-firmware is vrij beschikbaar als open source en zou u voldoende goede informatie moeten bieden om deze aan te passen of uw eigen versies van beide te schrijven. De volgende stap zou kunnen zijn om een Java- of Qt-implementatie van de TCP/IP-server te schrijven, zodat Mac- en Linux-gebruikers hiervan kunnen profiteren.

Aanbevolen: