Skocz do zawartości

Mechano

Użytkownicy
  • Zawartość

    1002
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    13

Mechano wygrał w ostatnim dniu 6 kwietnia 2016

Mechano ma najbardziej lubianą zawartość!

Reputacja

117 Mistrz

O Mechano

Informacje

  • Płeć
    Mężczyzna
  • Zainteresowania
    elektronika, robotyka, gry

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Zgadzam się z @Sabre, z resztą już kiedyś się "skarżyłem" na jakiś jego projekt. A jeszcze a propos mini lutownicy to schemat ts100 znalazłem całkiem łatwo: To może być punkt wyjścia do mojej, usprawnionej wersji ale chyba za dużo już tego tutaj. Może wreszcie założę docelowego workloga.
  2. @crbjsfso Właśnie na tym projekcie się wzorowałem bo chciałem sam napisać program takiej lutownicy a niestety utknąłem na słabym hardwarze, który nie daje zbyt precyzyjnych odczytów temperatury. Czy schemat ts100 albo ts80 też jest otwarty? Dotarłem tylko do softu. A co do EEVbloga to nie ma co się dziwić. Dave patrzy na to z perspektywy profesjonalnego elektronika z długim stażem w branży. A to jest typowo rzecz dla pasjonata a nie do zakładu produkcyjnego. Z resztą w tym konkretnym projekcie jest przynajmniej kilka rzeczy, które "ja bym zrobił inaczej".
  3. Na pewno? Polecam zajrzeć do tego artykułu, do punktu 2. W skrócie, przy nie używych pinach: Co więcej, z tego samego punktu: Dużo osób na tym już zęby zjadło więc nie widzę potrzeby, żeby wymyślać koło jeszcze raz. @SebaSaper Nie piszę tego, żeby ci dowalić czy coś, tylko radzę korzystać ze źródeł. Sam kiedyś taki byłem i też dostawałem takie zimne prysznice. Internet uważam za jedno z największych błogosławieństw (i przekleństw jednocześnie) naszych czasów, więc dlaczego z tego nie korzystać?
  4. @Treker Docelowo ma być gotowa płytka pcb zamknięta w jakiejś metalowej/plastikowej, okrągłej obudowie ale o tym na razie nie myślę, póki nie uruchomię w pełni tego prototypu.
  5. Jakiś czas temu spodobały mi się lutownice "długopisowe" jak np. ts100, ts80 ale kupno było by jakieś takie zbyt proste. Kilka miesięcy temu zacząłem składać pierwszy prototyp oparty o groty t12 za kilka dolarów, na płytce uniwersalnej, tylko taki, żeby sprawdzić czy ogarnę tematy sterowania grzałką, wyświetlaczem i odczytu temperatury. Niestety projekt leży od jakiegoś miesiąca bo odczyt temperatury po różnych zabiegach nie jest tak stabilny jak bym chciał (w sumie to nie może tu być mowy o żadnej stabilności bo dla 10bit adc wyniki rozjeżdżały się o jakieś 50-100 jednostek, czyli wahania temperatury wynosiły by nawet kilkadziesiąt stopni, o ile dobrze pamiętam). No i tu mi trochę brakuje wiedzy w czym jest problem. Czy to bardziej kwestia źle dobranego wzmacniacza operacyjnego (lm358) czy raczej cały koncept jest zły? Zostawiam kilka zdjęć, w razie zainteresowania mogę to jeszcze trochę szerzej opisać.
  6. Sprytny sposób na zrobienie taniego enkodera liniowego, np. do domowej maszyny cnc albo drukarki 3d. Co myślicie na ten temat?
  7. @Wojcik98 Też tego zjawiska nie rozumiem, zauważyłem to już wcześniej ale nie widzę błędu. @ethanak Do edukowałem się właśnie czym się różni funkcja od marka. Działa to mniej więcej tak, że makro podstawia kawałek innego kodu w miejscu jego wywołania a funkcja wymaga skoku do jej kodu? No dobra ale kod się kompiluje i kompilator nie wyrzuca ostrzeżeń. Na co mam uważać, zwrócić uwagę, co sprawdzić?
  8. W radianach jest tylko wartość beta, potem beta2, beta3 i beta4 są już wyświetlane w stopniach. Może Krok próbuje jakoś mi wymachać napis "Fatality!".
  9. Pamiętam, że beta jest w radianach i to ograniczenie wprowadziłem na etapie debugowania chyba, żeby ograniczyć fizycznie ruch stawu (ale teraz nie mogę sobie przypomnieć na sto procent co ja wtedy myślałem, "a trzeba było napisać jakiś komentarz" ). A co co drugiego pytania, dla zadanej dużej wysokości (oś z) efekt występuje dosyć szybko dla zwiększanej długości (oś x). W spoczynku: beta: -0.01 beta2 nie ogr: -0.61 beta2 ogr: -0.61 beta3 nie ogr: 11.70 beta3 ogr: 11.70 dlugosc nogi: 94.01 wysokosc 94.00 szerokosc 0.00 dlugosc -1.00 Niewielkie wychylenie drążka od długości daje wspomnianego buga: beta: 0.22 beta2 nie ogr: 12.59 beta2 ogr: 12.59 beta3 nie ogr: 0.00 beta3 ogr: 0.00 dlugosc nogi: 96.32 wysokosc 94.00 szerokosc -1.00 dlugosc 21.00 Dla wychylenia w drugą stronę, efekt jest ten sam ale tym razem o to chodziło: beta: -0.29 beta2 nie ogr: -16.59 beta2 ogr: -16.59 beta3 nie ogr: 0.00 beta3 ogr: 0.00 dlugosc nogi: 98.08 wysokosc 94.00 szerokosc 0.00 dlugosc -28.00 Ja dzisiaj mam chyba jakąś pomroczność jasną i nic tutaj nie widzę. Chyba muszę sobie odświeżyć wszystkie obliczenia. A swoją drogą to podczas testowania i pracy robota przez kilkadziesiąt minut ani razu się nie zwiesił. Ciekawe.
  10. Przecież balansera używa się tylko do ładowania. Używanie standardowego balansera przy rozładowaniu nie ma raczej większego sensu (chyba, że by użyć układu aktywnego ale to raczej mało popularne rozwiązanie).
  11. Jak najbardziej można ale do ładowania musisz je rozpiąć i ładować osobno / spiąć równolegle, jeżeli chcesz je ładować jedną ładowarką 2s.
  12. Mostek, który wybrałeś radzi sobie z napięciami zasilania silników do 13.5V i możesz to zasilić bezpośrednio z akumulatora, natomiast wejście oznaczone jako VCC musisz zasilić czymś z przedziału 2.7V-5.5V (patrz dokumentacja układu od producenta), jeżeli zasilasz procesor z 5V to możesz z tego zasilić mostek i będzie działać. Jakiś mały kondensator na zasilaniu zawsze się przyda. Listwa, którą podlinkowałeś jest analogowa i musisz użyć przetwornika ADC do jej obsługi. Pokaż o jaką, konkretnie, listwę "cyfrową" Ci chodzi to się zastanowimy. Mi się eagle bardzo podoba, ma duże community ale ma jedną bardzo dużą, dla niektórych, wadę czyli nie jest darmowy, tzn. jest darmowa wersja dla studentów ale ma ograniczenia i nie można jej wykorzystywać komercyjnie. Do takiego robota powinien być wporzo, ważniejszy jest skill w używaniu programu niż on konkretny. PCB chcesz samemu trawić? Jak nie masz w tym dużego doświadczenia to ja bym się w to nie bawił tylko zrobił ją w Chinach. Wyjdzie taniej i bez nerwów niż samemu się w to bawić. Do czego tsop i bluetooth jednocześnie? Jak chcesz użyć gotowego modułu arduino to też poszukałbym na dalekim wschodzie - dużo taniej wyjdzie (chociaż nie wspierasz producenta...).
  13. Na początku chcę bardzo podziękować za zainteresowanie tematem i odpowiedzi. Jednocześnie przepraszam, za tak późną odpowiedź ale raz, że zajmuje mi to sporo czasu i trudno przychodzi to, a dwa, że najpierw chcę jak najwięcej opcji sam sprawdzić zanim zajmę komuś czas. @wn2001 Dzięki za pomysł, zrobię to w wolnej chwili, chociaż chyba już to ogarnąłem. @deshipu Świetna strona! Bardzo dobrze tłumaczy amatorowi co chcemy osiągnąć i jak to zrobić. Chociaż zauważyłem, że przykład dotyczy nogi o nieco innej budowie niż moja ale to, czego nie rozumiałem (czyli kątów kolana) jest wspólne. Dzięki! @Treker Nie ma sprawy, dzięki za prowadzenie super portalu Ok ale, żeby nie było tak pięknie to nie wszystko działa tak jak bym tego chciał. Całość obliczeń kinematyki wygląda tak: // hip; //kat alfa alfa = atan2(szerokosc, wysokosc); //kat w radianach alfa2 = (180 * alfa) / PI; //zamiana radianow na stopnie alfa2 = alfa2 + 90; servo3.write(180-alfa2); servo6.write(180-alfa2); servo9.write(alfa2); servo12.write(alfa2); // knee: //kat beta dlugoscNogi = sqrt(pow(wysokosc, 2) + pow(dlugosc, 2)); dlugoscNogi = constrain(dlugoscNogi, 15, 100); beta = atan2(dlugosc, wysokosc); //radiany if(beta <= -1) beta = -0.99; beta2 = (180 * beta) / PI; //zamiana radianow na stopnie beta2 = constrain(beta2, 10, 170); beta3 = acos((pow(udo, 2) + pow(dlugoscNogi, 2) - pow(piszczel, 2) ) / (2 * udo * dlugoscNogi)); //radiany beta3 = (180 * beta3) / PI; //zamiana radianow na stopnie beta3 = constrain(beta3, 10, 160); beta4 = beta2 + beta3; servo2.write(beta4); servo5.write(180-beta4); servo8.write(beta4); servo11.write(180-beta4); Serial.print(" dlugosc nogi: "); Serial.print(dlugoscNogi); //ankle: //kat gamma kat = (pow(piszczel, 2) + pow(udo, 2) - pow(dlugoscNogi, 2))/(2 * piszczel * udo); if(kat <= -1) kat = -0.99; kat2 = acos(kat); kat3 = (180 * kat2) / PI; //zamiana radianow na stopnie servo1.write(180-kat3); servo4.write(kat3); servo7.write(180-kat3); servo10.write(kat3); Problemy: przede wszystkim z jakiegoś powodu nie mogę ograniczyć zakresu kąta beta3 (sprawdziłem, że chodzi dokładnie o ten kąt, a beta4=beta2+beta3); dwa serwa potrzebują "odwróconego" sygnału, który uzyskuję w linijce: servo5.write(180-beta4); Ale gdy wartość beta4 jest równa 0 i 180-beta4 powinno być równe 180 to z jakiegoś powodu pojawia się tu wartość 0 i dwa serwa wariują. Niestety rozwiązania w stylu: beta4 = constrain(beta4, 10, 170); lub if(beta4 <=10) beta4 = 10; działają dopóki wartość kąta jest większa niż 0, potem wszystko się zeruje i warunki przestają działać. Nie mam pojęcia na czym polega problem, czy to wina obsługi trygonometrii (strzelam)? drugi problem polega na tym, że robot w dowolnym momencie się wiesza, wiem to bo przestaje wysyłać cokolwiek po uarcie i nie reaguje na bluetooth (jeden uart wysyła dane do komputera, a drugi obsługuje hc05), dodatkowo bardzo powtarzalnie skręca się serwo nr 12 podłączone do pinu PB1 (skręca się o 90 stopnie do środka robota i utrzymuje pozycje). No i tutaj już kompletnie nie mam pomysłu dlaczego tak się dzieje. Jak można to diagnozować bez debuggera? W czasie pisania tego posta robot leżący na stole obok mnie zrobił tak ~3 razy, pomaga tylko reset procesora (i wyjęcie, i włożenie kabla usb). ostatni problem jest związany z matmą -> posuw korpusu robota "do przodu" czyli zwiększanie zmiennej "długość" dobrze działa tylko w jedną stronę (gdy długość jest dodatnia, długość nogi rośnie), w drugą stronę (dla ujemnej długości) zwiększa się długość nogi ale robot nie przesuwa się do tyłu. Za każdą pomoc będę bardzo wdzięczny, już i tak bardzo pomogliście.
  14. No proszę, moja była szkoła się chyba dosyć mocno zmieniła. Nowy wice-dyrektor robi robotę, co?
  15. Naładuj do trybu storage (ok. 70% pojemności akumulatora) i odstaw w chłodne miejsce typu piwnica. Dodatkowo odłącz wszelkie obciążenia (alarmy, balansery, bmsy, przetwornice i inne takie cuda).
×
×
  • Utwórz nowe...