Skocz do zawartości

Proszę o weryfikację schematu.


szklanka

Pomocna odpowiedź

Oprócz praktycznie liniowego wzrostu poboru mocy na pewno da Ci większą prędkość procesora 🙂

Kwarc daje też większą stabilność częstotliwości co oznacza zero kłopotów z transmisjami asynchronicznymi (UART), ale tu bym nie demonizował - tolerancje wewnętrznych generatorów w obecnych ATmegach są wystarczające do zabawy w UART bez kwarców. Kwarc dużo wolniej rusza z miejsca niż generator RC - to może mieć znaczenie gdy usypiasz procesor w power-down, ale to rzadko kto robi a już na pewno nie w takich robotach. Przy idle czas startu nie ma znaczenia bo i tak generator nie jest zatrzymywany. Kwarc jest czuły na uderzenia, upadki itp, oscylator kwarcowy z uwagi na ścieżki prowadzone na PCB jest bardziej podatny na zakłócenia no a sam kwarc zajmuje sporo (szczególnie dawne obudowy HC49) miejsca.

EDIT:

To już lepiej - jeżeli i tak wiesz, że nie masz COMa i będziesz przechodził na USB - zamiast MAXa wstaw FT232R, układ podobnej wielkości a "zakończony" interfejsem USB. Wstaw małe złącze typu mini-B i masz problem z głowy. Wielu ludzi zamiast złącza COM i zamiast USB wstawia na płytki moduły Bluetooth. Mają 3V, prosty interfejs UART a po drugiej stronie - wiadomo, wbudowaną małą antenkę 2.4GHz 🙂 Przez takie coś pogadasz i z PC i ze smartfonem a "wirelessność" takiego rozwiązania jest nieoceniona w przypadku platform uciekających ze stołu..

Link do komentarza
Share on other sites

Ok. Spróbuję z USB na początek. Schemat poprawię, naniosę też wcześniejsze poprawki. Nie wiem czy będę w stanie zrobić to dzisiaj, ale na pewno zrobię to jutro. Wtedy poproszę raz jeszcze o zweryfikowanie.

