terasic DE0-Nano – baza wiedzy o Cyclone IV od Altera

Układy FPGA od bardzo dawna mnie fascynowały, ale zawsze brakowało motywacji do rozpoczęcia nimi zabawy. Zupełnie inny poziom, niż mikrokontrolery – trzeba pamiętać po podstawach cyfrówki, ogarniać dość kobylaste oprogramowanie, liznąć Verlilog lub podobny język programowania oraz pamiętać o zboczach, czasach i innych, które w uC po prostu są zsynchronizowane.

Pierwszy tip – dajcie sobie spokój z zabawą w Control Panel. Niestety z nowymi systemami operacyjnymi (głównie 64bit) oraz kolejnymi wersjami Quartusa (IDE programistyczne Altery) niekoniecznie dobrze radzi sobie to narzędzie. Wywala błędy bibliotek DLL, stwierdza błędne ścieżki dostępu, etc. Przeczytałem stos forów dyskusyjnych dla narzędzia, które pozwala pomigać diodami. Bez sensu.

terasic_de0-nano

Zdecydowanie lepiej skorzystać z gotowych przykładów, które są dostępne na stronie Altery: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593&PartNo=4 link DE0-Nano CD-ROM – w środku jest katalog Demonstration z różnymi przykładami – kilka kliknięć i dany przykład ląduje na płytce prototypowej.

fpga-de0-nano

Inne miejsca z przykładami?

Wrzuciłem na FB info, że udało mi się uruchomić zestaw i zaczynam z nim swoją zabawę – w odpowiedzi Mateusz wrzucił link:

http://opencores.org/or1k/ORPSoC

może macie inne ciekawe linki/przykłady wykorzystania platformy DE0-Nano (Cyclone® IV EP4CE22F17C6N FPGA)? Podzielcie się!

STM32 #1 – pierwsze kroki w środowisku mbed (STM32F429I-DISC1), czyli IoT na blogu

Jestem oczarowany możliwościami środowiska STM32. Oprócz IDE, które są udostępniane nieodpłatnie, istnieje również platforma ARMmbed, która udostępnia system operacyjny, środowisko programistyczne oraz narzędzia społecznościowe dla programistów. W zasadzie po kilku kliknięciach otrzymuje się gotowe i działające programy.

W poprzednim wpisie pisałem o prostym miganiu diodą na podobnym do niniejszego zestawie – również opartego o mikrokontroler STM32F429ZI – tym razem w innym ujęciu pobieram wartości z bufora żyroskopu i rzucam je na LCD. Do niniejszego projektu wykorzystałem gotowy przykład pokazujący możliwości ekranu dotykowego.

stm32f429i-disc1

Praca w środowisku ARMmbed

W zasadzie niewiele jest tutaj do napisania – narzędzie jest mega proste i intuicyjne, choć w pierwszym momencie można odnieść wrażenie, że wszędzie dużo. Co należy zrobić, żeby móc z tego korzystać?

  1. zarejestrować się na https://www.mbed.com/en/
  2. zweryfikować czy się posiada jedną z obsługiwanych płytek: https://developer.mbed.org/platforms/
  3. w przypadku STM32 po podłączeniu pojawia się wirtualny dysk z linkiem identyfikującym urządzenie (screen poniżej)
  4. otworzyć środowisko programistyczne (prawy róg ekranu: COMPILER)
  5. zaimportować/stworzyć nowy program
  6. po zakończeniu pracy kliknąć COMPILE – wygeneruje się plik .bin, który wystarczy przeciągnąć na wspomniany wcześniej wirtualny dysk
  7. oglądać efekty swojej pracy 🙂

TIP: kilka razy zdarzyło mi się, że x razach wgrywania nowych wersji programu płytka STM32 przywieszała się – np wyświetlacz wywalał błąd inicjalizacji. Reset nie pomagał (prawdopodobnie nie działa na wyświetlacz / rejestry wyświetlacza). Skuteczne było odłączenie płytki prototypowej od zasilania i ponowne podłączenie.

mbed-dysk

(wspomniany wyżej wirtualny dysk, plik dodający płytkę prototypową do clouda mbed oraz treść tego pliku)

