czwartek, 26 maja 2011

BRUSH IT !

No i zbyt wielkiej niespodzianki nie było. Płytka nie chciała z nami współpracować. Ściślej rzecz ujmując to współpracowała, ale sama ze sobą. Najprawdopodobniej przyczyną był brak dokładności ścieżek oraz nieprecyzyjne połączenia. Po sprawdzeniu schematów przygotujemy nową, uważniej pilnując dokładności.

Pomimo tej pozornej porażki, dzisiejsze prace przerodziły się w eksplozję twórczości, której efektem było pokrycie wszystkich ścieżek cyną (gdyż w akcie desperacji postanowiliśmy w ten sposób upewnić się co do połączeń :))








Okazało się bowiem, iż topnik w żelu idealnie się do tego nadaje, i jeszcze poważniej zaczęliśmy traktować jego przydatność w pracach lutowniczych :)))

Płytka PCB

Chcieliśmy koniecznie przenieść cały ten nasz układ sterowania dwoma silnikami za pomocą kontrolera analogowego do jednego, zwartego układu na płytce miedzianej. Przyznam szczerze, że optymalne rozplanowanie ścieżek dostarczyło nam nie lada kłopotów i zajęło trochę czasu. Po części z braku doświadczenia w tej materii, gdyż zapewne dało się to zrobić szybciej i lepiej ;) tak czy inaczej, powstał projekt układu, który przypadkowo zgrał się w czasie z datą urodzin jednego z twórców projektu, stąd okolicznościowa forma płytki :)))

Schemat:
(lustrzane odbicie opisów nie powinno dziwić :))











Zestaw "MŁODY WYTRAWCA PŁYTEK" :)))









Najpierw należy przetrzeć warstwę miedzianą drobnym papierem ściernym aby oczyścić ją z większych zabrudzeń. Płytkę potem należy odtłuścić, najlepiej za pomocą detergentów dostępnych w kuchni ;) Na tak przygotowaną płytkę chcemy nanieść trasy ścieżek układu.
Z pomocą opisów znalezionych w sieci postanowiliśmy przenieść ścieżki na płytkę metodą termiczną. Innymi słowy, wydrukowany drukarką laserową na papierze kredowym schemat,  przykładamy do warstwy miedzi na płytce i przez bawełnianą szmatkę "wprasowujemy" żelazkiem toner w miedź :)

"Wyprasowaną" płytkę wkładamy do wody, aby papier rozmiękł i dał się usunąć. Dzięki temu, po jakimś czasie (nam to zajęło koło 1 godziny) płytka powinna wyglądać mniej więcej tak:








Następnie musimy wytrawić z płytki wszystko to, co nie będzie nam już potrzebne - czyli zostają jedynie pokryte tonerem ścieżki.
Metoda nakładania ścieżek wydaje się być najdokładniejszą, w alternatywie mamy jeszcze ręczne rysowanie markerem odpornym na kwas, i raczej będziemy z niej korzystać przy następnych wytrawianiach. Mimo to, nie obyło się bez chorób wieku dziecięcego i nasze pierwsze ścieżki nie przeniosły się zbyt dokładnie - poprawialiśmy je więc markerem, co zresztą będzie widać na zdjęciu już wytrawionej płytki :))))

Do trawienia użyliśmy nadsiarczanu sodu B327. Załatwił sprawę szybko i bezboleśnie :)) Dodatkowo nie jest on druzgocąco toksyczny, co nas szczególnie uradowało po tym, jak zaczęliśmy grzebać paluchami w kuwecie z roztworem przy oglądaniu procesu trawienia :)

Oto efekt:

(jak widać, nie wszystkie otwory jeszcze są nawiercone)

STEROWANIE ANALOGOWE

A oto nowy zawodnik w grze ! :)

Zawodnikiem jest joystick analogowy który posłuży nam do wydawania pierwszych poleceń platformie.
Trzeba jedynie skomunikować istniejący już mostek H na chip'ie L298N podłączony do Arduino, z naszym joystick'iem.



W tym celu popełniliśmy taki oto schemacik:



Mamy zatem całość zebraną razem. Jak widać na schemacie, podłączenia chip'u L298N do Arduino i do silniczków pozostały bez zmian (porty Digital można zamieniać miejscami, co będzie jeszcze miało miejsce przy projektowaniu płytki miedzianej PCB, by uzyskać najbardziej optymalne rozmieszczenie ścieżek). Port kontrolera analogowego ma 15 pinów, my będziemy teraz potrzebowali jedynie 6 z nich:
Pin 1, połączony z pinem 9 chip'u L298N podłaczamy do "mniejszego" zasilania - czyli do 5V w Arduino.
Pin 3 łączymy z Analog 0 w Arduino i poprzez opornik 10k odprowadzamy do uziemienia (GND).
Pin 6 łączymy z Analog 1 w Arduino i poprzez opornik 10k również odprowadzamy do uziemienia.
Piny 4,5 i 12 idą bezpośrednio do uziemienia.

Udało nam się to wszystko podłączyć, ułożyć w stercie na platformie i przeprowadzić pierwsze, całkowicie kontrolowane przez operatora próby jezdne :))))

IMP-OS-01 HBridge 2M

Ogólny ogląd IMP'a :)