Ok. Wstawiłem poprawki. Usunąłem jeden stabilizator 5V. W jego miejsce dałem lm`a ale regulowanego tylko na silniki. Jest też ft232r. Wrzuciłem też złącza do HC05. Może kiedyś mnie najdzie również na komunikację przez Bluetooth.

I jeszcze drobne pytanie. jak te silniki zniosłyby zasilanie większe niż 5V.. (nominalnie są na takie napięcie)

schemat ideowy.pdf

Link do komentarza
Share on other sites

O, dużo zmian. Przejrzyjmy je po kolei:

1. Zabrakło jakiegoś większego elektrolitu na wejściu. Bateria/akumulator jest dość wolnym elementem i nie będzie w stanie pokrywać szybkich zmian poboru prądu. 100-220uF wspólne dla wszystkich trzech stabilizatorów byłoby w sam raz.

2. Dzielnik R20/R21 wydaje się dobrany losowo. W zależności od tego czy w przetworniku wykorzystasz własne, wbudowane VREF procesora (2.56V) czy jego zasilanie (5V), taki będziesz miał zakres pomiarowy ADC i do takiego poziomu powinieneś ograniczyć sygnały wejściowe. Dzielnik 100k/5k1 tłumi wejściowe 9V do 436mV. Przelicz dzielnik i wykorzystaj cały zakres pomiarowy przetwornika, bo teraz z 10 bitów jego rozdzielczości korzystasz tylko z 7. Ponieważ ADC pobiera prąd z wejścia impulsowo, daj równolegle do R20 kondensator 10n-1uF.

3a. Rozumiem, że złącze oznaczone JP1 będzie - wbrew nazwie HC05 - służyło kiedyś w przyszłości do podłączenia jakiegoś modułu radiowego. Jeżeli tak, to daj sobie możliwość prostego odcięcia układu FT232 od linii TXD/RXD bez jego wylutowywania. W najprostszym przypadku może to byś opornik 0R szeregowo z wyjściem TXD tego scalaka (RXD nie szkodzi - jet wejściem). Natomiast oporniki 1k przy procesorze to jednak trochę dużo szczególnie, gdy szybkości zaczną iść w setki kbit/s. Jaki był cel ich wstawienia?

3b. Moduły radiowe BT są zwykle 3-woltowe. Być może planujesz już jakiś konkretny i ten jest zasilany z 5V, ale jeśli nie, to może warto pomyśleć nad doprowadzeniem napięcia 3.3V zamiast VCC - nie będziesz musiał spawać dodatkowego stabilizatora gdzieś przy module. No i konwersja poziomów - w przypadku zasilania 3V nie możesz do modułu wysłać TXD 5-woltowego. Jeżeli RXD wróci na poziomach 3V - nie szkodzi, procesor sobie poradzi.

4a. Przy podłączaniu się od szyny USB musisz wybrać jedną z dwóch wykluczających się opcji: Twoje urządzenie będzie typu "bus powered" lub "self powered". W pierwszym przypadku korzystasz z VUSB dostarczanego z kabla i tym się zasilasz, ale wtedy nie możesz mieć własnego zasilania. To nie jest ten przypadek, bo przecież masz akumulator i stabilizatory, więc musisz wybrać opcję drugą. W niej interfejs FT232R musi być zasilany z lokalnego VCC, ale nie możesz spinać tego napięcia z tym co dostajesz po kablu. Odetnij więc VCC od pinu 1 złącza X1. Musisz jednak "wyłączać" interfejs gdy kabel jest odpięty (po to, by podejmować prawidłową enumerację nowego urządzenia gdy wtyczka zostanie podłączona) - zrób dzielnik 4k7/10k na VUSB a jego wyjście podłącz do wejścia RESET scalaka. Będzie wychodził ze stanu RESET po pojawieniu się 5V na VUSB.

4b. Z diodkami zabezpieczającymi linie D+/D- uważaj, to muszą być specjalne diodki przeznaczone specjalnie do USB (o bardzo małych pojemnościach). Jeżeli planujesz zwykłe Zenery, lepiej nie montuj tu nic.

4c. Linia 3V3OUT z FT232R to wyjście - nie możesz jej zwierać z zewnętrznym źródłem napięcia, za to możesz z niej coś zasilać. Wewnętrzny stabilizator w tym scalaku ma pewien nadmiar i jeśli Twoje odbiorniki będą brać mniej niż 50mA (bramki LVC i karta), to możesz pozbyć się jednego 1117. Jeżeli chcesz go dla bezpieczeństwa zostawić i mieć własne 3.3V, to zostaw wyjście 3V3OUT w spokoju.

5. Oporniki przy diodkach LED (np R2, R7 i inne) wydają się strasznie małe. Dzisiejsze diodki SMD świecą naprawdę jasno przy prądach rzędu 1mA. Spróbuj przeliczyć te oporniki, żeby niepotrzebnie nie obciążać wyjść procesora: R=2k i VCC=5V dają przy czerwonej diodce jakieś 1.5mA.

6. O silniki bym się się martwił. Bo co to znaczy, że są na 5V? To znaczy, że przez uzwojenie płynie prąd znamionowy 100mA i w silniku (gdy stoi) wydziela się 0.5W ciepła. No ale silnik krokowy ma więcej niż dwa druty. Ty sterujesz nim w najbardziej zachowawczy, bezpieczny (i najprostszy) sposób: podłączasz do zasilania tylko jedno uzwojenie na raz. Drivery są proste a sposób ich komutacji jest trywialny, ale ceną za to jest kiepski moment. Przyznam, że dokumentacja tego silnika jaką znalazłem jest tragiczna (może masz jakąś dobrą?) - jedna stronka z kilkoma liczbami nie wiadomo jak mierzonymi. Jeżeli założyć, że momenty były mierzone w najsilniejszym i najbardziej obciążającym silnik układzie - tak robi każdy producent bo przecież trzeba się pochwalić osiągami, to jesteś daleko od tej sytuacji. Takie silniki można bowiem sterować na wiele sposobów (na pewno o tym czytałeś) a przepuszczanie prądu przez 2 uzwojenia na raz (czyli przez wszystkie 4 cewki) jest najmocniejszym z nich. Jeżeli mierzyli w takim układzie (potrzebne są 2 pełne mostki H na jeden silnik), Ty możesz podnieść swoje zasilanie do 12V i nic się nie stanie. Niestety oznacza to także, że dostaniesz znacznie mniejszy moment niż podali w katalogu a to nie wróży dobrze dynamice Twojego robota. Z tego co mi się wydaje często stosowanym sposobem sterowania tego rodzaju silniczków jest komutacja półkrokowa będąca kompromisem między skomplikowaniem driverów a uzyskiwanym momentem. Kosztuje dwa razy mniejsze obroty, ale chyba warto. Tu masz przykład, gdzie przy sterowaniu półkrokowym uzyskano 15obr/min (kiepsko...) przy 8V na silnikach. Jak rozumiem te 2V z 10V zasilania zjadły drivery 2003:

http://42bots.com/tutorials/28byj-48-stepper-motor-with-uln2003-driver-and-arduino-uno/

Link do komentarza
Share on other sites

2. Rezystancje akurat dobrałem specjalnie. Uznałem, że im większa rezystancja tym mniej będę obciążać baterię ciągłym obciążeniem.

Korzystać będę z wbudowanego źródła odniesienia. Podobno lepiej. Nie wziąłem pod uwagę, że te 0.4V to faktycznie za mało.

3a. Tak złącze JP1 ma być przyszłościowo na moduł bluetooth. HC05 to nazwa modułu i to pod jego piny planowałem poprowadzić ścieżki.

Wyczytałem gdzieś, że linia TXD/RXD w tym module jest o napięciu 3.3V, stąd te rezystory 1k. (o ile faktycznie się to sprawdzi?)

Spadku prędkości transmisji nie wziąłem pod uwagę. Nie myślałem o korzystaniu z obu sposobów komunikacji jednocześnie, dlatego nie pomyślałem o wyłączeniu tego nieużywanego w danej chwili.

4c. Jeżeli uważasz, że linia 3v3OUT poradzi sobie z bramką i kartą to skorzystam z tego rozwiązania.

5. Nie brałem pod uwagę SMD. W zasadzie z wyjątkiem FT232R w ogóle nie brałem pod uwagę SMD. Do tej pory budowałem układziki.. w oparciu o elementy przewlekane.

6. Stronę którą podałeś akurat widziałem. Miałem zamiar korzystać z kodu zamieszczonego tam przy sterowaniu za pomocą uln`a, ale dzięki za podrzucenie.