oryginalne-mbed

(widok IDE w cloudzie na ARMmbed)

Pakiet ARMmbed w chmurze

Niezłym sposobem na spopularyzowanie platformy jest też dodanie mechanizmów społecznościowych oraz repozytoriów kodu. Kilkoma klikami można ‚wkomitować’ zmiany, podejrzeć changeloga czy też opublikować efekty swojej pracy. Przykład, który opisuję w niniejszym wpisie robi dwie rzeczy – po kliknięciu w ekran wyświetla współrzędne kliku oraz aktualne wartości w rejestrach żyroskopu. Można go pobrać (zaimportować) stąd:

https://developer.mbed.org/users/auditlog/code/DISCO-F429ZI_LCDTS_and_GYRO_test/

oryginalne-mbed2

Udanych testów i zabawy.

STM32 #0 – czyli pierwsze starcie z STM32F429 i blink LED

Właśnie zaczynam przygodę z programowaniem STM32 – od razu rzucam się na głęboką wodę, wybierając zestawy Nucleo-144 (oparte o STM32F429ZIT6 płytki NUCLEO-F429ZI oraz STM32F429I-DISC1). Postaram się (wraz z postępami w nauce) wrzucać kolejne działające przykłady. Póki pod wskazane płytki nie pojawi się wsparcie na mbed, to przykłady będą uruchamiane na System Workbench for STM32.

Pierwszy program jest led-migaczem, czyli nic niezwykłego. Mimo wszystko napisanie go zajęło mi blisko 3 godziny, a to głównie przez to, że potrzebowałem zrozumieć ideę działania, prześledzić kilka manuali oraz wyłapać różnice w nazewnictwie poszczególnych elementów w bibliotece dedykowanej dla w/w układu. Polecam na wstępie źródła z kursem: forbot.pl (oparte o płytkę z układem STM32F103), armprogramming.com (przykłady oparte o STM32F4) oraz kopalnię wiedzy stm32f4-discovery.com.

Uwagi: delay to zwykła pętla; zamiast Pin_0 można użyć Pin_7 lub Pin_14 na plytce Nucleo.

#include "stm32f4xx.h"
#include "stm32f4xx_gpio.h"

GPIO_InitTypeDef GPIO_InitStructure;

void GPIO_Initialize(void);
void delay(int);

int main(void)
{
GPIO_Initialize();
while (1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_0);
delay(1000000);
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
delay(1000000);
}
}

void GPIO_Initialize(void){
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); // wlaczenie taktowania portu B
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // zainicjowanie pinu 0 w porcie B
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; // ustawienie pinu na wyjście
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; // ustawienie typu push/pull
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; // ustawienie taktowania magistrali
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; // odlaczenie 'podciagania' pinu
GPIO_Init(GPIOB, &GPIO_InitStructure);
}

void delay(int time)
{
int i;
for (i = 0; i < time; i++) {}
}

(zestawy zakupiłem na Kamami.pl, gdzie są dostępne w dość przystępnych cenach – około 150zł każdy)

Po #MakerDay #1 w Warszawie

Udało się. Razem z mega fajną ekipą zorganizowaliśmy w Warszawie w niedzielę mikołajkową event dla Makerów. Bawiliśmy się elektroniką, robotami, drukiem 3D, craftem, piłowaliśmy w drewnie, robiliśmy skórzane bransoletki oraz malowaliśmy figurki ludzików do rekonstrukcji. Poniżej zamieszam kilka fotek z opisem aktywności.

Na pierwszy ogień poszedł Intel Edison. Na początku byłem trochę sceptycznie nastawiony do tej platformy, ale niepotrzebnie. Ma kilka dziwnych rozwiązań, jednak to szaleństwo ma też swoje zalety, a co za tym idzie można całkiem niezłe rzeczy na tym budować. Na bardzo małej płytce (mniej więcej wielkości Arduino Micro) mieści się dwurdzeniowy Intel Atom, koprocesor matematyczny, bluetooth (ver4) oraz WiFi. Do tego mamy do dyspozycji 4GB pamięci flash oraz 1GB pamięci ram. Wypas, prawda?:)

