Tutorial: Como utilizar o USB Host Shield com teclado e mouse

Поделиться
HTML-код
  • Опубликовано: 29 сен 2024
  • Olá Garagistas, no tutorial de hoje vou apresentar tão pedido USB Host Shield e demonstrar seu funcionamento com um mouse e um teclado. E também realizar uma básica modificação para controlar um pequeno servo motor.
    LINK PARA O TUTORIAL ESCRITO
    labdegaragem.co...
    LINK PARA OUTROS TUTORIAIS:
    labdegaragem.co...
    NOSSA REDE SOCIAL:
    labdegaragem.com/
    NOSSA LOJA:
    www.labdegarage...
    NOSSA INCUBADORA:
    labdegaragem.co...

Комментарии • 13

  • @gaabswj294
    @gaabswj294 Год назад

    como eu salvo a configuração para usar ela em outro computador como exemple sem precisar configurar tudo de novo?

  • @MarcosAurelioPPinto
    @MarcosAurelioPPinto 6 лет назад +1

    OLA MEU AMIGO, VC CONHECE ALGUM SISTEMA DE COMANDO POR VOZ CAPAZ DE ACIONAR ALGUMAS TECLAS DO PC POR SINAL DE AUDIO? UO SEJA: RECEBO DE UM PROGRAMA 2 SINAIS DE AUDIO DIFERENTE, COM ESSES 2 SINAIS DE AUDIO QUERIA ACIONAR PELO MENOS 2 OU MAIS TECLAS DO PC SEM TER CONTATO MANUAL COM ELAS, SO COM O SINAL DE AUDIO RECEBIDO DO PROGRAMA,TEM COMO VC ME AJUDAR? GRANDE ABRAÇO!!
    ASS:MARCOS AURELIO.

  • @alquimistaprateado5895
    @alquimistaprateado5895 5 лет назад

    #include >>esta dando erro .. tem como me ajudar?>>
    #include
    // Satisfy IDE, which only needs to see the include statment in the ino.
    #ifdef dobogusinclude
    #include
    #endif
    #include
    class MouseRptParser : public MouseReportParser
    {
    protected:
    void OnMouseMove(MOUSEINFO *mi);
    void OnLeftButtonUp(MOUSEINFO *mi);
    void OnLeftButtonDown(MOUSEINFO *mi);
    void OnRightButtonUp(MOUSEINFO *mi);
    void OnRightButtonDown(MOUSEINFO *mi);
    void OnMiddleButtonUp(MOUSEINFO *mi);
    void OnMiddleButtonDown(MOUSEINFO *mi);
    };
    void MouseRptParser::OnMouseMove(MOUSEINFO *mi)
    {
    Serial.print("dx=");
    Serial.print(mi->dX, DEC);
    Serial.print(" dy=");
    Serial.println(mi->dY, DEC);
    };
    void MouseRptParser::OnLeftButtonUp (MOUSEINFO *mi)
    {
    Serial.println("L Butt Up");
    };
    void MouseRptParser::OnLeftButtonDown (MOUSEINFO *mi)
    {
    Serial.println("L Butt Dn");
    };
    void MouseRptParser::OnRightButtonUp (MOUSEINFO *mi)
    {
    Serial.println("R Butt Up");
    };
    void MouseRptParser::OnRightButtonDown (MOUSEINFO *mi)
    {
    Serial.println("R Butt Dn");
    };
    void MouseRptParser::OnMiddleButtonUp (MOUSEINFO *mi)
    {
    Serial.println("M Butt Up");
    };
    void MouseRptParser::OnMiddleButtonDown (MOUSEINFO *mi)
    {
    Serial.println("M Butt Dn");
    };
    class KbdRptParser : public KeyboardReportParser
    {
    void PrintKey(uint8_t mod, uint8_t key);
    protected:
    void OnControlKeysChanged(uint8_t before, uint8_t after);
    void OnKeyDown (uint8_t mod, uint8_t key);
    void OnKeyUp (uint8_t mod, uint8_t key);
    void OnKeyPressed(uint8_t key);
    };
    void KbdRptParser::PrintKey(uint8_t m, uint8_t key)
    {
    MODIFIERKEYS mod;
    *((uint8_t*)&mod) = m;
    Serial.print((mod.bmLeftCtrl == 1) ? "C" : " ");
    Serial.print((mod.bmLeftShift == 1) ? "S" : " ");
    Serial.print((mod.bmLeftAlt == 1) ? "A" : " ");
    Serial.print((mod.bmLeftGUI == 1) ? "G" : " ");
    Serial.print(" >");
    PrintHex(key, 0x80);
    Serial.print("< ");
    Serial.print((mod.bmRightCtrl == 1) ? "C" : " ");
    Serial.print((mod.bmRightShift == 1) ? "S" : " ");
    Serial.print((mod.bmRightAlt == 1) ? "A" : " ");
    Serial.println((mod.bmRightGUI == 1) ? "G" : " ");
    };
    void KbdRptParser::OnKeyDown(uint8_t mod, uint8_t key)
    {
    Serial.print("DN ");
    PrintKey(mod, key);
    uint8_t c = OemToAscii(mod, key);
    if (c)
    OnKeyPressed(c);
    }
    void KbdRptParser::OnControlKeysChanged(uint8_t before, uint8_t after) {
    MODIFIERKEYS beforeMod;
    *((uint8_t*)&beforeMod) = before;
    MODIFIERKEYS afterMod;
    *((uint8_t*)&afterMod) = after;
    if (beforeMod.bmLeftCtrl != afterMod.bmLeftCtrl) {
    Serial.println("LeftCtrl changed");
    }
    if (beforeMod.bmLeftShift != afterMod.bmLeftShift) {
    Serial.println("LeftShift changed");
    }
    if (beforeMod.bmLeftAlt != afterMod.bmLeftAlt) {
    Serial.println("LeftAlt changed");
    }
    if (beforeMod.bmLeftGUI != afterMod.bmLeftGUI) {
    Serial.println("LeftGUI changed");
    }
    if (beforeMod.bmRightCtrl != afterMod.bmRightCtrl) {
    Serial.println("RightCtrl changed");
    }
    if (beforeMod.bmRightShift != afterMod.bmRightShift) {
    Serial.println("RightShift changed");
    }
    if (beforeMod.bmRightAlt != afterMod.bmRightAlt) {
    Serial.println("RightAlt changed");
    }
    if (beforeMod.bmRightGUI != afterMod.bmRightGUI) {
    Serial.println("RightGUI changed");
    }
    }
    void KbdRptParser::OnKeyUp(uint8_t mod, uint8_t key)
    {
    Serial.print("UP ");
    PrintKey(mod, key);
    }
    void KbdRptParser::OnKeyPressed(uint8_t key)
    {
    Serial.print("ASCII: ");
    Serial.println((char)key);
    };
    USB Usb;
    USBHub Hub(&Usb);
    HIDBoot < USB_HID_PROTOCOL_KEYBOARD | USB_HID_PROTOCOL_MOUSE > HidComposite(&Usb);
    HIDBoot HidKeyboard(&Usb);
    HIDBoot HidMouse(&Usb);
    KbdRptParser KbdPrs;
    MouseRptParser MousePrs;
    void setup()
    {
    Serial.begin( 115200 );
    #if !defined(__MIPSEL__)
    while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
    #endif
    Serial.println("Start");
    if (Usb.Init() == -1)
    Serial.println("OSC did not start.");
    delay( 200 );
    HidComposite.SetReportParser(0, &KbdPrs);
    HidComposite.SetReportParser(1, &MousePrs);
    HidKeyboard.SetReportParser(0, &KbdPrs);
    HidMouse.SetReportParser(0, &MousePrs);
    }
    void loop()
    {
    Usb.Task();
    }

  • @mrquintanilla2245
    @mrquintanilla2245 4 года назад

    Y le saca compa nombre que le voy a andar sacando alas verga.

  • @guitarristahobista9514
    @guitarristahobista9514 5 месяцев назад

    Mas o arduíno mega num pode ser usado com fonte de até 12 volts?

  • @carlosaugustocosta223
    @carlosaugustocosta223 4 года назад

    Boa tarde galera! Meu code esta aparentemente ok na programação. mas ao conectar nao esta lendo o dongle. o dongle foi atualizado o driver e esta funcionando e piscando normalmente ao conectar no pc mas na shield nao! o que pode ser ?

  • @nathanmendes8181
    @nathanmendes8181 3 года назад

    Ótimo material, para o pessoal que ficou com dúvida esse usb host shield é igual ao azul, podem seguir esse tutorial sem problemas

  • @thalesgustavo8300
    @thalesgustavo8300 2 года назад

    Boa noite este exemplo funciona teclado sem fio?

  • @bobsonssauro
    @bobsonssauro 6 лет назад

    Como eu faço um arduíno conectar com este dispositivo e um outro que eu conecto ao PC e o do PC 'espelha' o dispositivo que está na outra ponta e é reconhecido igual?

  • @IchigoKurosa
    @IchigoKurosa 3 года назад

    Ninguém no youtube explica como usar os comandos depois, que você aperta todas ou algumas teclas , queria deixar o teclado conectado e usar como se tivesse conectado no pc, é incrível vocês fazem o tutorial. acho que achando que todo mundo sabe mexer no ardoino eu desisto

    • @nathanmendes8181
      @nathanmendes8181 3 года назад

      Todo mundo tem capacidade de aprender se tiver interesse, são não vale reclamar que não fizeram seu projeto pra você.

  • @brunoamorim5119
    @brunoamorim5119 7 лет назад

    Opa, estou tendo um problema com a mensagem de conexão "OSC did not start." já tentei de tudo aqui e até agora nada. Alguma solução!?
    "

    • @jairorobertofigueiredo3108
      @jairorobertofigueiredo3108 7 месяцев назад

      Boa noite , você conseguiu resolver "OSC did not start." , sei que já faz tempo mais quem sabe você lembra ainda. Te agradeço se me ajudar.