Skocz do zawartości

Imilek

Użytkownicy
  • Zawartość

    23
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

Imilek zajął 1. miejsce w rankingu.
Data osiągnięcia: 18 marca 2018.

Treści użytkownika Imilek zdobyły tego dnia najwięcej polubień!

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

578 wyświetleń profilu

Osiągnięcia użytkownika Imilek

Starszy odkrywca

Starszy odkrywca (5/19)

  • Za 5 postów
  • To już rok!
  • Młodszy Juror

Odznaki

4

Reputacja

  1. Cześć. Chciałbym Was poprosić o pomoc w sprawie interpretacji wskazań z czujnika siły QA6P od marveldex. Zdaję sobie sprawę, że dla Was może to być oczywiste, ale ja nie jestem w stanie do końca tego ogarnąć. Chciałem sobie zbudować prototyp wagi, której zadaniem jest ważenie oraz szukanie środka ciężkości umieszczonego na niej przedmiotu. Pomiar wskazań czujników odbywa się poprzez ADC wraz z wykorzystaniem rezystorów 2,2kΩ pull- down. Moje pytanie brzmi, w jaki sposób określić jaka siła działa na czujnik. Zakres pomiarowy czujnika kończy się na 4kg, natomiast wstawiony do załącznika wykres kończy się już na 1kg. Ponadto z samego wykresu nie jestem w stanie określić dokładnego przebiegu funkcji, a to wprowadza już pewne niedokładności. Czy jest jakiś sposób na rozwiązanie mojego "problemu"?
  2. Cześć! Razem z kolegą z koła naukowego wpadliśmy na pomysł na projekt i chciałbym Was zapytać o radę. Docelowo do zbudowania jest układ z ogniwem paliwowym oraz baterią Li-Pol. Jednakże najpierw chciałbym przetestować koncepcję sterowania tym układem bez pierwszego, wcześniej wspomnianego elementu. Układ ten miałby funkcjonować w ten sposób, że silnik cały czas zasilany jest z ogniwa, jednakże przy wyższym poborze prądu następuje dołączenie do układu zasilania z akumulatora (gdy moc pobierana przez silnik jest mniejsza od mocy ogniwa, następuje ładowanie baterii z ogniwa). Moim zdaniem przy wysokim poborze prądu napięcie ogniwa spadnie, zatem zasilanie układu z baterii niejako odbywałoby się automatycznie (jeżeli tak nie jest, proszę wyprowadźcie mnie z błędu). Moje pytanie jest następujące: czym zastąpić ogniwo i za pomocą jakich elementów realizować wcześniej wspomniane funkcje? Moja koncepcja wygląda w ten sposób, że ogniwo zastąpiłbym zasilaczem niskiej mocy (o napięciu 5V), którego zadaniem było zasilanie układu mikrokontrolera wraz z mostkiem H, za pomocą którego sterowałbym silnikiem. Zmiana prędkości obrotowej silnika odbywałaby się przy pomocy PWM i potencjometru obrotowego, a dodatkowo zbudowany byłby układ mechaniczny, który symulowałby wzrost obciążenia na silniku. Co do ładowania akumulatora, to po prostu myślałbym, żeby na stałe podłączyć układ ładowarki Li-Pol np. TP4056, która to będzie utrzymywać stałe napięcie 4,2 V. Dla mnie jednak problemem jest zasilanie silnika z akumulatora przy większym poborze prądu. Czy napięcie na zasilaczu spadnie aż tak bardzo, żeby akumulator mógł rozpocząć oddawanie energii? Czy może jest na to jakiś inny sposób? Czy macie może jakiś inny pomysł na realizację tego zadania? Za wszelką pomoc byłbym bardzo wdzięczny. Pozdrawiam.
  3. Dziękuję za bardzo obszerną pomoc. Z Waszą pomocą chciałem się szerzej rozeznać w kwestiach elektroniki i sterowania, głównie po to, żeby orientacyjnie wiedzieć ile miejsca jest mi potrzebne. Na razie jestem w trakcie tworzenia modelu. Kiedy pojawi się coś, czym będę mógł się podzielić (i nie będę się wstydził) to z pewnością to zrobię. Serdecznie Wam dziękuję, samych sukcesów w Nowym Roku no i oczywiście do usłyszenia!
  4. Co do układu, to wydaje mi się, że rozumiem. Postaram się w najbliższym czasie pojąć jak to powinno wyglądać. Jeżeli chodzi o projekt to chciałem tak zrobić żeby na każdym z palców był czujnik siły nacisku. Z tego co wyczytałem, maksymalna siła ścisku dłoni wynosi około 350N i to byłoby moje założenie konstrukcyjne. Czy polecacie jakieś miejsca gdzie mogę nabyć czujniki siły nacisku, ale pracujące do 10kg? No i chciałem się przy okazji zapytać o radę. Chciałem uzależnić siłę ścisku dłoni od sygnału z mięśnia, ale tylko wtedy gdy czujniki wykryją obecność przedmiotu, natomiast kiedy w dłoni nic się nie znajduje, wówczas napięcie mięśnia sterowałoby pozycją palców. Czy uważasz, że to dobry pomysł?
  5. Ja zwykle kupowałem w tym sklepie: https://abc-rc.pl/search.php?text=serwo+orczyk https://abc-rc.pl/search.php?text=mocowanie+bowdena
  6. W małych silniczkach DC mam już dostępne przekładnie o dużych przełożeniach. Do tego na wyjściu tego zespołu dodałbym przekładnię śrubową albo przekładnię ślimakową i wówczas uzyskam tak duże przełożenie. Nie chcę korzystać z już utartego schematu. Poza tym w zastosowaniach medycznych nie spotkałem się, aby używano serw. Chcę zrobić projekt, dzięki któremu dużo się nauczę i będę mógł rozważyć różne opcje konstrukcji. EDIT: Poza tym przy dużych obciążeniach palców, wspomniane przeze mnie przekładnie zapewniają to, że "palec się nie ruszy", bo są samohamowne. W przypadku serwa popychacz może się wygiąć lub samo serwo może mieć za mały moment trzymający. Głównie dlatego zdecydowałem się na to rozwiązanie z silnikami.
  7. Silniki muszą być sterowane dwukierunkowo, dlatego właśnie szukam takiego rozwiązania. Skoro ten mostek TB6612 miałby służyć jako sterownik jednego silnika, to rozważę zakup tego rozwiązania polecanego przez Ciebie (od ST), cena wówczas niewiele wzrośnie, a rozwiązanie bardziej korzystne pod względem parametrów i rozmiarów. Teraz tylko miałbym pytanko odnośnie układu L6505. Mianowicie, dysponuje on 4 kanałami, to oznacza, że mogę za jego pomocą sterować dwoma takimi mostkami (4 sterowane silniki DC)? Teraz słowo odnośnie projektu. To jest moja praca magisterska i w związku z nią chciałem wykonać protezę dłoni sterowaną sygnałami EMG. Nie mam zbyt dużego doświadczenia w projektowaniu PCB, ale liczę, że sobie poradzę. Chcę na to poświęcić sporo czasu i w miarę moich umiejętności dopracować to urządzenie.
  8. Dziękuję za wyjaśnienia! Niestety ten mostek jest dla mnie zdecydowanie zbyt drogi, muszę sterować 6 silnikami, a z racji studenckiego budżetu, chciałbym to zrobić nieco taniej. Zakładam, że silniki będą miały enkodery, także w razie zatrzymania wału, będę mógł to wykryć, jednak domyślam się, że przy dużych oporach ruchu- jak prędkość obrotowa wału będzie niewielka, to wówczas prąd i tak będzie stosunkowo pokaźny, dlatego wolałbym wybrać mostek H o lepszych parametrach. Poszukałem trochę i bardzo zainteresowały mnie następujące propozycje (którą z nich byście wybrali, ewentualnie, jaką sami polecacie): 1- https://pl.farnell.com/diodes-inc/zxmhc6a07t8ta/mosfet-bridge-sm8/dp/7565020?st=mostek H 2- https://pl.farnell.com/texas-instruments/drv8837dsgr/motor-driver-dc-brushed-1-8a-wson/dp/2764797?st=sterownik silnika dc 3- https://www.tme.eu/pl/details/a3950slptr-t/drivery-silnikowe-i-pwm/allegro-microsystems/ 4- TB6612FNG (ten mi się najbardziej podoba, ze względu na wiele "dodatkowych" wbudowanych funkcji). W przypadku pierwszego nie rozumiem jednak wartości jego rezystancji przewodzenia. W innych układach scalonych wykorzystujących MOSFET'y te wartości są zdecydowanie niższe. W przypadku 4 opcji, czy uważacie, że przy zastosowaniu enkodera wartość 1,2A będzie wystarczająca? Czy też lepiej zrobić tak, że silnik będzie sterowany z jednego mostka H (złączyłbym ze sobą odpowiednie piny układu scalonego). Serdecznie dziękuję Wam za poświęcany czas 🙂
  9. Cześć. Chciałbym Was poprosić o pomoc w wyjaśnieniu pewnej kwestii. Niestety nie udało mi się znaleźć odpowiedzi na nurtujące mnie pytanie (mam nadzieję, że dobrze szukałem). Otóż chciałbym sterować za pomocą STM32 dwoma silnikami prądu stałego z przekładnią. Silnik bez obciążenia ma pobierać 70mA, natomiast przy zatrzymanym wale, prąd wyniesie aż 1600mA. Zakładam, że może się zdarzyć iż wał zostanie zatrzymany, no i właśnie tutaj rodzą się moje pytania. 1- Czy w takim wypadku silnik będzie pobierał te 1,6A? Czy też sterowanie za pomocą PWM ograniczy mi ten prąd do pewnej przewidywalnej wartości? 2- Czy i w jaki sposób można jakoś zabezpieczyć układ przed przepływem tak dużego prądu (nie chciałbym tego robić za pomocą bezpieczników szklanych, gdyż zakładam, że zatrzymanie wału może zdarzać się dość często)? 3- Co wówczas (przy przepływie prądu 1,6A) stanie się z mikrokontrolerem- czy zwiększy się prąd otwierający tranzystory w mostku? Wybaczcie, dla Was pewnie tak banalne pytania, ale niestety nie umiem zrozumieć zasady działania takiego układu, kiedy w silniku z powodu obciążenia zwiększa się zapotrzebowanie na prąd.
  10. Cześć. Dziękuję bardzo za pomoc. Ale pojawił mi się jeszcze jeden problem. Z mikrokontrolera wysyłam dane w ten sposób: size = sprintf(data, "%.2f\r\n",Wyjscie); HAL_UART_Transmit_IT(&huart1, data, size); W związku z tym, jak mógłbym wyedytować program w Visual studio, aby nie było linii przerwy między zapisywanymi wartościami? Próbowałem zmienić sposób wysyłania, ale niestety wówczas program nie pracuje prawidłowo, to znaczy, nie są w ogóle zapisywane te wartości. EDIT: Jak do tej pory zrobiłem tak: for (int k = 0; k < temp.Length; k++) { if (chars[k] == '.') { chars[k] = ','; } if (chars[k] == 13) { chars[k] =':'; } wysylaj = wysylaj + chars[k]; } I wydaje mi się, że to działa, ale zamiast dwukropka (🙂 chciałbym dać znak pusty- aby to było "nic". Da się to jakoś zrobić? Wpisanie takiej deklaracji wystarczyło: chars[k] ='0' Ale jestem ciekawy czy da się jakoś podmienić dany znak na znak pusty. Pozdrawiam serdecznie.
  11. Dziękuję za pomoc. A powiedz mi proszę, czy wtedy nie jest tak, że on pobierając całą linię to wiele z tych wartości zaczytuje? Jak u Ciebie to się stało, że program wiedział, że ma pobrać 5 znaków? Ustawiłeś to jakoś? Czy właśnie funkcja ReadLine() jako tę linię traktuje właśnie jedną wartość przesłaną przez UART? Pozdrawiam.
  12. Cześć. Miałbym problem z wyświetlaniem wykresu, do którego dane są odczytywane z pliku .txt. Do pliku .txt zapisywana jest temperatura za pomocą UART i programu napisanego przeze mnie w Visual Studio w języku C#. Niestety mój program nie działa i od dłuższego czasu stoję w miejscu. Program wygląda tak: private void Wykres_Load(object sender, EventArgs e) { FileStream fs = new FileStream("C:\\Users\\Paweł\\Desktop\\Elektronika projekt\\Temperatura.txt", FileMode.Open, FileAccess.Read); try { int i = 0; // string[] tablica = System.IO.File.ReadAllLines("C:\\Users\\Paweł\\Desktop\\Elektronika projekt\\Temperatura.txt"); string[] tablica; tablica = new string[File.ReadAllLines("C:\\Users\\Paweł\\Desktop\\Elektronika projekt\\Temperatura.txt").Length - 1]; StreamReader sr = new StreamReader(fs); while (!sr.EndOfStream) { tablica[i] = sr.ReadLine(); chart1.Series["Temperatura"].Points.AddXY(i,Convert.ToDouble(tablica[i])); i = i + 1; textBox1.Text = tablica[0]; } sr.Close(); } catch (Exception ex) { MessageBox.Show(null,ex.ToString()+ "Nie można odczytać danych", "Niepowodzenie", MessageBoxButtons.OK, MessageBoxIcon.Error); } } Przez użycie try catch, wyświetla się komunikat zawarty w MessageBox.Show i wygląda on następująco: A efekt działania programu jest następujący: W textbox1 sprawdzałem sobie czy istnieje dany element tablicy, no i istnieje tylko ten o indeksie 0. Nie rozumiem, dlaczego jest taki problem z indeksowaniem- według mnie, punkt powinien na osi X mieć współrzędną 0, a ma 1. Ponadto wartość się zgadza, jednak właśnie dla indeksu tablicy [0]. Największym dla mnie zaskoczeniem jest jednak, dlaczego to wykonuje się jedynie raz. Mam około 2500 tych punktów, co się dzieje, że tak to wygląda? Czy ktoś byłby w stanie mi pomóc? Program i plik .txt w załączniku. Bardzo dziękuję za jakiekolwiek uwagi i pozdrawiam 🙂 Temperatura.txt Projekt_apka_komputer.rar
  13. Dziękuję za pomoc. Postaram się to pozmieniać. Pozdrawiam 😃
  14. Dziękuję za pomoc. Trzeba było zmienić opcję w sekcji: End of conversion selection na EOC Flag on the end of all conversions. Teraz tylko mam pytanie, dlaczego to pomogło? Dlaczego przy używaniu liczb całkowitych, program mógł się wykonywać, a przy zmianie na zmiennoprzecinkowe już nie? Dlaczego przerwanie generowane po wykonaniu wszystkich konwersji, sprawiło poprawne wykonanie programu<- bo w ten sposób rozumiem tę flagę. I koniec końców skąd program wiedział ile jest tych konwersji, po których generować przerwanie? Jeżeli to są banały, to przepraszam i jeżeli znajdę odpowiedź na nie w literaturze to chętnie bym się dowiedział jakiej. Pozdrawiam.
  15. Zmieniłem tak jak powiedziałeś. Dodatkowo jeszcze zmieniłem z tego: size = sprintf(data, "%d\r\n", Wyjscie); Na to: size = sprintf(data, "%.2f\r\n", Wyjscie); I koniec końców uzyskuję coś takiego: Dwa wyniki i koniec. Transmisja z mikrokontrolera do komputera już się od tego momentu nie odbywa.
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.