intel edison

intel edison

intel edison

Odwiedziło nas też trochę robotów. Głównie sterowane były ze Scratcha, jednak i wersje do własnego okodowania (LoFi robot z Arduino) też kręciły się między nogami.

robot

Maszyna do cięcia styropianu, którą zbudowałem, żeby wyciąć elementy ozdobne na potrzeby eventu, robiła też niezłą furorę. Niby proste narzędzie, a tyle frajdy sprawia ludziom. Na kolejne wydarzenie będzie to dużo lepsza konstrukcja.

DSC_3537

styropianowe elementy

Mieliśmy różnych pomocników i osoby chętne do zabawy. Starszych i młodszych, ale również czworonożnych.

#DanutaTheDog

wycinanie w sklejce

DSC_3403

ostatni usmiech Marcina

Były też warsztaty, na których wszyscy chłonęli wiedzę.

warsztaty Scratch

wspólne budowanie

warsztaty

warsztaty

malowanie figurek

warsztat

A na koniec całą ekipą cykaliśmy sobie foty.

fablaby polskie

ekipa Makerspace

I na sam koniec chciałbym podziękować – kolejność (prawie) przypadkowa:

Andrzejowi Ch. za ogrom pracy, którą włożył w przygotowania MakerDay oraz za codzienne motywowanie do kolejnych kroków (bez Ciebie nie bylibyśmy tutaj, gdzie jesteśmy).

Alexandrowi – za dużo dobrych słów, angażowanie środowiska i mentalne wsparcie (oraz ogarnianie przez 5h dzieciaków przy Makey Makey).

Iwonie – za super fotki i ratowanie wielu sytuacji, których po prostu nie widziałem.

Kandze – za olbrzymią pracę przy grafikach, rollupach, aranżacji wnętrza, banerach i innych cudach wizualnych. Oraz za natchnienie na maszynę do cięcia styropianu.

Kasi – za pomoc w przygotowaniach i masę energii włożonej na warsztatach. Mimo świeżej znajomości uwielbiam Cię!

Pozytywnemu – za bardzo pozytywne podejście i ogarnianie w sposób autonomiczny wielu tematów jednocześnie.

Kweintzowi – za 110% profesjonalizmu i konkretne podejście do wszystkich rozterek, które miewamy (oraz Jeffowi za wsparcie Kweintza).

Pablowi – za mega ogarnięcie tematu warsztatów, przygotowania do nich i poprowadzenie grupy.

Łukaszowi i Justynie W. – za ziomalstwo i pomoc w każdej potrzebie oraz bardzo pozytywne podejście do życia.

Andrzejowi B. – za to, że wierzy w moje szalone pomysły.

Zibiemu, Jankowi i Maćkowi – za świeże podejście, przyjacielskie wsparcie i wszelką pomoc.

Całej ekipie eventowej, Hackerspejsowcom i przyjaciołom za to, że byliście, że pomagaliście i to właśnie dzięki Wam wszystkim ten event udał się tak bardzo. Szczerze kłaniam się w podzięce przed Wami.

No, a na koniec mojej drogiej małżonce Luizie – chciałem podziękować za całą pomoc (szczególnie przy działaniach komunikacyjnych), wsparcie, dzielne etykietowanie wszystkich na imprezie, niekrytykowanie i karmienie mnie, gdy o tym zapominałem w tygodniu przygotowań. Ci, którzy znają Luizę wiedzą jaka to wspaniała osoba, Ci którzy nie znają – dobrze, że nie macie świadomości jak wiele tracicie:)

Wiecej info o evencie:

http://makerday.pl

https://www.facebook.com/MakerspacePolska/

http://makerspace.pl

warsztaty FPGA Xilinx od Kamami – recenzja

Do tej pory nie uczęszczałem na warsztaty dla elektroników, głównie z dwóch powodów: nie miałem potrzeby oraz uważałem, że wszystkiego można się nauczyć z internetu. Po minionym warsztacie odnośnie narzędzi dostarczanych przez Xilinx, a zorganizowane przez Kamami.pl zdecydowanie zmieniłem zdanie i teraz z niecierpliwością będę wypatrywać kolejnych.