O sposobach sterowania coś tam wiem, "dopasowałem" się jednak do takiego sposobu. Mam w tym przypadku małą pomoc w części programowej i chyba taki sposób sterowania na razie zostawię.

Na nic co można nazwać notą katalogową i w języku zrozumiałym nie tylko dla azjatów dla tego silnika nie znalazłem.

Jestem świadom .. marnych osiągów tych silniczków, ale zależy mi na śledzeniu obrotu kół. Będę miał (przyszłościowo) możliwość przeanalizowania drogi robota lub po prostu będę mógł obrócić robocika w miejscu o pewien kąt. Cały robot ma pełnić funkcję "mobilnego radaru" a wsparcie Arduino i popularność dla tych elementów pomoże mi to jakoś ogarnąć programowo. Niska cena też jest plusem.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Bez przesady, masz na pokładzie dwa silniki, LEDy i procesor a chcesz oszczędzić 100uA? Ale OK, możesz dać dzielnik który w sumie ma te 100k tylko zmniejsz stopień podziału. Nie zapomnij o kondensatorze - im większa rezystancja źródła (w tym wypadku dzielnika), tym zjawisko impulsowego poboru prądu przez ADC wyraźniej pogarsza wyniki.

Jeżeli przewidujesz, że kiedykolwiek będziesz miał na płytce jednocześnie FT232R i moduł BT to zrób tak:

a. Podłącz TXD procesora wprost do RXD FT232 - oba pracują na 5V.

b. Między TXD procesora a wejście RXD modułu wstaw bramkę LVC125, np. IC2A zabraną z linii wyboru karty SD/MMC. Procesor będzie nadawał do obu. Jeżeli nie chcesz by gadał do modułu BT gdy korzystasz z USB, wstaw tu jakąś zworkę.

c. Zaraz przy wyjściu TXD z modułu wstaw opornik 0R montowany opcjonalnie.

d. Przy wyjściu TXD FT232 wstaw taki sam.

e. Oba oporniki połącz razem i puść do RXD procesora. Ten odbierze zarówno sygnały 5V z USB jak i 3V z BT. Pamiętaj, żeby nigdy nie wlutować obu oporników na raz. To może być równie dobrze jakiś mały przełącznik.

