Posty

Wyświetlanie postów z styczeń, 2018

Day 11-12 Monitor

Obraz
Wczorajszy dzień to był odpoczynek. Dzisiaj udało mi się zmusić   RPI Zero aby pracował z moim monitorem. Najwyższa rozdzielczość to 1680x1050 60Hz. Nie jest źle !! Obraz jest wyraźny i można popracować nad grafiką. Zdjęcia robione z "ręki " więc mogą być niewyraźne. CDN...

Day 10-1 Just some idea..

Tak sobie pomyślałem, że skoro RPI 2 ma 4 rdzenie, fajnie by było, gdyby zrobili np. RPI2ZERO z BCM2836 na pokładze. A może RPI3ZERO z BCM2837??!! To by było coś! 4 rdzenie i każdy robi inne zadanie. Bajka!! Może kiedyś sam taki zaprojektuje ze wszystkimi akcesoriami, kto wie ??? A tak z innej strony. Ile jest na rynku tabletów tych słabych marek, które są jednak na tyle silne by ruszyć Androida. Można je dostać za grosze!! Odzyskać chip z tableta i użyć go do własnych potrzeb!. CDN..

Day 10 Another big step ..

Obraz
Wczoraj napisałem : " Potrzebuje jeszcze obsługi karty SD, a to wiąże się z : EMMC, FAT(32) itd.. I tu kłania się C++. Muszę od nowa przebudować projekt !! A to zajmie trochę czasu, więc bądźcie cierpliwi. :) " Rozwiązanie znalazłem bardzo proste. Użycie drugiego bootloadera.  A po co mi drugi??  Ano znalazłem taki, który udostępnia wbudowane funkcje dla ładowaniej aplikacji. Funkcje dostępne to: 1. obsługa karty SD - FAT/FAT32/ext2/ramdysk. Użyje tylko FAT/FAT32. 2 .obsługa UART/HDMI - jeśli coś piszesz przy użyciu pfintf() to pojawi sie na uart i na ekranie!!  Inne udogodnienia to: 1. można mieć na karcie wiele aplikacji i konfiguracji dla nich (np. zawis, akrobacje itd) 2. można wyjść z jednej i wejść do innej, ale NIE W LOCIE !! 3. można przełączać cię w locie między konfiguracjami.  Planowana obsługa USB da nam możliwość podłączenia np: GPS na USB np. gdy nie używamy HDMI, a tylko UART. I kilka zdjęć na koniec. Bootloader  

Day 9 More ...

Obraz
Dzień owocny. BCM2835 library : działa!!! I2C:działa! SPI:działa! MPU6050 (I2C): działa! MAG3110 (I2C): wykrywany, zgłasza się poprawnie. BMA085 (I2C): działa! PCA9685 (I2C): działa! nRF24L01 (SPI): działa! MPU6050 i BMP085 PWM z PCA9685 I w tym momencie wszystko jest OK. No nie do końca!.  Potrzebuje jeszcze obsługi karty SD, a to wiąże się z : EMMC, FAT(32) itd.. I tu kłania się C++. Muszę od nowa przebudować projekt !! A to zajmie trochę czasu, więc bądźcie cierpliwi. :) Dla zainteresowanych: Będę używał tylko FAT.  Potrzebne to jest by przechować wszelkie ustawienia w pliku. Planowana jest dodatkowa zworka, która przełącza tryb pracy na HDMI. Czyli wszelkie ustawienia, kalibracje robimy z ekranem i klawiaturą  i myszką (przez USB HUB). CDN..

Dey 8 Big success...

Obraz
Jak na ten moment to: BCM2835 library : działa!!! I2C:działa! SPI:działa! MPU6050 (I2C): wykrywany, zgłasza się poprawnie. MAG3110 (I2C): wykrywany, zgłasza się poprawnie. BMA085 (I2C): działa, ale pokazuje zawyżone wartości, biblioteka napisana, sprawdzone . PCA9685 (I2C): wykrywany, zgłasza się poprawnie, biblioteka napisana, nie sprawdzone . nRF24L01 (SPI): działa, biblioteka napisana, nie sprawdzone . Na razie to duży krok do przodu !! CDN..

Day 5-7 research..

Obraz
Trochę czasu zaszło na poszukiwania źródeł dla BCM2835. Niestety < PDF > opublikowany przed Broadcom nie jest zbyt precyzyjny i bez błędów. Trzeba się dużo domyślać i szukać po pdf 'ie. Ja sam trochę się zakopałem na SPI. BCM2835 ma 3 porty SPI, ale tylko 2 mogą być dostępne na Raspberry Pi Zero. Ale to cała historia... Day 7. To był dzień pełen lutowania prototypu. Ale było warto i jest !! A na pokładzie: nRF24L01 (radio 2.4GHz), MPU6050 (żyroskop i akselerometr), MAG3110 (magnetometr), BMP085 (barometr), PCA9685 (PWM, 16 kanałów) MM232R (USB to SERIAL) . Może to nie jest zbyt powalający na kolana układ, ale do prób musi wystarczyć. Jeśli chodzi o "RADIO" (nRF24L01) to wyjaśnię to w następnych postach. Ale pamiętajcie TO JEST 'BARE METAL PROJECT' !! CDN..