Warsztaty odbyły się 17 listopada br. w Warszawie oraz 18 listopada br. w Krakowie. Więcej można znaleźć tutaj: mikrokontroler.pl.

O czym faktycznie były warsztaty?

Głównie o narzędziach, które dostarcza Xilinx produkowany przez Digilent Inc., m.in. Vivado Webpack w wersji 2014.4. Olbrzymi zestaw oprogramowania – kilka naprawdę ciężkich GB, ale faktycznie środowisko robiące wrażenie. Rozwiązania, które przestawiał nam prowadzący mogły być od razu przetestowane na zestawach edukacyjnych Basys 3, oraz mierzone na Analog Discovery i oprogramowaniu WaveForms. Kilka godzin zajęć było bardzo dobrze spożytkowanych. Trzymaliśmy się planu działania, nie spotkało nas wiele niespodzianek „rozwalających” zajęcia (poza złą wersją programu u części uczestników) oraz przeszliśmy przekrojowo przez sporo funkcjonalności.

warsztaty FPGA

Jak były zorganizowane warsztaty?

Tutaj same pochwały należą się dla Kamami.pl. Wszystko sprawnie przeprowadzone, zaś miłym dodatkiem był obiad i kawa z ciastkami przed salą wykładową. mimo kilkunastu osób na sali jeden prowadzący całkiem nieźle ogarniał.

Co bardzo ważne – skrypty, wg których były prowadzone zajęcia były niemal bezbłędne i w 100% odpowiadały temu, co akurat wykonujemy. Chwilami skupiałem się na jakimś elemencie zbyt długo i grupa pognała do przodu. Nic się nie działo złego. Po chwili idąc instrukcją w skryptach można było wszystko nadgonić.

Mimo tego, że warsztaty prowadzone były w języku angielskim, to jednak nie widać było po uczestnikach, że ktoś czegoś nie rozumie lub jest zaskoczony anglojęzycznym prowadzącym. Na początku kilka minut posłuchaliśmy o produktach w/w firmy, ale bez nachalnego sposobu sprzedaży czy marketingowego bełkotu.

Polubiłem FPGA

Od czasów szkoły średniej – a było to blisko 20 lat temu – chodziły za mną układy programowalne, ale nigdy nie miałem serca do rozpoczęcia nauki VHDLa lub Veriloga. Postanowiłem to zmienić. Spodziewajcie się wiec z bliżej nieokreślonej przyszłości więcej info na temat FPGA i pochodnych.

warsztaty FPGA

warsztaty FPGA

ps: wpis powstał z mojej inicjatywy i nie jest materiałem sponsorowanym (jedynie zdjęcia na moją prośbę udostępniło mi Kamami). 

ps2: jak ktoś jeszcze nie słyszał, to zapraszam na makerspace.pl – w Warszawie budujemy przestrzeń, m.in. dla majsterkowiczów i elektroników. Nieelektroników też.

esp8266 oraz nodeMCU w Arduino IDE

Istnieje bardzo prosty i szybki sposób na rozszerzenie funkcjonalności i obsługi środowiska Arduino IDE o nowe płytki. Wystarczy w Ustawieniach wpisać odpowiedni link, poprzez który za pomocą JSONa oprogramowanie pobierze właściwe rozszerzenie.

Dzięki tej operacji Arduino IDE zacznie obsługiwać bezpośrednio moduły esp8266 oraz nodeMCU, które korzysta z ESP.

I krok: dopisanie w ustawieniach właściwego linku (PLIK->PREFERENCJE)

http://arduino.esp8266.com/stable/package_esp8266com_index.json

ustawienia

Oczywiście trzeba zapisać zmiany oraz uruchomić ponownie uruchomić IDE.

II krok: odnalezienie i wybranie „płytek” do zainstalowania

(NARZĘDZIA -> PŁYTA -> MENADŻER PŁYTEK…)

wybór płytki

III krok: po wyborze Menadżera Płytek pojawi się okienko

menadżer płytek

 

Należy wybrać install (w prawym dolnym rogu okienka, tuż ponad zamknij)

Po tych działaniach powinna się pojawić w menu płytek lista nowych układów.