f. W miejsce zabranej bramki IC2A wstaw inwerter na tranzystorze npn lub nMOS, którego kolektor/dren podciągniesz opornikiem do 3.3V. Sygnał wyboru karty nie jest krytyczny czasowo więc może iść przez takie coś (pamiętaj tylko o zmianie polaryzacji sygnału w programie). Wszystkie inne sygnały (zegary i dane) muszą obowiązkowo iść przez konwertery z prawdziwego zdarzenia.

Nie, raczej nie można liczyć na to, że 50mA starczy na zapisy do karty. Myślałem, że Ty to wiesz sprawdziwszy dane swojej karty. Bramki LVC nie biorą praktycznie nic a niektóre karty podczas odczytu mieszczą się w 20-30mA, ale zapisy nie dają szans. Tam w środku karta robi sobie wysokie napięcie do programowania pamięci FLASH a sam zapis wymaga poważnej energii.

Ja zrobiłem kiedyś pojazd na normalnych, kwadratowych silnikach 200 kroków/obrót jakich mnóstwo można znaleźć na aukcjach po 30-50zł. Miał odjazd taki, że koła się ślizgały, ale u mnie specjalizowane drivery z MOSFET-owymi mostkami H ze sterowaniem prądowym były popychane z ponad 30V uzyskiwanych z przetwornicy step-up. Rozkręcałem to chyba do 2 tys kroków/sekundę. Zmianą stanu jednej czy dwóch linii sterujących mogłem zmieniać schematy komutacji z normalnej 1/1 na mikrokrokowe aż do 1/256(?) więc precyzja była niesamowita. Tutaj będziesz dysponował - wg producenta - momentem 0.034Nm (niestety nie wiem w jakich warunkach mierzonym) czyli mówiąc po ludzku, na kółkach o 4cm średnicy możesz oczekiwać siły popychającej pojazd rzędu 1.7N/silnik. Jeśli ja nic nie pokręciłem a Ty znasz przybliżoną masę robota, to sam sobie policz przyśpieszenie..

Żeby osiągnąć dużą precyzję, nie możesz mieć szerokich opon bo wtedy nie znasz punktu jej styku z podłożem a przy obrotach i zakrętach to ważne. U mnie oponkami były gumowe o-ringi założone na felgi wycięte i złożone z 3 warstw laminatu 2mm. Takie coś ma mały punkt styku więc dobrze sprawia się w precyzyjnych zakrętach i liczeniu drogi krokami silników, ale ma marną trakcję no i zerową "dzielność terenową". W sumie, ze względu na błędy i tak potrzebne są dodatkowe metody badania przesunięcia/orientacji/położenia pojazdu a silniki DC z enkoderami sprawdzają się bardzo dobrze.

Moim zdaniem kuriozalna jest wiadomość podana na którejś stronie, gdzie napisano że redukcja w przekładni tych silników wcale nie jest dokładnie 1:64 jak stoi w karcie producenta tylko jakoś tak blisko. Ludzie po prostu otworzyli pokrywkę i policzyli zęby... Taka ściema kładzie wszelkie obliczenia związane z teoretyczną precyzją "fajnych" silników krokowych.

Link do komentarza
Share on other sites

Tak, widziałem tą stronę odnośnie tej przekładni. Myślałem nad użyciem silników DC z enkoderami ale odstraszyła mnie cena. "Ręcznie" robione enkodery z np. Kulkowych myszek do mnie nie przemawiają. Zobaczymy. Może kiedyś pokuszę się o lepsze podzespoły i inne sterowanie. Na razie chcę ogarnąć to co jest, a jest tego trochę- chociażby biorąc pod uwagę pierwszy układ.

Ok. Jeszcze raz proszę o sprawdzenie czy czegoś nie pominąłem.

schemat ideowy.pdf

Link do komentarza
Share on other sites

Po wprowadzeniu inwersji diodka LED na sygnale wyboru karty - żeby świeciła gdy interfejs jest odblokowany, powinna być teraz do masy. Sam port procesora powinien dostać (równolegle do diodki z opornikiem) jeszcze jeden, czysty opornik z 10k do masy żeby na pewno tranzystor był wyłączony gdy programujesz procesor. Diodka LED przez swoje wysokie Vf nie zapewnia ściągania linii do 0V i wyłączenia MOSFETa.

