YunSerialTerminal

Bu örnek, Yún'ın 32U4 işlemcisini veya blendaja bağlı kartın mikro denetleyicisini Linux işlemcisi için seri terminal olarak çalışma sağlar.

Bunu USB üzerinden bir Ynn cihazına göre ( WiFi üzerinden değil), ardından Linux işlemcisinin önyükleme işlemini görmek için 115200bps'de seri monitörü açın. Linux için temel bir komut satırı arayüzü olarak da kullanılır.

Seri monitörden günün komutlar verilebilir:

  • '~' ardından '0' -> UART hızını 57600 baud olarak uygulanır
  • '~' ardından '1' -> UART hızını 115200 baud olarak uygulanır
  • '~' ardından '2' -> UART hızını 250000 baud olarak uygulanır
  • '~' ardından '3' -> UART hızını 500000 baud olarak uygulanır
  • '~' taki '~' -> Konsolu elde etmek için köprünün kapatma komutunu gönderir.

Gerekli Donanım

  • Yún kartı veya kalkan

devre

Bu örnek için devre yok.

Kod

İşlemcilerin iletişim kuracağı baud hızını korumak için değişken değişken.

uzun linuxBaud = 250000 ;
boolean commandMode = yanlış ;
[Kodu Al]

Kurulumda ve Linux'a seri bağlantıyı açın setup()

void setup ( ) {
Seri . başlar ( 115200 ) ;
Seri1 . başlar ( linuxBaud ) ;
}

loop() bir seri bağlantıdan diğerine veri kopyalayın. "~" Karakteri geçildiyse, komut girmek girin.

void loop ( ) {
// sanal seri satırından kopyala veya tersi
if ( Seri . kullanılabilir ( ) ) { // USB Seri'den bir şey aldı mı?
char c = ( char ) Seri . read ( ) ; // USB dizisinden okuma
if ( commandMode == false ) { // komut modunda olabilir ...
(c == '~') {// Yaklaşık işareti '~' sıralamalıldığında?
commandMode = true ; // komut dosyasının gir
} başka {
Seri1 . yazma ( c ) ; // aksi halde Linux'a char yaz
}
} başka { // komut modundaysak ...
(c == '0') {// '0' bulunabilir basıldığında?
Seri1 . başlar ( 57600 ) ; // hızı 57600 olarak çalışır
Seri . println ( "Hız 57600'e ayarlı" ) ;
} Başka (C == '1') {// '1' dahildir basıldığında?
Seri1 . başlar ( 115200 ) ; // hızı 115200 olarak görüntülemek
Seri . println ( "Hız 115200'e ayarlandı" ) ;
} Başka (c == '2') {// '2' klasör basıldığında?
Seri1 . başlar ( 250000 ) ; // hızı 250000 olarak görüntüleyin
Seri . println ( "Hız 250000'e ayarlandı" ) ;
} Başka (c == '3') {// '3' klasör basıldığında?
Seri1 . başlar ( 500000 ) ; // hızı 500000 olarak çalışır
Seri . println ( "Hız 500000 olarak ayarlandı" ) ;
} else if ( c == '~' ) {
Seri1 . Yazma ((uint8_t *) "\ xff \ 0 \ 0 \ X05, XXXXX \ x0d \ XAF", 11);
Seri . println ( "Köprü kapatma komutu gönderiliyor" ) ;
} else { // başka bir tuşa basıldı mı?
Seri1 . yazma ( '~' ) ; // Linux'a '~' yaz
Seri1 . yazma ( c ) ; // Linux'a karakter yaz
}
commandMode = yanlış ; // her durumda komut modundan çık
}
}
if ( Serial1 . available ( ) ) { // Linux'tan bir şey aldı mı?
char c = ( char ) Seri1 . read ( ) ; // Linux'tan okuma
Seri . yazma ( c ) ; // USB seriye yaz
}
}

