wtorek, 26 listopada 2013

USBasp - Szybkie dodanie reguły.


Dodawanie reguł może na początku sprawiać trudności. Żeby nie musieć grzebać po folderach zrobiłem "driver" do USBasp.

Step-by-step:
  1. Ściągamy plik driver i plik 99-usbasp.rules
  2. Klikamy prawym na ściągnięty plik driver prawym klawiszem myszki, wybieramy "właściwości → prawa dostępu" i zaznaczamy uruchamianie jako program.
  3. Uruchamiamy driver w terminalu* i podajemy hasło. (Na Unity wystarczy kliknąć dwa razy w driver i wybrać uruchom.)
  4. Cieszymy się USBasp bez roota :)

Zaznaczamy "uruchamianie".



Żeby uruchomić plik driver w terminalu najprościej:
→ Wchodzimy do katalogu do którego pobraliśmy driver i 99-usbasp.rules
→ Klikamy prawym w tło folderu i wybieramy  "Otwórz w terminalu"
→ Wpisujemy ./driver


ps. Po "instalacji" (która jak ktoś się przyjży plikom polega na przekopiowaniu 99-usbasp.rules do odpowiedniego folderu) możemy już wyrzucić oba pliki z katalogu Pobrane.

poniedziałek, 25 listopada 2013

Off top - Oddawanie ciepła.

Dziś krótko i wstępnie o problemie: Spalić, czy nie spalić (tranzystora) oto jest pytanie.

Odpowiedź jest prosta, natomiast sprawienie by tranzystor się nie spalił jest trochę bardziej uciążliwe. Powodem grzania się tranzystora będzie spadek napięcia na nim dla tranzystorów bipolarnych oraz prąd płynący przez tranzystor dla mosfetów.

Dla tranzystora bipolarnego:
→ Ściągamy notę katalogową (Datasheet) tranzystora dawaną przez producenta.
→ Sprawdzamy czy nasze zamiary (dopuszczalne napięcie i prąd) są w ogóle możliwe.
→ Liczymy spadek napięcia na tranzystorze oraz prąd jaki przezeń chcemy przepuścić. Liczymy z tego moc.