Linia VUSB (pin 1 złącza) powinna dostać kondensator 1-10uF żeby układ nie zerował się od byle pogorszonego kontaktu z kablem i 100us spadków poziomu zasilania. Z resztą 10uF na VUSB odbiornika (device) przewiduje standard USB.

Nie sprawdzałem obłożenia sygnałów na złączu MMC/SD.

Dobrze byłoby dodać jakiś pull-down (22k?) na linii danych z karty, tuż przy złączu. Wtedy podczas nieobecności karty na pewno odbierzesz stan niski a nie coś przypadkowego.

Kondensator 100nF na 3V3OUT był dobrym pomysłem - producent układu pokazuje go na każdej aplikacji. Przepraszam, "zostaw w spokoju" było nieprecyzyjne, chodziło mi o obciążanie prądem.

Bolą mnie te niewykorzystane 2 porty PB6 i PB7. Albo dorysuj kwarc i najwyżej go nie wlutujesz albo daj ze dwa LEDy - zawsze jakaś dodatkowa sygnalizacja (słaba bateria, jazda z maks prędkością, wykrycie przeszkody itp) się przyda.

No i chyba nie ma się już do czego przyczepić... 🙂

Aaa, już wiem: może szybko zabraknąć pamięci na program lub na dane. Jeśli zaczniesz naprawdę korzystać z systemu plików na karcie, 8K kodu i 1K RAMu małej ATmegi może być za krótkie. Sprawdź ile zajmują biblioteki obsługi FAT, silników itp i spróbuj oszacować jakich funkcji będziesz używał.

  • Lubię! 1
Link do komentarza
Share on other sites

Przyda się 🙂

Z tego co wyczytałem, moduł ten radzi sobie z napięciem zasilania 3.6-6 V. Szukałem w googlu schematów połączeń, wszystkie (większość) nie zawierała obniżenia napięcia. Wyczytałem również, że sam moduł adaptuje to napięcie na napięcie 3.3. Inaczej jest w przypadku TXD i RXD. One wymagają już napięć obniżonych, co zrobiliśmy.

Przeglądałem trochę biblioteki, ale nie wiem jak sprawdzić ją pod kątem zajmowanej pamięci.

Link do komentarza
Share on other sites

To zależy, czy przez "moduł" rozumiesz sam, goły HC05 wykonany w formie powierzchniowo montowanej płytki o wymiarach 15x28mm z 34 padami na trzech bokach, czy jest to trochę większe coś z zamontowanym właściwym modułem radiowym, stabilizatorem, diodką LED i np. kilkoma szpilkami wyprowadzającymi najważniejsze sygnały.

To pierwsze na pewno pracuje przy 3.3V (wg specyfikacji 3.0-4.2V), to drugie - trzeba szukać w danych tego czegoś, ale wstawienie stabilizatora (i obowiązkowo konwertera poziomów logicznych) umożliwia pracę w systemach 5V.

Rozwiązanie w którym byłby stabilizator (czyli możemy zasilać z 5V) ale brak konwersji poziomów (czyli sygnały muszą być 3V) uważam delikatnie mówiąc za.. dziwne.

Link do komentarza
Share on other sites

No to masz przykład firmy która sprzedaje coś o czym nie ma pojęcia. W aukcji wskazany jest plik pdf który odnosi się do samego modułu HC05/HC06 a na zdjęciu mają któryś moduł (to zielone) ręcznie przylutowany do płytki nośnej (to niebieskie) wyposażonej w stabilizator, kilka oporników i szpilki 100mils. Co więcej, żaden ze schematów pokazanych w pliku pdf nie jest tym prawdziwym naszego combo, bo na pierwszym mamy minimalną aplikację z zasilaniem wprost z 3.3V i sygnałami 3.3V a na drugim pełną obsadę: stabilizator, konwertery poziomów do logiki 5V i do standardu RS232.

Na szczęście w aukcji mamy też zdjęcie dolnej strony niebieskiej płytki, gdzie wyraźnie napisano: zasilanie 3.6-6V a sygnały w standardzie 3.3V. Nie przypiął, ni przyłatał, ale do Twojego projektu pasuje jak ulał 🙂

Rysuj płytkę.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.