nowe menu

Miłej zabawy. Moduły ESP8266 oraz nodeMCU można za niewielkie pieniądze kupić np tutaj:

https://kamami.pl/moduly-wifi/559667-modul-z-esp8266-nodemcu.html

https://kamami.pl/moduly-wifi/235041-esp-01-modul-wifi-z-esp8266-i-antena.html

MakerFaire Berlin 2015 – fotorelacja i inspiracje

Z miesięcznym opóźnieniem, ale udało mi się usiąść do przygotowania fotorelacji z MakerFaire w Berlinie z 2015 roku. Na wydarzeniu miałem możliwość uczestniczyć tylko przez kilka godzin, nie zobaczyłem wszystkiego dokładnie, ale i tak głowa otworzyła się na kilka fajnych pomysłów. Mam nadzieję, że i Wam zaświta coś ciekawego, a jeśli dojdziecie do wniosku, że warto zrobić coś razem, to zapraszam do kontaktu.

Na wejściu uderzył mnie ogrom wydarzenia. Ponad 100 stoisk różnych wystawców – firm, startupów, pasjonatów, magazynu Make (edycji niemieckiej) oraz „zajmowaczy czasu”, o czym później. W Wiśle jeszcze trochę upłynąć wody musi, niemniej w różnych miastach inicjatywy makerskie działają – w Warszawie zaś budujemy Makerspace Warszawa.

Na dzień dobry natknąłem się na „naprawiaczy”. Ludzi, którzy z pasji do reanimacji popsutych rzeczy zrobili sobie biznes i sprzedawali bardzo fajne zestawy wspierające majsterkowiczów.

manifest naprawiaczy

zestaw naprawczy

Można było znaleźć też kilka rozwiązań dotyczących prostego sposobu nauki i eksperymentowania z elektroniką. Nie wczytywałem się czy takie rozwiązania są dobrze zabezpieczone przed uszkodzeniem elektrycznym. Jeśli tak, to idealne rozwiązanie dla szkół.

zestaw klocków elektronicznych

Wszędzie roboty i modele.

robot - pająk

Stanowiska wystawców poprzecinane były miejscami do realizacji własnych kreacji. Przy każdym oczywiście były osoby wspomagające. Zwróćcie uwagę na środek zdjęcia na drugim planie: bardzo prosty mechanizm przekładni zbudowany na styropianowych kółkach i wykałaczkach.

DSC04516

Można było się również pobawić wysokimi napięciami.

stanowisko magazynu Make

Mały model piszący po piasku aktualną godzinę. Czyszczenie odbywało się poprzez drganie pojemniczka z piaskiem przy użyciu wysokiej częstotliwości i głośnika.

piaskowy zegarek

Gra ze starej lampy.

gra

Zestawy rozszerzające do Arduino i Raspberry Pi. Szczególnie spodobały mi się miniaturowe wersje/klony Arduino.

rozszerzenia do RPi i Arduino

arduino

I znowu roboty – również papierowe.

papierowe roboty

A poniżej jeden z najbardziej uroczych projektów na Maker Faire. Pan Rainer zbudował swojego robota z pasji tworzenia. Wie jak konstruować modele, dołożył do tego elektronikę i wyszła z tego bardzo funkcyjna, interaktywna zabawka. Mega mi się koncepcja spodobała. Więcej w tej tematyce można znaleźć na stronie Wood-Walker. (przepraszam za jakość foto – byłem pochłonięty zabawą)

Wood-Walker

Kolejnym ciekawym projektem była makieta lotniska zbudowana wraz z uczniami przez nauczyciela informatyki. Budowa trwała 5 dni na zajęciach pozalekcyjnych. Z ciekawostek – w Niemczech również nie używa sie Arduino i temu podobnych na lekcjach. Była to inicjatywa oddolna. Mam kontakt do tego nauczyciela i mam nadzieję utrzymywać z nim relacje i w przyszłości zaprosić do Polski, żeby opowiadał jak zrealizował swój pomysł.

lotnisko

Dużo fajnych cuśków.

cuśki 1

cuśki 2

świecące cuśki

