Sommario:

Telnet al tuo Arduino/AVR!: 4 passaggi
Telnet al tuo Arduino/AVR!: 4 passaggi

Video: Telnet al tuo Arduino/AVR!: 4 passaggi

Video: Telnet al tuo Arduino/AVR!: 4 passaggi
Video: Как перейти на прошивку Klipper: 8 бит CR-10 шаг за шагом 2024, Novembre
Anonim
Telnet al tuo Arduino/AVR!
Telnet al tuo Arduino/AVR!

L'altro giorno volevo controllare uno dei miei AVR, ma ero al piano di sopra e Dio sa che era troppo fastidioso andare al piano di sotto dove si trovava il microcontrollore. Ma c'erano due computer inattivi al piano di sopra accanto al mio sedere pigro, quindi ho avuto una mezza giornata di lavoro e ho deciso di scrivere un'applicazione che collega due porte: una porta seriale per connettersi ad Arduino/AVR e un TCP/IP porta a cui posso telnet dalla mia rete wireless o su Internet. L'applicazione funge quindi da proxy tra la rete TCP/IP e l'AVR. Per vedere meglio il video, clicca due volte e aprilo nella sua finestra e ingrandiscilo. Altrimenti, strizza gli occhi e puoi vedere cosa viene digitato. Quindi, ho finito per modificare l'applicazione di connessione seriale AVR Terminal che avevo già scritto e ho aggiunto il supporto TCP/IP. Per accompagnarlo, ho scritto un firmware che fornisce qualcosa come una shell UNIX, che mi dà accesso remoto a tutti i pin, le impostazioni dei fusibili, ecc. Puoi accendere i LED e tutto il resto da remoto. Supporta anche la regolazione della velocità di clock in tempo reale e dispone di un sistema di pseudo-password che fornisce il framework per gli elenchi di controllo degli accessi o l'autenticazione per i comandi a livello di root (come lo spegnimento dei sottosistemi, ecc.). Ecco alcune delle cose che può fare:

  • Visualizza la frequenza della tua CPU
  • Imposta qualsiasi pin su input o output
  • Leggi lo stato di qualsiasi pin
  • Invia la logica 1 e 0 a qualsiasi pin per accendere i LED, ecc
  • Spegni e accendi le periferiche SPI, TWI, USART e ADC
  • Leggi il fusibile inferiore, il fusibile superiore, il fusibile esterno e i bit di blocco in tempo reale
  • Avvia timer per cronometrare automaticamente eventi e cose.
  • Un framework per un sistema di autenticazione in EEPROM
  • Stabilisci qualsiasi prescaler orologio disponibile in tempo reale
  • Scritto in C++ e compilato per un ATmega328P

Questo tutorial spiega come scaricare il software (e il firmware, se lo desideri), installarlo e iniziare ad accedere al tuo AVR dalla rete domestica wireless o su Internet.

Passaggio 1: cosa ti servirà

  • Un AVR autonomo o Arduino/clone (per istruzioni dettagliate su come creare il proprio sistema AVR autonomo abbastanza completo che includa un cristallo esterno, condensatori di disaccoppiamento e una fonte di alimentazione regolata, vedere il mio altro istruibile).
  • Una connessione seriale o USB al PC host
  • La versione AVR Terminal che ha il server TCP/IP integrato
  • Facoltativamente, l'AVR Shell (avrsh) se desideri eseguire il firmware sul tuo AVR/Arduino di destinazione per accedere alle tue periferiche.

Il gateway TCP/IP funziona con qualsiasi firmware tu stia utilizzando o desideri scrivere, purché comunichi tramite l'UART al PC. Sfortunatamente, non esiste una versione Java, quindi il terminale AVR funziona solo su Windows al momento.

Passaggio 2: scaricare e installare il terminale AVR e il server TCP/IP

Scarica e installa il terminale AVR e il server TCP/IP
Scarica e installa il terminale AVR e il server TCP/IP

Il terminale AVR è un'applicazione Windows che ho introdotto nelle istruzioni precedenti. Può parlare con il tuo AVR tramite l'USART RS232, nonché ascoltare le connessioni TCP/IP in entrata e trasmetterle attraverso la connessione RS232 per la risposta dall'AVR in attesa. Non è completo di funzionalità, ma offre un tour iniziale delle funzionalità dettagliate qui e nelle altre mie istruzioni. La versione più recente può essere scaricata qui. Il software non richiede un'installazione completa; puoi semplicemente eseguire il software dalla sua directory. La casella di testo nella barra degli strumenti che dice ANY è l'indirizzo IP da associare per l'ascolto. ANY legherà tutti gli indirizzi IP o, facoltativamente, puoi elencarne uno a cui associare in particolare. La casella di testo a destra dell'indirizzo IP è la porta IP a cui sarà associato il server. Il valore predefinito è 23232 ma puoi cambiarlo come preferisci.

Passaggio 3: installa la tua shell

Prima che il tuo AVR possa comunicare con te, dovrai avere una sorta di sistema operativo o shell sull'AVR di destinazione. Ce ne sono un paio disponibili tra cui la mia AVR Shell e la shell Bitlash.

In alternativa, usa questa esperienza come un'opportunità per scrivere la tua shell minima.

Passaggio 4: Telnet e divertiti

Telnet e divertiti
Telnet e divertiti

Ricorda le informazioni di configurazione o puoi mantenerle ai valori predefiniti. Nella mia immagine di esempio, sono su un host chiamato "newton" e telnet alla macchina a cui è connesso il mio AVR, un host chiamato "quadcpu1". Puoi vedere l'output telnet standard. Quindi, se lo hai mantenuto ai valori predefiniti, puoi accedere al tuo AVR/Arduino dalla tua rete TCP/IP con: telnet 23232

o se sei sulla stessa casella: telnet localhost 23232

Ricorda solo di utilizzare la configurazione in cui l'hai modificata, se l'hai modificata. Dovrebbe essere così. Il codice sorgente sia per il server telnet che per il firmware AVR è disponibile gratuitamente come open source e dovrebbe fornire informazioni sufficienti per consentirti di modificarlo o scrivere le tue versioni di entrambi. Il prossimo passo potrebbe essere quello di scrivere un'implementazione Java o Qt del server TCP/IP in modo che gli utenti Mac e Linux possano trarne vantaggio.

Consigliato: