Skocz do zawartości

Kurs budowy robotów: tani Shield (samoróbka)


marianm68

Pomocna odpowiedź

Witam.

Jako że lubię chodzić swoimi ścieżkami postanowiłem przygotować sobie niskobudżetową nakładkę na arduino która ma mi pomóc w przejściu "Kursu budowy robotów" Forbota. Zmodyfikowałem schemat oryginalnego shielda i powstało coś takiego:

W celu "zaoszczędzenia" wyjść arduino do sterowania mostkiem H zastosowałem układ 7400 (4 bramki NAND).

PCB zaprojektowałem w KiCad jako dwustronną (do wykonania metodą termotransferową):

po lewej widać nakładkę z ekspanderem portów na MCP23008 jako opcjonalne rozszerzenie shielda.

Po złożeniu:

Nakładka będzie pracować z "moją arduinopodobną" płytką (powinna współpracować także z oryginałami - starałem się zachować kompatybilność). Cały zestaw wygląda tak:

Jestem po pierwszych testach które wypadły dobrze. Sprawdziłem działanie serw na pinach 9 i 10 oraz działanie mostka H. jest OK.

Nadszedł czas na rozmontowanie światłouba

i wykorzystanie podwozia do wyższych celów!!!

Oto rozpiska wyprowadzeń na nakładce:

Podstawowym założeniem przy projektowaniu nakładki były: niski koszt i elastyczność shielda.

Na nakładce zostały wyprowadzone prawie wszystkie "piny" arduino z wyjątkiem czterech potrzebnych do kontrolowania silników. Na nakładce znalazły się jedynie dioda led podpięta pod tranzystor npn pod który można podłączyć buzer (albo inny odbiornik do 100mA) oraz przycisk (switch) które można podłączyć do dowolnego pinu arduino.

Ciekaw jestem opinii na temat tego projektu.

Konstruktywna krytyka mile widziana 😉

Link do komentarza
Share on other sites

Nie wiem na ile konstruktywne mogą być moje narzekania w tym stanie projektu - gdy już wszystko zrobiłeś i niewiele da się poprawić, ale skoro prosisz..

1. Mostek ma specjalne 4 wyprowadzenia GND (te na środku), które są elementami przewodzącymi ciepło. Są to piny najbliżej struktury a w środku przechodzą wprost w ażur na którym zamontowany jest krzem. Mostek jest elementem mocy, grzeje się z definicji i dobrze jest zadbać już na etapie projektu o jego chłodzenie. Producent zaleca położenie dużych placków miedzi wokół tych czterech padów co jest o tyle łatwe, że to przecież masa, której na płytce nigdy za wiele. Zajrzyj do karty katalogowej L293 (i rób to przed użyciem każdego scalaka na jakiego masz ochotę). Są tam nawet rysunki i ciekawy wykres jak zmienia się moc rozpraszana w układzie (a więc i maksymalny prąd) w zależności od powierzchni tego radiatora. Podpowiem, że zmiana jest kilkukrotna - czyli warto. U Ciebie widzę marną ścieżynkę chociaż miałeś miejsce na rozlanie sporego kawałka radiatora - poważny błąd. Płytka ma generalnie problem z masami. Zmarnowałeś mnóstwo miejsca na PCB każąc wytrawiać ogromne połacie cennej miedzi z których mogłeś zrobić porządne masy. Cierpią szczególnie połączenia mocy - gniazda wejściowe, okolice stabilizatora, itp.

2. Ekspander portów ma nie od parady RESET i INT. Po pierwsze I2C czasem się wiesza. Z różnych powodów, czasem zasilanie, czasem błąd w programie. Niestety nawet jeśli jesteś MASTER'em tej magistrali możesz zwyczajnie utknąć np. gdy którykolwiek SLAVE zdusi jedną z dwóch linii do masy. Nic wtedy nie możesz zrobić, protokół nie działa i jedynym wyjściem z takiego klinczu jest reset wszystkich układów podpiętych do magistrali. Linia INT z kolei jest bardzo wygodnym detektorem zmian. Jeśli podepniesz do scalaka jakieś przyciski lub sygnały z czujników (przecież linie ekspandera nie muszą być wyjściami) to będziesz musiał teraz bardzo się natrudzić by wciąż odczytywać stany i reagować na ew. zmiany. Zmarnowałeś mechanizm detekcji już wbudowany w scalak - masz to za darmo. Trzeba było chociaż doprowadzić RESET i INT przez jakieś rozłączalne zworki/oporniki do którychś pinów Arduino. Aż prosi się by procesorowe wejście INT0 lub INT1 dostało sygnał z ekspandera.

3. Brakuje oporników wyznaczających stany ważnych portów Arduino w przypadku jego RESETu. W szczególności myślę tu o liniach PWM. W czasie programowania przez SPI (czasem tak się robi) albo innej sytuacji awaryjnej (np. spadek zasilania i zadziałanie wewnętrznego BOR w procesorze) porty wyjściowe są wejściami. Mostek z kolei ciągnie swoje wejścia do stanów wysokich co automatycznie odpala silniki w przypadkowych kierunkach - bo wejścia bramek 7400 też nie mają żadnego podciągania. Na pewno tego nie chcesz.

4. Gospodarka ciepłem kuleje także w przypadku 7805. W sytuacji w jakiej się znalazł (zero radiatora) będziesz mógł na nim wydzielić jakiś 1-1.5W mocy zanim obijesz się o ograniczenie termiczne układu. Przy zasilaniu np. z 12V sprowadza się to do prądu 1.5/(12-5)=215mA. Przy 9V będzie trochę lepiej. Nawet dwa gniazdka zasilania serw są w takim razie wyrazem sporego optymizmu. W detalu masz dziesiątki typów radiatorów przygotowanych do obudowy TO220 a w ostateczności wystarcza kilkanaście cm2 blaszki. Podłóż ją pod cały stabilizator, skręć M3 i wyprowadź poza płytkę, w lewo na rysunku PCB. Możesz ją zagiąć do pionu.

5. Jedno z wejść analogowych mogłeś domyślnie przeznaczyć do pomiaru napięcia zasilania. I tak musisz to zrobić przy pracy z akumulatorami, a tak byłoby gotowe. Dwa oporniki i kondensator na pewno by się zmieściły.

A tak w ogóle to gratuluję. Po poprawieniu kilku niedoróbek wersja 2.0 może być już całkiem fajna 🙂

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dziekuję za cenne rady.

No cóż człowiek uczy się całe życie (najczęściej na własnych błędach).

Z ekspanderem temat jest jeszcze otwarty mogę wprowadzić zmiany.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.