Day 4 Battle with software..

Obraz
Jako, że z natury jestem leniwy, postanowiłem sprawę uprościć. Po co używa wirtualnego Linuxa, jeśli można to by zrobić pod WINDOWS?! W skrócie 8 godzin. Wnioski : ECLIPSE wygrywa !! Trochę konfiguracji i.. Wszystko w jednym OS. To co widzicie na COM4 (Putty) to symulacja. Jutro czas na sterowniki.. Już się boję !! CDN...

Day 3 RPI Zero arrived...

No i jest !! Pierwsze wrażenie : jakie to małe !!. To prawie 1/3 normalnego Rasberry PI. Ale teraz pytanie czy działa? I tu są schody. Pierwszy odruch to download najnowszego Raspiana. I tu pierwszy dzwonek !! Boot'uje się tylko jako readonly  system files. Po usunięciu błędów w fs dalej to samo. Coś tu nie jest tak, jak powinno być. Po godzinach męki nastąpiła decyzja: wypalamy wersie raspiana z 2015r. I dong!! Działa!! No dobra, a co z bootowaniem przez USB. Znowu schody !! Windows ma to do siebie, że chroni katalog c:\Program Files. Nie istalujcie go tam!! OK. Nie będę zanudzał. Po kilku godzinach ciężkiej pracy, wszystko działa. Mogę teraz pisać oprogramowanie. A co muszę zrobić by zobaczyć rezultat to tylko wcisnąć przycisk. CDN..

Day 2. RPI without linux...periferials...

Obraz
Cały dzień to jedna wielka walka z brakiem bibliotek. Wszystko trzeba pisać od nowa. Ale to ma swoje plusy. Mam tylko to co potrzebuje i używam. Chciałem użyć biblioteki BCM2835 dla RPi pod linux. Częściowo działa, częściowo nie. Na stan aktualny skanuje I2C, pokazuje adresy, ale jest nie stabilna przy odczycie. Jutro dalsza walka. Jeśli się nie uda, napiszę swoją. Poza tym na dzień dzisiejszy nie używam RPi Zero. Z tej przyczyny że jeszcze nie dotarł. Zamówiony w niedziele, wysłany w poniedziałek spędził 15 godzin w sortowni poczty w Komornikach. Może dojdzie jutro. Jako że nie mam RPi Zero używam RPi B 512MB,  a to wiąże się z tak zwanym "nieskończonym tańcem karty SD" między Rpi i czytnikiem. Jak dojdzie Zero będzie łatwiej. A to za sprawą bootowania z USB. RPi Zero ma zaszyty mikro kod, który po wykryciu braku karty SD ustawia USB jako device i pozwala na załadowanie plików startowych z hosta. A to przyspieszy cały proces. Koniec z tańcem z SD!! CDN..

Day 1. RPI without linux...

Obraz
Jak napisałem w poprzednim poście nie będziemy używać linux'a. Dlaczego? To proste. Zabiera zbyt dużo mocy procesora na nie potrzebne nam procesy i nie działa w trybie rzeczywistym. Zabrało mi 1 dzień pracy, aby rozwiązać proste problemy, bez użycia bibliotek . Co działa: operacje matematyczne (w tym float sprzętowo), operacje na pamięci, obsługa UART, SPI, I2C, DMA, prosta implementacja : printf(), identyfikacja ARM. CDN..

The Flight Controler beginnings....

Obraz
Większość kontrolerów lotu obsługujących np. quadcopter oparta jest o platformę AVR, ARM. Jeśli chodzi o AVR to nie o tym tu mowa. Zajmiemy się tylko ARM. Najbardziej zaawansowane rozwiązania oparte są o STM32F7, przy częstotliwości zegara 216MHz. To wielki krok na przód, jeśli chodzi o STM32F1 (72MHz)  i STM32F4(168MHZ). A co jeśli można iść jeszcze dalej i to za grosze?? Odpowiedz to : Tak. Rozpoznaliście dobrze, to Rasberry Pi Zero. Co mamy za 26 PLN ?! 1. CPU ARM11 pracujący na 600-1000MHz. 2. GPU VideoCore4 pracujący na 250-300MHz. 3. 512MB pamięci RAM. 4. piny GPIO do wykorzystania. 5. SPI, I2C, UART, etc. Ale, tu zaczynamy myśleć o tej płytce zupełnie inaczej. Jeśli BCM2835 jest na tyle mocny by obsługiwać system Linux to może działać jako FC bez Linuxa!. I tu zaczyna się bajka!!(czytaj: KOSZMAR!!) CDN....