No i ja na tle logo Make Magazine oraz FabLabBerlin.

Przemysław Jurgiel-Żyła

Przemysław Jurgiel-Żyła

Po wizycie w Berlinie jeszcze bardziej „zgłodniałem” na takie imprezy. Mam nadzieję jeździć na temu podobne, a przy okazji tworzenia Makerspace Warszawa organizować podobne imprezy w Polsce.

miniaturowa, drewniana stajnia dla koni – #ZuzioweProjekty #1

Zgodnie z obietnicą zaczynam wprowadzać nowe, niekoniecznie elektroniczne projekty na bloga. Jednym z pierwszych jest rozpoczęty projekt drewnianej stajni dla figurek dla koni, które z dużym zapałem kolekcjonuje moja córka Zuzia.

konie juz w stajni

1. Przygotowanie.

Pracę rozpocząłem od skompletowania niezbędnych produktów i narzędzi. Najważniejszy, to budulec. Pierwsze na liście były listewki modelarskie (można zamówić online, około 1,5-2zł za mb) o profilach 10x10mm, 5x10mm oraz 20x10mm. Podstawa to w moim przypadku deska 400x600mm. Do tego małe gwoździe 1mm x 12mm (lub coś w tej okolicy) oraz zawiasy (najmniejsze jakie znalazłem w sklepie) na drzwiczki.

sciana zewnetrzna

2. Plan działania.

Od początku budowy nie jest zbyt rozbudowany. Przyjąłem, że najważniejszym punktem wyjścia będzie rozpoczęcie od jednej ze ścian oraz oszacowanie jej wysokości (w przypadku, gdyby docelowo miał pojawić się też dach). Zuzka razem z koleżanką nastawione były na zabawę, więc i sama improwizacja miała ten czynnik.

pierwsze widoki

3. Wykonanie.

Prace nad stajnią trwają. Na widoczne na zdjęciach elementy poświęciliśmy około dwóch godziny piłowania i wbijania gwoździ. Rama póki co nie jest bardzo sztywna, ale w trakcie przytwierdzania do podłoża będę wspierać się klejem. Malowanie pozostawię na sam koniec, gdzie prawdopodobnie będziemy drewno zabezpieczać bejcą lub kolorowymi farbami.

male elementy

cdn…

kabelkowo.pl zmienia się na oryginalne.pl

Tym razem krótko. Blog nie pierwszy raz, ale mam nadzieję ostatni zmienia nazwę.

Od jakiegoś czasu miałem problem z miejscem na swoje projekty nieelektroniczne. Coraz częściej staram się łączyć elektronikę z drewnem, „wszywać” elektronikę w ubrania czy też po prostu majsterkować.

Oryginalne Projekty powinny zagościć na dłużej. Wkrótce powiem o kolejnych krokach wprzód.

fb_konie

przymocowanie Arduino / Raspberry Pi do płytki uniwersalnej

Większość projektów, które buduję w domu opieram o płytki uniwersalne – przeważnie stykowe. Z Arduino lub Raspberry Pi łączę płytkę uniwersalną kabelkami i na takim pająku się bawię. Bardzo często jednak takiego pająka muszę przenieść, przesunąć lub po prostu przepiąć do innego komputera. I tutaj robi się problem, ponieważ bardzo łatwo coś rozłączyć – płytka z mikrokontrolerem w jedną stronę, a płytka uniwersalna w drugą. I pozamiatane.

Kolejna porażka, w której połowa układu mi się rozłączyła wpadłem na prosty i skuteczny sposób. Poniżej na zdjęciach go prezentuję.

Specjalnie przylutowałem więcej niż jeden pin, żeby konstrukcja była stabilniejsza. Ponieważ montaż (w tym przypadku Arduino) odbywa się w poprzek płytki uniwersalnej, to zwracam uwagę na fakt, że również w poprzek płytki są połączone ze sobą piny styków. Dlatego część goldpinów, która wsuwa się do płytki jest poobcinana (górne zdjęcie) – inaczej robiłyby zwarcie / nieprawidłowo działały.

Arduino na płytce stykowej

Arduino na płytce stykowej

2015-05-28 20.04.15