Podczas montażu wciąż zadawaliśmy sobie pytanie: Czy to w ogóle pojedzie ??
Adam przygotował oprogramowanie sterujące które wgramy do Arduino (swoją drogą jest to proces całkiem łatwy, wystarczy kabel USB podłaczony do komputera i konsola dostępna na stronie Arduino).

Pierwszy kod miał za zadanie po prostu uruchomić silniki. Sekwencja 2 sek. w przód, 2 sek. pauzy i 2 sek. w tył była wystarczająca do sprawdzenia poprawności połączeń. Wiadomo było, że będziemy potrzebować kontroli nad obrotami obu kół niezależnie, więc był to tylko proces przejściowy i sprawdzający.


 Jak widać, opis każdego przewodu był dla nas dość istotny :) Jak już wspominałem, nie jesteśmy specjalistami w dziedzinie elektroniki, więc każda pomoc w ogarnięciu tematu była konieczna.

PROGRAMOWANIE UKŁADU JEZDNEGO - ciąg dalszy....



 Montujemy schemacik na naszej płytce roboczej......












....i łączymy z częścią jezdną :)
Żeby wyeliminować wielką i nieporęczną płytkę roboczą, postanowiliśmy przenieść cały układ H-Bridge na osobną płytkę. Wykorzystaliśmy do tego gotową płytkę z naniesionymi ortogonalnie niewielkimi ścieżkami, co znacznie ułatwiło nam pierwsze kroki w stworzeniu własnego układu scalonego :) Podłączylismy go oczywiście w ten sam sposób jak poprzedni:

PROGRAMOWANIE UKŁADU JEZDNEGO

Mamy już układ jezdny, który jeszcze nie potrafi jeździć.
Zabieramy się zatem za przygotowanie oprogramowania sterującego dwoma silnikami.
W internecie pełno jest schematów H-Bridge z których można brać przykład. Nasz schemat bazuje na chipie L298N, a wygląda on tak:
Jak widać, chip L298N ma 15 pinów.
Piny 2 i3 podłączamy do lewego silniczka, piny 13 i 14 do prawego.
Piny 1, 8 i 15 to uziemienie (w Arduino oznaczone jako GND).
Pin 4 to "silniejsze" zasilanie przekazywane na silniki (w naszym przypadku będzie to 2x6V, czyli 12V - tymczasowo jest 5V ale to się zmieni).
Pin 9 to zasilanie układu sterującego ( gdy zasilanie silników zmienimy na większe, wtedy układ sterujący podłączymy do 5V )
Piny 5,7,10 i 12 umieszczamy w Digitalach (można wybrać sobie dowolne porty, trzeba będzie jednak potem wskazać urządzeniu które z nich wybraliśmy)
Piny 6 i 11 również umieszczamy w Digitalach na Arduino, lecz tym razem wybieramy jedynie z tych oznaczonych znakiem ~.

P.S. W przypadku, gdyby nasz blog był czytany przez osoby znające się na elektronice w stopniu większym niż żenujący (czyli powyżej naszego obecnego zrozumienia tematu :) ) prosiłbym o wyrozumiałość i nie rwanie sobie włosów z głowy oraz potraktowanie naszych wyjaśnień i toku rozumowania jako procesu poznania zjawisk elektroniki od podstaw. Nadmienię, iż nie posiadamy doświadczenia w tej dziedzinie i większości dowiadujemy się na bieżąco :)))

UKŁAD JEZDNY

 Początkowo ograniczyliśmy się do podstawy wykonanej z 3 warstw kartonu modelarskiego, który zapewnił nam dość dobrą sztywność a zarazem niewielką wagę konstrukcji. Ostatecznie planujemy wykonanie tej części z trwalszego materiału (aluminium, stal, itp)

 Dwa silniczki modelarskie DC 6V (w zestawie z kołami do modeli). Jak widać na zdjęciu, mocowanie nie zapewni może idealnej stabilności osi :), jednak na tym etapie nie jest to priorytet. Przy użyciu stalowej konstrukcji, stałe i pewne zamontowanie silników nie będzie problemem - to jednak później :)

Aby ograniczyć długość kabli przy przyszłych podłączeniach, wycięto dwa otwory skracające drogę ze spodu platformy do "nadwozia".

Od spodu, na potrzeby prób i testów, przymocowano jedynie wygięty pręt, pełniący rolę trzeciego "koła wleczonego"

POCZĄTEK PRAC

 Stanowisko pracy gotowe......:)












 Pierwsze elementy dostarczone......:)












Najpierw jednak potrzebny nam będzie układ jezdny, bo głównym założeniem jest, aby nasz IMP potrafił poruszać się (początkowo dzięki sterowaniu zewnętrznemu, a docelowo sam, bez sterowania).

Zaczynamy!

Witamy i zapraszamy do przyjrzenia się naszemu przedsięwzięciu.

IMP-OS jest platformą opartą o Arduino Uno i jest projektem rozwojowym, rozpoczętym w celu poznania możliwości jakie daje ten układ.

Blog ten będzie miejscem w którym chcielibyśmy podzielić się doświadczeniami zdobytymi podczas budowania IMP'a oraz dokumentacją procesu budowy i programowania.

Zapraszamy do lektury, dyskusji oraz pytań i sugestii :))

Autorzy: Adam Sadowski & Tomasz Janowski