Kodun tümü aşağıdadır:


 /* Arduino Yún USB-to-Serial Allows you to use the YunShield/Yún processor as a serial terminal for the Linux side on the Yún. Upload this to a YunShield/Yún via serial (not WiFi) then open the serial monitor at 115200 to see the boot process of Linux. You can also use the serial monitor as a basic command line interface for Linux using this sketch. From the serial monitor the following commands can be issued: '~' followed by '0' -> Set the UART speed to 57600 baud '~' followed by '1' -> Set the UART speed to 115200 baud '~' followed by '2' -> Set the UART speed to 250000 baud '~' followed by '3' -> Set the UART speed to 500000 baud '~' followed by '~' -> Sends the bridge's shutdown command to obtain the console. The circuit: YunShield/Yún created March 2013 by Massimo Banzi modified by Cristian Maglie This example code is in the public domain. http://www.arduino.cc/en/Tutorial/YunSerialTerminal */ long linuxBaud = 250000; void setup() { SERIAL_PORT_USBVIRTUAL.begin(115200); // open serial connection via USB-Serial SERIAL_PORT_HARDWARE.begin(linuxBaud); // open serial connection to Linux } boolean commandMode = false; void loop() { // copy from USB-CDC to UART int c = SERIAL_PORT_USBVIRTUAL.read(); // read from USB-CDC if (c != -1) { // got anything? if (commandMode == false) { // if we aren't in command mode... if (c == '~') { // Tilde '~' key pressed? commandMode = true; // enter in command mode } else { SERIAL_PORT_HARDWARE.write(c); // otherwise write char to UART } } else { // if we are in command mode... if (c == '0') { // '0' key pressed? SERIAL_PORT_HARDWARE.begin(57600); // set speed to 57600 SERIAL_PORT_USBVIRTUAL.println("Speed set to 57600"); } else if (c == '1') { // '1' key pressed? SERIAL_PORT_HARDWARE.begin(115200); // set speed to 115200 SERIAL_PORT_USBVIRTUAL.println("Speed set to 115200"); } else if (c == '2') { // '2' key pressed? SERIAL_PORT_HARDWARE.begin(250000); // set speed to 250000 SERIAL_PORT_USBVIRTUAL.println("Speed set to 250000"); } else if (c == '3') { // '3' key pressed? SERIAL_PORT_HARDWARE.begin(500000); // set speed to 500000 SERIAL_PORT_USBVIRTUAL.println("Speed set to 500000"); } else if (c == '~') { // '~` key pressed? SERIAL_PORT_HARDWARE.write((uint8_t *)"\xff\0\0\x05XXXXX\x7f\xf9", 11); // send "bridge shutdown" command SERIAL_PORT_USBVIRTUAL.println("Sending bridge's shutdown command"); } else { // any other key pressed? SERIAL_PORT_HARDWARE.write('~'); // write '~' to UART SERIAL_PORT_HARDWARE.write(c); // write char to UART } commandMode = false; // in all cases exit from command mode } } // copy from UART to USB-CDC c = SERIAL_PORT_HARDWARE.read(); // read from UART if (c != -1) { // got anything? SERIAL_PORT_USBVIRTUAL.write(c); // write to USB-CDC } } 

See Also

  • Bridge Library- Köprü Kütüphanesine referansınız
  • Bridge- Analog ve dijital pinlere erişmek için basit REST tarzı çağrılar
  • Console Ascii Table- Konsola yazdırılan eksiksiz bir ASCII tablosu
  • Console Pixel- Konsoldan bir LED'i açma ve kapatma
  • Console Read- Console.read () işlevini kullanarak köprüden gelen verileri okuma
  • Data Logger- Üç analog sensörden bir SD karta veri kaydedin.
  • File Write- Dosya Yún dosya sistemine nasıl yazılır.
  • Http Client- İnternete bağlanan ve içeriği indiren temel bir HTTP istemcisi.
  • Http Client Console- Bağlanan, içeriği indiren ve WiFi ve Konsol kullanarak içeriği gösteren HTTP istemcisi.
  • Mailbox Read Message- Köprü kitaplığını kullanarak Posta Kutusu adlı ileti sırasını okuma.
  • Process- Bir Yún kullanarak linux süreçleri nasıl çalıştırılır.
  • Remote Due Blink- DUE panolarına uzaktan taslak yükleme.
  • Shell Commands- Bir Yún kullanarak linux kabuk komutları nasıl çalıştırılır.
  • Temperature Web Panel- Yún'ın yerleşik web sunucusu üzerinden bir analog girişten veri sunma.
  • Time check- Bridge üzerinden Linux'tan zamanı alır, sonra saatleri, dakikaları ve saniyeleri ayrıştırır.
  • WiFi Status- Wifi bağlantınızın durumu hakkında bilgi yazdırır.
  • Yún First Configuration- Seri Monitör ve USB bağlantı noktasını kullanarak Yún cihazınızı kolayca yapılandırın.