Skocz do zawartości

Nawyk

Użytkownicy
  • Zawartość

    2072
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    126

Posty napisane przez Nawyk


  1. 1 godzinę temu, DaveV13 napisał:

    Jestem ciekaw czy na Atmedze bym zainplementował te regulatory.

    No właśnie w tym kontekście Cię pytałem o zastosowanie. Chcesz robić regulator pozycji, czy tylko mniej-więcej wiedzieć ile przejechało dane koło (zakładając brak poślizgu)? Możesz dać link do tych konkretnych enkoderów?


  2. Jeśli nie wyciągałaś przy zasilanym układzie i nie ułamałaś nóżek podczas wyginania, to to go raczej nie zabiło. Jeśli dobrze widzę, że używasz L293D (to "D" jest ważne), to wszystko zależy od tego, jakie prądy te silniki pobierają podczas rozruchu, chociaż mostek ma kilka zabezpieczeń. Na Twoim miejscu, na początek przeniósłbym wszystko w inne miejsce płytki stykowej, np. przesunął o 20 "wierszy" w dół lub w górę. Płytki stykowe lubią płatać figle, szczególnie jak puści się przez nie zbyt duży prąd albo powtyka zbyt szerokie "nóżki" 🙂

    • Lubię! 1

  3. Nie programowałem nigdy USBasp za pośrednictwem Arduino IDE. Może próbujesz ustawić jakieś fusebity? Z mojej strony mogę Ci jedynie polecić programik SinaProg - jest to nakładka na avrdude (z którego Arduino IDE też korzysta), ale możesz tam wyklikać kolejne ustawienia i, ogólnie mówiąc, raczej trudno jest się pomylić. Jeśli Cię zainteresowałem i nikt nie ma innych pomysłów, to polecam ten temat:

    Powinno wciąż działać, tylko SinaProg jest w nowszej wersji 😉 Jedyny "problem" to znaleźć *.hex po kompilacji, o ile kompilujesz w Arduino, ale ścieżka się wyświetla jak włączysz komentarze do kompilacji.

    • Lubię! 1

  4. 2 godziny temu, Mortis napisał:

    raczej przy takiej odległości tylko praca zdalna wchodziłaby w grę,gb ale wiadomo jeśli by się tak dało to i tak najpierw te kilka miesięcy trzeba by było popracować stacjonarnie.

    Mieliśmy kilku współpracowników zdalnych, ale czasami (zwłaszcza na początku) musieli pobyć w firmie i trochę się "oswoić" z projektami. Dla CADowca to może być trudniejsze, bo firma ma niedaleko siedziby warsztat z maszynami CNC i projektanci na ogół nadzorowali wykonanie prototypów i ew. poprawki. Mimo wszystko polecam spróbować. Jeśli chodzi o projekty na stronie to się nie sugeruj - one są tam jeszcze z czasów zanim mnie ściągnęli do Lublina. Obecnie projekty są IMHO znacznie ciekawsze, ale objęte różnymi "NDA" - stąd brak info.


  5. 2 godziny temu, digitalread napisał:
    
    #include <Servo.h> //biblioteka serwa
    #define LED 9      // definicja diody led jako 9 wyjscie
    Servo moje_serwo;  // stworz obiekt moje_serwo do kontroli serwa
    
    int wypelnienie = 0; // zmienne do sterowania wypełnieniem sygnału PWM diod LED
    int zmiana = 5;
    
    int potencjometr = A0;  // pin analogowy do odczytu potencjometra
    int wartorsc;    // zmienna przechowujaca odczyt z potencjometru
    
    
    void setup() 
    {
    moje_serwo.attach(3); // serwo podlaczone jest do pinu 3
    pinMode(LED,OUTPUT); //wyjscie diody LED
    }
    
    void loop() {
    
    analogWrite(LED,wypelnienie);
     if(wypelnienie<255) //jesli dioda nie swieci na 100% wypelnienia
     {
       wypelnienie+= zmiana; //zwieksz wypelnienie do 100% co 5
     }
     if( wypelnienie==255) //jesli wypelnienie jest rowne 100%
       {
         while(wypelnienie!=0)
             {
              wypelnienie-=zmiana; //zmniejsz wypelnienie do zera i spowrotem
             analogWrite(LED,wypelnienie);
             delay(50);
             } 
       }
     wartorsc = analogRead(potencjometr);            // odczytaj wartosc z potencjometru (wartosc z przedzialu 0-1023)
     wartorsc = map(wartorsc, 0, 1023, 0, 180);     // zeskaluj odczyt do miary katowej (od 0 do 180) lub czasu trwania stanu wysokiego (od 700 do 2300)
     moje_serwo.write(wartorsc);                  // ustaw pozycje serwa z zeskalowanego odczytu
    
    
    }
    
    
    
    
     

    Stworzyłem takie coś, ale serwo głupieje nie reaguje na obrót gałką potencjometru, a diody nawet się nie zapalają.... Pomoże ktoś poprawić kod?

    Ten Twój kod najpierw bardzo szybko zapala LED, czyta potencjometr i wysyła coś na serwo, a potem przez 2550 ms nie robi nic oprócz powolnego gaszenia diody LED... Tak miało być? Co właściwie chcesz osiągnąć? Jak dioda się zapala, to chcesz sterować serwem, a jak gaśnie to nie chcesz sterować serwem? Jeśli tak, to wystarczy dodać jakiś delay na końcu funkcji loop'a. Jeśli chcesz sterować serwem i równocześnie gasić/zapalać LED, to spróbuj może takiej koncepcji:

    bool flaga = false;
    
    void loop(void) {
    	if (!flaga) {
    		//zapalaj LED
    		if (wypelnienie < 255) {
    			analogWrite(LED, wypelnienie);
    			wypelnienie += zmiana;
    		} else {
    			wypelnienie = 255; // na wypadek gdybys przeskoczyl 255
    			flaga = true;
    		}
    	} else {
    		//gas LED
    		if (wypelnienie > 0) {
    			analogWrite(LED, wypelnienie);
    			wypelnienie -= zmiana;
    		} else {
    			wypelnienie = 0; // na wypadek gdybys przeskoczyl 0
    			flaga = false;
    		}
    	}
    	
    	// tutaj rob costam z serwem i potencjometrem
    
    	delay(50);
    }

     


  6. To zależy, co jest nie tak. Jeśli przez przypadek zmieniłeś fusebity np. wyłączając RST i tylko to jest problemem, to rozwiązaniem jest programator HV (high voltage), z polskich projektów mogę polecić AVR Doctor:

    https://www.elektroda.pl/rtvforum/topic1716521.html

    Jak zaczynałem z AVRami, to miałem taką szufladkę, w której zbierałem "uwalone" procki i jak się tego trochę nazbierało, to zbudowałem urządzenie z linku i wszystkie ponaprawiałem. Nie wiem, czy Ci się opłaci dla jednej sztuki. Ew. możesz popytać znajomych na miejscu, może ktoś ma. Ja Ci mogę zaproponować naprawę za darmo, ale koszt przesyłki wyjdzie Ci taki, jak koszt nowego procka, więc się raczej mija z celem 🙂 No i zawsze jest też możliwość, że to nie fusebity są przyczyną, a jakieś fizyczne uszkodzenie... Może podłączyłeś źle napięcia, może "mityczne" ESD coś zabiło w procku... ¯\_(ツ)_/¯

    • Lubię! 1

  7. Czy jesteś w stanie przełożyć mikrokontroler z Twojej poprzedniej płytki do nowej i sprawdzić, czy występuje ten sam problem? Albo spróbować zaprogramować nowy mikrokontroler w starej płytce i przełożyć zaprogramowany z powrotem do układu? Chodzi mi o wykluczenie problemów typu źle ustawione fusebity.


  8. 21 minut temu, Mortis napisał:

    bym musiał w tej firmie pracować X lat

    a co jeśli skończysz studia i zdecydujesz się odejść? Jeśli jest kara finansowa, to może warto rozważyć po prostu jej zapłacenie? 🙂

    Z branży robotyki mogę Ci polecić firmę ACCREA z Lublina. Przepracowałem tam 4.5 roku i zajmowałem się głównie systemami wbudowanymi i simulinkiem, ale są też ludzie projektujący w CAD. Firma głównie projektuje i buduje prototypy manipulatorów i platform mobilnych. Kokosów może jakichś wielkich nie ma, ale nauczyć się można bardzo, bardzo dużo i ludzie też są super. Po prostu pasjonaci 🙂 Spróbuj do nich uderzyć, wiem że jeszcze dwa miesiące temu szukali ludzi na kilka stanowisk inżynierskich.

    • Lubię! 1

  9. Nie mam żadnych merytorycznych uwag odnośnie zestawu, ale... Kiedyś używałem tunera (~50 zł), dokładnie z tej aukcji: https://archiwum.allegro.pl/oferta/tuner-tv-usb-dvb-t-rtl2832u-r820t-odbiornik-sdr-i4629021627.html
    do tego HDSDR. Działało na tyle dobrze i wygodnie, że szybko sprzedałem mój skaner UNIDEN UBC 355 CLT 🙂 Nałuch głównie na 2 m i 70 cm, anteny robione z mosiężnych rurek z "zielonego obi", straszyły sąsiadów z balkonu 🙂 Ogółem zabawa radiem jest super, zwłaszcza późno w nocy - niesamowity klimat. Żałuję, że trafiłem na krótkofalarstwo w czasach po największym rozkwicie. Te "ciekawsze" transmisje są niestety w większości kodowane, a dookoła szumi wszędobylska chińszczyzna. 

    • Lubię! 2

  10. Skoro każdy program ma max 35 linijek równie dobrze mógłbyś je wkleić na forum, zaoszczędziłbyś sobie i innym niepotrzebnej roboty. To po pierwsze.

    Po drugie - co rozumiesz przez "nie działa". Tylko jedno serwo się rusza? Żadne się nie rusza? Oba się ruszają tak samo?

    Spójrz na tablicę "msg" - używasz tablicy 1-elementowej chociaż funkcja "radio.read" przyjmuje dwa parametry - adres tablicy i jej rozmiar. Zamiast za jednym razem wysłać dwie wartości, Ty dwa razy wysyłasz jedną wartość. Nie wiedząc jakiej konkretnie biblioteki używasz, pokusiłbym się nawet o założenie, że pierwsza wiadomość może nie zostać do końca wysłana, a Ty już chcesz wysłać następną (no bo nie znam kodu bibliotek). Druga sprawa - skąd odbiornik ma wiedzieć, która wiadomość jest dla którego serwa?

    Spróbuj z tablicą dwuelementową, utwórz sobie
     

    // nadajnik
    int msg[2];
    
    //...
    
    msg[0] = zmapowany_potencjometr1;
    msg[1] = zmapowany_potencjometr2;
    radio.write(msg, 2);
    
    //...

    i

    // odbiornik
    int msg[2];
    
    //...
      
    radio.read(msg, 2);
    serwo1.write(msg[0]);
    serwo2.write(msg[1]);
    
    //...

    Może pomoże... Rozszerz opis problemu, bo strasznie mało informacji.


  11. 1 godzinę temu, Zealota napisał:

    W odróżnieniu od arduinowych wynalazków jest to prawdziwy mikrofon ze wzmacniaczem.

    Mógłbyś rozwinąć zdanie? Czym konkretnie się różni? Nie siedzę w temacie, a zaciekawiłeś mnie tym stwierdzeniem. Mam na wyposażeniu kilka rodzajów "arduinowych wynalazków" i nawet nie wiedziałem, że można użyć czegoś lepszego 😉 


  12. 4 godziny temu, Isero napisał:

    nie posiada on złącza balansującego przez co nie wiem, czy jak kupie ładowarkę, czy w ogóle zacznie mi go ładować

    Nie musisz mieć balansera żeby naładować taki akumulator.

    Co do ładowarki, to wystarczyłby nawet regulowany zasilacz laboratoryjny z opcją CC. Sam jestem szczęśliwym posiadaczem redox alpha

    43f7291982ed9631485bfdd15e9152d9.thumb.jpg.d8653c88fc053d41f73e109177010027.jpg

    Koszt to obecnie jakieś 80 PLN, do tego trzeba skombinować zasilacz.

    Prostszych ładowarek osobiście nie polecam, bo doświadczyłem pożaru podczas ładowania ogniwa takim wynalazkiem (na szczęście niegroźnego w skutkach). Gdybym jednak musiał wybierać, to pewnie wziąłbym coś takiego: https://allegro.pl/ladowarka-2s-3s-lipo-redox-idealna-asg-airsoft-i6909944750.html#thumb/1

    I nigdy nie spuszczał tego z oka podczas ładowania... Polecam też trzymać osprzęt w trakcie ładowania na blasze do pieczenia, a jeszcze lepiej jakichś cegłówkach/pustakach... I jeszcze polecam zakup takich "ognioodpornych" rękawów do przechowywania/ładowania akumulatorów LiPo. Tak, mam traumę 😄 

    torba-li-po-safe-bag-ognioodporna-18-x-23-cm.thumb.jpg.49cebbdd349556510c4b832fc523a56f.jpg

    • Lubię! 1

  13. Mogę Ci zasugerować poproszenie o wycenę w firmie EPROM. Żeby nie było - nie mam z nimi nic wspólnego, po prostu kiedyś wycenialiśmy wykonanie małej serii 50 sztuk (PCB 4 warsty i przelotki zagrzebane + lutowanie) i wyszło taniej albo porównywalnie, jak u konkurencji z Azji. PCB oczywiście i tak zamawiają w Chinach (honyapcb.eu/)  , ale montują w kraju.

    Pewien znany sklep dla elektroników, w którym 5 lat temu pracowałem, też korzystał wtedy z usług tej firmy (nie wiem jak dzisiaj) i jakość wykonania była ok.

     


  14. To znaczy tak... Z moich doświadczeń wynika, że jeśli urządzenie ma zintegrowane z portem RJ45 diodki, a po podpięciu kabla (który z drugiej strony jest podłączony np. do sprawdzonego i zasilanego routera albo nawet kompa PC) te diodki nawet na chwilę się nie zaświecą, to coś jest "fizycznie" nie tak. I to ostro.

    W moich przypadkach oznaczałoby to (szacowanie przekoloryzowane 🙂 ) :

    • 98,5% problem po stronie kabla - przerwane żyły, źle scrossowane przewody, uszkodzona/źle zaciśnięta wtyczka, nie dopchnięta do końca z obu stron do wnętrza gniazd itp.
    • 0,5% uszkodzone gniazdo z jednej strony kabla
    • 0,5% uszkodzone gniazdo z drugiej strony kabla
    • 0,5% spalony lub niedolutowany scalak/karta sieciowa

    Także... tyle mi przychodzi do głowy


  15. Nie doczytałem, że chcesz do tego interfejsu podłączyć kilka urządzeń. Da się to zrobić na UART, zwłaszcza jeśli komunikacja jest tylko jednokierunkowa (wysyłasz po prostu do wszystkich slave'ów ramkę "[adres_slave_1]zapal_ten_i_ten_bit[adres_slave_2]zapal_ten_i_ten_bit[adres_slave_3]zapal_ten_i_zgas_tamten_bit", a każdy slave reaguje jedynie na instrukcje adresowane do siebie), ale faktycznie sensowniej będzie użyć I2C. Jeśli to serio jest raptem kilka centymetrów, to nawet SPI da radę, choć sugeruję nie przesadzać z prędkością transmisji. W I2C RPI będzie działać jako master, a Arduino jako slave, gotowe kody mozesz bez problemu znaleźć w czeluściach internetów 🙂 

    Polecam ten filmik, jeśli jesteś totalnie świeży z tymi interfejsami:

     

     


  16. CAN jak najbardziej pasuje do tych rozwiązań, po prostu większość początkujących zaczyna od UART po RS232/RS485. Chodzi o to, że żeby Raspberry gadało po CANie, to potrzebujesz adapter np. UART/CAN, do tego jeśli chcesz zacząć prosto np. z Arduino, to znowu potrzebujesz specjalnego "tłumacza" CAN/UART np. CAN-bus shielda. Nie wiem jaką masz wiedzę i jakie są Twoje ambicje/motywacja, po prostu osobiście na początek ogarnąłbym sobie prostą komunikację np. RPI-ARDUINO po UART, dopiero potem poszedłbym w interfejsy przemysłowe. Nie zrozum mnie źle, to nie jest "rocket science", sporo zależy od tego jak bardzo skłonny jesteś do intensywnej nauki i szukania rozwiązań na własną rękę 🙂

    • Lubię! 1
    • Pomogłeś! 1
×
×
  • Utwórz nowe...