Dla tranzystora polowego:
→ Ściągamy notę katalogową (Datasheet) tranzystora dawaną przez producenta.
→ Sprawdzamy czy nasze zamiary (dopuszczalne napięcie i prąd) są w ogóle możliwe.
→ Liczymy prąd jaki chcemy przepuścić przez tranzystor. Liczymy P=(I^2)*Rds. Tu trzeba uważać żeby nie przesadzić z naszym Rds - podawane jest ono dla poprawnego sterowania tranzystorem, dla określonych warunków. (Typowo dla 10V, albo dla 5 dla tranzystorów z "L" w nazwie.

Mając już moc w dla obu rodzajów tranzystorów idzie tak samo. Różnice są tylko w rodzajach obudów.

Obliczenia temperatury dla tranzystorów nie przystosowanych do radiatorów.
→ Liczymy Temperatura=Opór_Cieplny_Obudowa_Otoczenie*Obliczona_Moc ( T=Rj_a*P ) i sprawdzamy czy nie jest to wyższa wartość niż maksymalna możliwa temperatura układu.
Uszczegóławiając, ponieważ datasheety są po angielsku. W tabeli: THERMAL CHARACTERISTICS szukamy najpierw Thermal resistance, junction to ambient które wstawiamy jako Rj_a we wzorze na temperaturę. A potem sprawdzamy czy nie jest wyższe/równe (max) Junction temperature. Ogólnie krzem nie lubi temperatur powyżej 120*C , jednak producenci tranzystorów podają tutaj około 150*C.

Obliczenia dla tranzystorów przystosowanych do radiatorów.
→ Liczymy Temperatura=Suma(Opory_cieplne)*Obliczona_Moc
Nasza suma oporów cieplnych składać się będzie z:
→ Oporu radiatora, oporu złącze-obudowa, oporu obudowa-radiator - wersja z radiatorem (Radiator o znanych parametrach pewnie będzie kupiony w Polsce, więc nie ma problemu, natomiast w datasheecie tranzystora Opór złącze-obudowa to R junction_case, a opór obudowa_radiator to R_junction_sink)
→ Oporu złącze-obudowa + obudowa otoczenie - wersja bez radiatora.
→ Znów sprawdzamy czy nie przekroczyliśmy temperatury.

Trzeba jednak uważać - moc wytracana na mosie to nie tylko prąd przez niego płynący, to także prąd ładujący bramkę przy PWM'ie, który jak się może okazać też może być znaczący, a wynika z pojemności kanału.
Ale o tym może kiedy indziej.

niedziela, 24 listopada 2013

Stawiamy system!


Będziemy bawić się elektroniką w oparciu o procesor Atmega 8, programator USBasp i środowisko eclipse. Zaczniemy od zera – czyli od przygotowania stanowiska od strony komputera.

Linuks, dokładniej Ubuntu, dokładniej Xubuntu 12.04 LTS będzie systemem z wyboru, używam go codziennie i część komputerowa jest przeze mnie sprawdzona. Przy okazji jest darmowy i wygodny. Uprzedzając pytanie: czemu nie Windows – odpowiadam, wg mnie jest mniej wygodny, najlepszym przykładem jest chyba próba podłączenia najprostszego urządzenia pod USB i „Windows driver hell”.

Potrzebne nam będą: Pendrive 1GB, internet i jakieś 2 godziny wolnego czasu.

Naszego Pingwinka najlepiej ściągnąć tu: http://czytelnia.ubuntu.pl/index.php/2012/10/31/xubuntu-mysi-remix-12-10pl/ , jest to wersja spolszczona, z większością pre-instalowanych programów. Jeśli mamy komputer na którym zdecydowaliśmy się tylko na Linuksa – wystarczy nam teraz zrobić LinuxLive USB, podłączyć do USB w komputerze i instalować. Jeśli chcemy jednak mieć 2 systemy – Windows, oraz Linuks, można stworzyć nową pustą partycję, jednak nie jest to konieczne. Po poprawnej instalacji, na starcie komputera będziemy pytani przez 10 sekund który system wybrać. (Program który dokonuje tej grzeczności to GRUB – warto to pamiętać jeśli dodatkowe czekanie jest dla nas zbyt męczące, by je usunąć trzeba zmienić jeden wpis w jednym z plików systemowych.)

Tworzenie LiveUSB:
Ściągamy LiveUSB creator na Windowsa, oraz instalujemy go tak samo jak zawsze instalowaliśmy każdy inny program. Uruchamiamy go, po czym pokazuje się ładne okno kreatora dysku uruchomieniowego.
Tu ściągamy kreator dysku uruchomieniowego.

Krok 1: Włożenie nośnika USB do komputera i wybranie go. Po Wykonaniu każdego z kroków zapala się kolejne zielone światło. Osobiście zawsze wybieram pendrive który mogę wyczyścić.
Krok 2: Wybranie ściągniętej wcześniej dystrybucji Xubuntu.
Krok 3: Wybranie Live Mode
Krok 4: Opcje:
→ Ukryj utworzone pliki na pendrivie. Dzięki temu jest szansa że niechcący nie usuniemy świeżo zainstalowanych plików grzebiąc na pendrivie.
→ Sformatuj pendrive. Nie jest konieczne, ale warto raz na jakiś czas sformatować pamięć.
→ Pozwól na włączanie Linuksa na pendrivie z Windowsa. Dzięki tej opcji możemy włączyć Xubuntu prosto z pendriva jak program w Windowsie i obejrzeć przed instalacją jak wygląda system. System można przetestować podłączając pendrive na starcie komputera i uruchamiając z niego system.
Krok 5: Utwórz


Okno kreatora.
Widać kolejne Kroki i zielone światła.

Instalacja:
Najpierw musimy wybrać bootowanie z usb – czyli zmienić kolejność, w jakiej komputer sprawdza właściwie z jakiego nośnika ma się włączyć. Tak samo dawno, dawno temu zmieniało się bootowanie by komputer sprawdzał wpierw czy czasem nie włożyliśmy dyskietki startowej sygnalizując chęć instalacji Windows 95.
Podczas włączania komputera mamy parę screenów, zwykle białą czcionką na czarnym tle, w ostatnim pasku na dole ekranu powinien pojawić się komunikat informujący jaki klawisz wcisnąć by wejść w boot menu – zwyczajowo jest to F12. Po wejściu w boot menu wybieramy jako „First Boot device” USB-HDD – czyli dysk twardy podłączony do USB. To samo można wykonać również w inne sposoby jednak wszędzie polega to końcowo na tym samym: na wybraniu pierwszej rzeczy do bootowania komputera.

Następnie możemy podłączyć nasze Live USB do komputera i ponownie go uruchomić. Po poprawnym wyborze first boot device na USB-HDD automatycznie włączy się instalator Linuxa. Instalacja jest naprawdę bardzo prosta i ciężko tu cokolwiek przeoczyć. By być tego jednak pewnym warto zwrócić uwagę na parę rzeczy.

  1. Wybór języka polskiego w pierwszym oknie.
  2. Wybór kodeków w drugim oknie.
  3. Warto połączyć się z internetem by na bieżąco ściągnąć aktualizacje. Jednak to czego robić nie warto to „dodawać hasło do nowej bazy kluczy” jeśli to zrobimy komputer za każdym razem będzie nas prosił o hasło przed podłączeniem się do internetu, co bywa upierdliwe. Usunięcie tego zapytania jest równie upierdliwe, więc najwygodniej nie tworzyć sobie problemu.
  4. Gdy będziemy wybierać sposób instalacji, mając zainstalowany system Windows możemy zainstalować Linuksa wybierająć „Zainstaluj Xubuntu obok systemu Windows” co pozwala na bezproblemowe przydzielenie pamięci pod system Linux bez potrzeby formatowania dysków etc. pod warunkiem posiadania paru GB wolnego miejsca na dysku.
    Możemy też wybrać odrobinę trudniejszą wersję, czyli samemu pobawić się w wybór na co ile przeznaczyć miejsca i które miejsca ewentualnie sformatować – ta opcja niesie za sobą ryzyko, możemy niechcący zaznaczyć do formatowania np. partycję z systemem windows, lub partycję na której przechowujemy zdjęcia.

Po udanej instalacji komputer automatycznie jest restartowany (za zgodą użytkownika). W momencie gdy wyłączy się instalator wyjmujemy Live USB żeby czasem znów nie włączać instalatora od początku. Wybieramy system Xubuntu w GRUBIE (oknie do wyboru który system włączyć), dokładniej wybieramy pierwszą linijkę, ponieważ mimo posiadania jednego systemu linuksowego pojawi się kilka możliwych opcji uruchomienia go. System Windows, który jest obok Linuxa zwykle jest na końcu listy.
Po włączeniu systemu warto teraz poświęcić parę minut na kliknięcie w ikonę w lewym górnym rogu która poprowadzi nas przez dodatkowe instalacje (np. komunikatora pidgin, czy dodatkowych kodeków).

Teraz czas nam zainstalować potrzebne nam programy i pakiety. Najpierw eclipse.
Najwygodniej przeprowadzić większość instalacji z poziomu terminala. Dla użytkowników systemu Windows brzmi to pewnie przedpotopowo, nic bardziej mylnego – jest to po prostu wygodne narzędzie w celu modyfikacji systemu, a będziemy musieli takich dokonać.
  1. Instalacja AVR-GCC toolchain.
    Kopiujemy poniższą linijkę:
     
    sudo apt-get install gcc-avr binutils-avr gdb-avr avr-libc avrdude

    Wchodzimy w terminal (np. skrótem klawiszowym super+t (super == znaczek windows na klawiaturze, klawisz ten bardzo wygodny do skrótów klawiszowych. Trochę nie rozumiem czemu w ogóle nie korzysta się z niego w Windowsie) Można też: menu → akcesoria → emulator terminala (menu jest w lewym górnym rogu, jest to znaczek białej myszy na niebiskim tle). Wklejamy linijkę skrótem klawiszowym ctrl+shift+v. Klikamy enter, wpisujemy hasło, znów enter i pakiety się instalują. Mogą nas ewentualnie spytać (T/n) czy chcemy kontynuować, wtedy wpisujemy „T” i klikamy enter.
    Kolejne słowa komendy oznaczają:
    sudo – z uprawnieniami administratora. Tylko administrator ma prawo coś zmieniać związanego z systemem, nie warto tego zmieniać, chroni to użytkownika przed jego własnym nieświadomym działaniem które mogło by mu zaszkodzić. Wpisanie sudo i hasła (tak samo su i hasła) oznacza że jesteśmy świadomi tego co mamy zamiar wykonać.
    apt-get – jest to pakiet służący do zarządzania aplikacjami.
    Install – informujemy ww. pakiet że chcemy zainstalować coś nowego
    gcc-avr … avrdude – informujemy co chcemy zainstalować.
    Całość można zrobić w sposób okienkowy. Wchodzimy:
    menu → system → synaptic manager pakietów , wpisujemy kolejno w szukajce każdy pakiet, haczymy go do instalacji i klikamy zastosuj. Takie wyszukiwanie pakietów trwa jednak znacznie dłużej.
  2. Instalacja eclipse.
    Możemy po prostu wpisać:
    sudo apt-get install eclipse
    Wpisać hasło i dać enter.

    Możemy też posłużyć się „Centrum oprogramowania Ubuntu”. Centrum to pozwala na instalację znacznej ilości oprogramowania, również płatnego. Wyszukujemy oprogramowanie za pomocą szukaj, wybieramy program z listy i klikamy instaluj po upewnieniu się że to właśnie on. Bywa to wygodniejsze od terminala – bo nie musimy znać dokładnej nazwy, wystarczy że znamy jej część, lub fragment opisu, a oprogramowanie jest promowane.
  3. Instalacja pakietu AVR-eclipse, oraz pkg-config

    Mając środowisko (profesjonalne IDE) musimy je jeszcze dostosować do własnych potrzeb w tym celu musimy zainstalować pakiet AVR-eclipse który pozwoli nam na wygodne pisanie programów pod AVR a w tym Atmegę 8.
    Przyznam że wybór instalacji nowych pakietów w Eclipse jest mało oczywisty. Włączamy eclipse
    menu→programowanie→eclipse wybieramy gdzie chcemy żeby przechowywane były nasze programy (czyli gdzie ma być nasz workspace) mi odpowiada ścieżka docelowa. Trzeba pamiętać by zaznaczyć by program nas o to więcej nie pytał, gdyż jest to męczące.
    Następnie mając już uruchomiony program wchodzimy w: help → Install new software... .
    W polu „work with” wklejamy:
    http://avr-eclipse.sourceforge.net/updatesite
    Pojawi nam się opcja do zaznaczenia „avr-eclipse plugin” którą zaznaczamy, dalej już klikamy next, zgadzamy się na wszystko, a plugin już się zainstaluje.
    Chcemy dodać jeszcze pkg-config, w takim razie znów wchodzimy w help→ install new software , tym razem dodajemy jednak: http://petrituononen.com/pkg-config-support-for-eclipse-cdt/update . Na razie nie będzie on przydatny, jednak gdy przyjdzie czas, będą chęci i umiejętności obsługi usb, lub może interface'u graficznego (na przyszłość polecam gtkmm pod c++) będzie on dobrym przyjacielem.

    Okno dodawania nowych pakietów.


  4. To już prawie wszystko by mieć w pełni funkcjonalny projekt w eclipse, czemu prawie? Otóż żeby wygodnie programować musimy zrobić ostatnią rzecz – umożliwić eclipse używanie programatora. Słowem wyjaśnienia: Linuks jest nieufny do urządzeń podłączanych na usb których nie zna, z dotychczasowymi ustawieniami nie użyjemy programatora bez uprawnień administratora (inaczej root'a). By to zmienić będziemy musieli dodać nową regułę. Brzmi zawile, jednak nie jest trudne w realizacji.

    Wchodzimy w terminal:
    super+t.
    Wpisujemy
    cd // cd oznacza poruszanie się po katalogach w koputerze, a // oznacza „przejście na samo dno” katalogów. Wpiszemy sudo cd /etc/udev/rules.d dzięki czemu wejdziemy do katalogu rules.d w katalogu udev w katalogu etc z uprawnieniami administratora. Tu potrzebny nam będzie edytor tekstu. Wpiszemy więc sudo gedit usbasp.rules by stworzyć plik usbasp.rules za pomocą edytora tekstu gedit z uprawnieniami administratora. Wkleimy tam:


    # USBasp programmer


    ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", ATTR{product}=="USBasp", GROUP="users", MODE="0666"

    Zapisujemy i wychodzimy. 
     
    Ostatnie dwie komendy na dziś.sudo usermod -a -G users twoja_nazwa_użytkownika i sudo reload udev. Pierwsza komenda dodaje nas do grupy users, która może korzystać z USBasp (min. to mówi komputerowi plik który przed chwilą zrobiliśmy) pamiętaj by zmienić twoja_nazwa_użytkownika na właściwą nazwę ;] w drugiej komendzie mówimy żeby udev zostało przeładowane. Jak pamiętamy to właśnie w folderze udev dodawaliśmy nasz usbasp.rules.

    Tyle w dzisiejszym (przydługim i mocno treściwym) odcinku. W następnym skorzystamy z dzisiejszej pracy, czyli stworzymy nowy projekt w Eclipse pod AVR. Może w międzyczasie wstawię krótką wzmiankę o tym co warto jeszcze dodatkowo zainstalować lub zmienić w swoim świeżo postawionym systemie.


    Dodatkowe linki:
    O co chodzi z tym bootowaniem: Wiki
    Tutorial jak wybrać kolejność bootowania: BIOS
    Strona pakietu AVR-eclipse: avr-eclipse plugin

czwartek, 21 listopada 2013

Bo wszystko trzeba zacząć!

Z doświadczenia wiem że nietrudno zaczyna się n → ∞ rzeczy. Większość z nich już w pierwszym tygodniu trafia na półkę, skąd uratować może je tylko wielkie wiosenne sprzątanie. Mam nadzieję że tak nie będzie z tym blogiem.
Chcę przedstawiać tu w możliwie najprostszej postaci jak warto jest rozpoczynać przygodę z elektroniką, programowaniem.  Blog będzie blogiem :P

"...dobrze wiem gdzie najłatwiej się potknąć oraz jaki jest zapach spalonego tranzystora..."  Podtrzymuję i pisząc będę o tym pamiętał. Postaram się pisać rzeczy, które chciałbym sam przeczytać, tak często jak będę miał coś ciekawego do napisania oraz czas.