Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Arduino Uno problem z wgraniem.

Michaju26 01 Dec 2020 01:14 969 23
  • #1
    Michaju26
    Level 3  
    Witam :)
    Robię na Arduino kontroler hamulca ręcznego i skrzyni biegów do wyścigówek, który będzie podłączony do komputera przez USB.
    Gotowe wsady mam, ale mam problem, bo wsad napisany jest chyba na Leonardo, a ja nie wiedząc tego kupiłem Uno.
    I znalazłem rozwiązanie by wybrać w programie Arduino Micro zamiast Uno i wtedy można zaprogramować.
    Weryfikując wsad otrzymuje błędy
    Code:
    Arduino:1.8.13 (Windows 10), Płytka:"Arduino Uno"
    
    In file included from C:\Users\misio\OneDrive\Pulpit\Analog-E-Brake-master\ANALOG_EBRAKE\ANALOG_EBRAKE.ino:8:0:
    C:\Program Files (x86)\Arduino\libraries\Joystick/Joystick.h:31:2: error: #error The Joystick library can only be used with a USB MCU (e.g. Arduino Leonardo, Arduino Micro, etc.).
    #error The Joystick library can only be used with a USB MCU (e.g. Arduino Leonardo, Arduino Micro, etc.).
     ^~~~~
    exit status 1
    Błąd kompilacji dla płytki Arduino Uno.
    Ten raport powinien zawierać więcej informacji jeśli w
    File -> Preferencje zostanie włączona opcja "Pokaż
    szczegółowe informacje podczas kompilacji"

    A weryfikując wybierając Micro to błędów niema.
    Przed wciśnięciem wgraj trzymam guzik reset, po nie udanym wgraniu otrzymuje błąd.
    Code:
    Arduino:1.8.13 (Windows 10), Płytka:"Arduino Micro"
    
    Szkic używa 6114 bajtów (21%) pamięci programu. Maksimum to 28672 bajtów.
    Zmienne globalne używają 220 bajtów (8%) pamięci dynamicznej, pozostawiając 2340 bajtów dla zmiennych lokalnych. Maksimum to 2560 bajtów.
    avrdude: butterfly_recv(): programmer is not responding
    avrdude: butterfly_recv(): programmer is not responding
    avrdude: butterfly_recv(): programmer is not responding
    avrdude: butterfly_recv(): programmer is not responding
    avrdude: butterfly_recv(): programmer is not responding
    Found programmer: Id = "�"; type = �
    Software Version = i.




    Znalazłem ten temat https://www.elektroda.pl/rtvforum/topic3543685.html i robiłem jak tam jest napisane ze sterownikami, by wskazać starsze sterowniki, ale to tez nie pomaga.
    Arduino Uno w menadżerze urządzeń wykrywane jest jako USB-SERIAL CH340.
    W programie znalazłem jakieś gotowe programy, więc spróbowałem je wgrać i poszło bez problemu.

    Moderated By tzok:

    W oryginale było:
    Robię na Arduino kontroler hamulca ręcznego i skrzyni biegów do wyścigówek które będą podłączona do komputera przez USB.

    Z czego wynikało, że do komputera podłączone były wyścigówki ;)

    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
  • #2
    Tomi51
    Level 12  
    Sprawdz czy wybrana jest plytak uno a program powinien dzialac tu czy tu.
  • #3
    rb401
    Level 38  
    Michaju26 wrote:
    wsad napisany jest chyba na Leonardo a ja nie wiedząc tego kupiłem Uno.


    Nie szarp się z oprogramowaniem bo i tak nic to nie da. Uno ma inny główny mikrokontroler niż Leonardo i Micro. Bez wbudowanego kontrolera USB, który za to mają Leonardo i Micro.
    Podobny w wielu aspektach i wiele różnych programów działa, i tu, i tu. Ale akurat na potrzeby tego konkretnego Twojego programu (joystick USB) ta różnica jest fundamentalna. Nawet jak wgrasz ten program skompilowany pod Leonardo do Uno, nie będzie działał.
  • #4
    Michaju26
    Level 3  
    Czyli jednak musze zakupić Leonardo.
    Program wygląda tak. Są jeszcze 2 pliki które daje do biblioteki Arduino.
    Code:

    // PIN A0 to 10k pot output - Throttle Axis
    // Use with Arduino ProMicro.
    // Tested and working in DiRT RALLY + ASSETTO CORSA
    // by AMSTUDIO
    // 20.1.2017

    #include <Joystick.h>

    void setup()

    {pinMode(A0, INPUT);
       Joystick.begin();}

    const int pinToButtonMap = A0;

    void loop()

    {int pot = analogRead(A0);
    int mapped = map(pot,0,1023,0,255);
    {Joystick.setThrottle(mapped);}}


    A można te program przerobić tak by działał pod UNO ?
  • #5
    khoam
    Level 41  
    Michaju26 wrote:
    A można te program przerobić tak by działał pod UNO ?

    Nie da się. Biblioteka Joystick wymaga wsparcia USB CDC, czego nie ma w Uno. Musiałbyś doposażyć Uno w dodatkowy shield z takim portem USB.
  • #6
    Michaju26
    Level 3  
    A mogę użyć Pro Micro zamiast Leonardo ?
    I do czego można używać Uno ? Tak bym mógł potem go wykorzystać ?
  • #7
    khoam
    Level 41  
    Michaju26 wrote:
    A mogę użyć Pro Micro zamiast Leonardo ?

    Tak, możesz użyć.
  • #8
    Michaju26
    Level 3  
    Kupiłem Leonardo, wgrałem program i działało ale wartości dla czujnika halla były duże i kombinowałem z zmianą ich by odczyt na kompie był płynniejszy i w pełnym zakresie 0-100%. Na oryginalnym wsadzie zakres wynosił 18%-82% gdzie 18% to brak pola magnetycznego.
    Udało mi się znaleźć wartość by komputer odczytywał 0-100% ale chciałem dodać do kodu 2 przyciski. I po wgraniu chyba zablokowałem leonardo bo komputer i 2 laptopy wykrywają niepopranie urządzenie USB.
    Więc korzystając z tego że mam UNO i tego poradnika https://schou.dk/linux/arduino/isp/ oraz https://www.youtube.com/watch?v=xl-XQ_te8zM od 6:30 minuty, próbuje wgrać nowy bootloader do Leonardo.
    Lecz przy wgrywaniu bootloadera dostaje komunikat

    Code:
    avrdude: Yikes!  Invalid device signature.
    
             Double check connections and try again, or use -F to override
             this check.

    Błąd przy wgrywaniu bootloadera.
  • #9
    kiss39
    Level 38  
    Możesz zmienić Piny A3,A2,A1 (Arduino Leonardo) na UNO potrzebny opis.
    Arduino Uno problem z wgraniem. Arduino Uno problem z wgraniem.



    ArduinoJoystickLibrary - https://github.com/MHeironimus/ArduinoJoystickLibrary



    Code:
    #include < >
    
    Joystick_ Joystick;

    void setup() {
    //------------------------------------
    Joystick.begin(); // ---- tu info. >>> http://www.instructables.com/id/Arduino-LeonardoMicro-as-Game-ControllerJoystick/
    //------------------------------------
    //----------inicjacja przyciskuButton-switch
    pinMode(D10,INPUT);
    analogWrite(D10,HIGH);
    }
    void loop(){
      //------------- przycisk
    if (digitalRead(D10)==LOW){Joystick.setButton(0,0);} else { Joystick.setButton(0.1);}
      }
    //------------------- Osie dla Joystika X,Y
    //------------- os X
    int xAxis=analogRead(A3);// pin Analogowy
    xAxis=map(xAxis,0,1023,-127,127);
    Joystick.setXAxis(xAxis);
    //-------------- os Y
    int yAxis=analogRead(A2); //pin Analogowy
    yAxis=map(yAxis,0,1023,-127,127);
    Joystick.setYAxis(yAxis);
    //----------------------------------------

    //----------os Z
    int zAxis=analogRead(A1);// pin Analogowy
    zAxis=map(zAxis,0,1023,-127,127);
    Joystick.setZAxis(zAxis);

    }



    Załącznik: Biblioteka Joystick.h
  • #10
    Michaju26
    Level 3  
    Znalazłem coś podobnego już, jak na razie mam problem z Pro Micro bo komp nie widzi a też nie mogę wgrać bootloadera w Pro Micro przez UNO.

    Tyle ze UNO nie bedzie i tak dzialac bo niema kontrolera USB tak jak leonardo i ProMicro. Pisano o tym pare postow wyzej.

    Ostatecznie będę walczył z USBASP by wgrać bootloader w Pro Micro.
    Połączenie jest dobre
    Arduino Uno problem z wgraniem.
  • #11
    kiss39
    Level 38  
    Przydałby się programator USBasp do wypalenia Bootlandera w Micro PR jak i w tym UNO -przydatna rzecz


    Taki komplecik :
    Arduino Uno problem z wgraniem.
  • #12
    Michaju26
    Level 3  
    Mam takie coś DIY na Atmaga8 Zrobionego przez użytkownika monty_p z tego forum
  • #14
    Michaju26
    Level 3  
    hex dałem do folderu z hexami.
    Wybieram układ 32u4 i mam błąd.
    Pro micro podłączene do USBASP , sterowniki USBASP zainstalowane.
    Arduino Uno problem z wgraniem.
    Arduino Uno problem z wgraniem.
    Arduino Uno problem z wgraniem.
  • #15
    kiss39
    Level 38  
    Sprawdź dokładnie, czy dobrze wpiełes piny -sprawdze u mnie.

    PINY:
    GND,VCC, RST, SCLK, MISO, MOSI

    Arduino Uno problem z wgraniem.
  • #16
    Michaju26
    Level 3  
    I tak też mam. Jak widać na fotkach.
    PS: dostałem 4 PW od ludzi że też mają problem z Leonardo/ Pro Micro tak jak ja i czekają na rozwój sytuacji :)
  • #18
    Michaju26
    Level 3  
    Czyli co 32u4 padnięte ?
    Skoro podłączenie dobre
  • #19
    kiss39
    Level 38  
    Michaju26 wrote:
    PS: dostałem 4 PW od ludzi że też mają problem z Leonardo/ Pro Micro tak jak ja i czekają na rozwój sytuacji
    A mozecie mieć problem bo nie macie opisanego adaptera 6PIN ;) (10PIN-6PIN)


    Arduino Uno problem z wgraniem. Arduino Uno problem z wgraniem. Arduino Uno problem z wgraniem.


    Pozdrawiam.

    Dodano po 1 [minuty]:

    Michaju26 wrote:
    Czyli co 32u4 padnięte ?
    Skoro podłączenie dobre
    Sprawdź dokładnie połączenia bo moze cos nie łączy ;)
  • #20
    Michaju26
    Level 3  
    To pozostaje mi zlutować jedno z drugim.
    Wcześniej lutowałem do UNO i też był taki problem.
    Proszę zwróć uwagę na moje fotki z połączeniem i sam stwierdź czy dobrze.
    Według mnie jest okey.
    Podłączę USBASP do Arduino UNO i zobaczę czy ono zadziała.
  • #21
    kiss39
    Level 38  
    Tam masz wtyk wzmocniony klejem epoksydowym sprawdz "miernikiem"ten 6PIN, czy ma połączenie ze ścieżkami.


    Arduino Uno problem z wgraniem.
  • #22
    Michaju26
    Level 3  
    Przejścia są miedzy USBASP a ProMicro, zastanawia mnie np to że na ProMicro jest przejście miedzy MOSI GNI albo RES GND i GND 5V
  • #23
    kiss39
    Level 38  
    Michaju26 wrote:
    jest przejście miedzy MOSI GNI albo RES GND i GND 5V
    Sprawdziłem miernikiem na zakresie dioda i nie mam przejscia czyli masz zwracie. ;)
  • #24
    Michaju26
    Level 3  
    Wylutowałem goldpiny przejrzałem pcb i niema nic zwartego ... Akurat nie mam IPY100 by być pewnym na 100%.

    Code:
    avrdude.exe: Warning: cannot query manufacturer for device: 
    
    avrdude.exe: Warning: cannot query product for device:
    avrdude.exe: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'

    avrdude.exe done.  Thank you.


    Podłączyłem UNO z wgranym ArduinoISP i wyszukało mi to tylko że to uC UNO a nie ProMicro
    Arduino Uno problem z wgraniem.

    W obecnej chwili mam przejście masy z każdym punktem lutowniczym na PCB.... zaraz wrzucę do pralki i niech się wypłucze.
    Jutro kupie IPE to przemyje i zobaczę co dalej.

    EDIT:
    Przemyłem IPA i dalej są przejścia, z ciekawości sprawdziłem czy na UNO są przejścia i też są a UNO działa.
    Zainstalowałem USBASP na innym kompie i to samo jest już nie mam pomysłów jak to rozwiązać ...
    Też kombinowałem z Zadig bo ponoć jakieś problemy są na win10 z usbasp ale też nic to nie dało