Od pomysłu do wdrożenia

Uczymy się programowania elektroniki powielając ciekawe projekty, czasami dodajemy coś swojego. Przychodzi jednak taki czas, że w głowie zaświta nam „świetny pomysł” i go realizujemy. Mamy więc pomysł i produkt. Ale to tylko wycinek z cyklu życia projektu (Pomysł -> Analiza rynku -> Projektowanie -> Walidacja -> Wdrożenie -> Utrzymanie/serwis -> Zakończenie wsparcia). A potem? O tym, jak się komercjalizuje udane projekty można przeczytać w marcowym wydaniu Elektroniki Praktycznej (3/2021) w artykule Od pomysłu do wdrożenia. Jest to lektura obowiązkowa dla osób projektujących rozwiązania elektroniczne.

Dodatkowo polecam też artykuł o profesjonalnym podejściu do tematu okiem dużej firmy: Prototypowanie – jak to wygląda w praktyce?  

Polecam i zachęcam do wizyty w uczelnianej czytelni.

(C) K. G. 2021

 

Łazik Perseverance i jego CPU

Ciekawe rzeczy dzieją się ostatnio na Marsie – mówię o próbach lotniczych drona z najnowszej misji Amerykańców. Ale warto wrócić do samego łazika i zapoznać się ze specyfikacją jego jednostki centralnej. Okazuje się, że wybór padł na  RAD750 z architerkturą PowerPC 750 (RISC), który zadebiutował w roku 1998! Staruszek! Ma już ponad dwie dekady i faktycznie parametrami nie znokautuje współczesnych CPU.

RAD750.jpgProcesor taktowany jest zegarem 200 MHz, do dyspozycji ma 2GB pamięci FLASH i 256 MB RAM (więcej o nim w linku klikając powyższe zdjęcie z Wikipedii). Dlaczego właśnie taki procek? O tym można przeczytać w marcowym wydaniu Elektroniki Praktycznej (3/2021) w artykule Rad-hard już na pierwszych stronach czasopisma! Polecam i zachęcam do wizyty w uczelnianej czytelni.

 

(C) K. G. 2020

 

Seeeduino XIAO

Seeeduino Xiao to płytka prototypowa bazująca na ARM Cortex M0+ 32-bit 48 MHz z 256 kB flash oraz 32 kB SRAM. Zasilana przez USB-C ale działa z napięciami 3.3V. Kompatybilna z Arduino IDE.

Płytka Seeeduino XIAO

Oficjalna strona produktu: https://wiki.seeedstudio.com/Seeeduino-XIAO/

 

Specyfikacja Seeeduino Xiao

  • Układ: SAMD21 ARM Cortex M0+ 48 MHz
  • Pamięć flash: 256 kB
  • Pamięć SRAM: 32 kB
  • GPIO: 14
    • cyfrowe I/O: 11
    • wszystkie piny z przerwaniami
    • analogowe IN: 11 (12-bit DAC)
    • analogowe OUT: 1 (A0, 12-bit ADC)
    • I2C: 1
    • SPI: 1
    • UART: 1
    • PWM: 10
  • Zasilanie: 5 V – USB C 
  • Napięcie pracy: 3,3 V
  • Przycisk reset
  • Pady zasilania: do podłączenia baterii
  • Wymiary: 23,5 x 17,5 x 3,5 mm

(dane przekopiowane ze strony bootland.com.pl oferującą w sprzedaży płykę).

(c) K. G. 2020

 

RaspberryPi 4 – test Mathematicy

Nowa malinka z 4GB RAMu – jaką ma wydajność w moim teście Mathematicy?

Uruchomienie

System startuje w około 20 sek (liczone od momentu włączenia zasilania do uruchomienia X-ów i odpalenia terminala). Porównując to do RPi v3 jest szybszy o jakieś ~10s. Sama Mathematica startuje szybciutko, choć czasu nie liczyłem – ale jest zdecydowanie szybciej niż na RPi Zero, gdzie (przypomnę) start Mathematicay zajmował ponad 2 minuty!

Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster

Testy Mathematicy

Nie ma się co oszukiwać – 4 GB RAM robi swoje. Podczas testów system działa sprawnie, jest bardzo responsywny, temperatura na procku dochodzi do 42C, a zużycie RAMu wskazuje około 420 MB. Jest więc duży zapas, i dlatego wszystko działa jak powinno.

Nowe wyniki, system Raspbian Buster:

                                     TEST1 EXPORT TEST3 TEST4  
RPi v4, 4GB, 1.5GHz 6.0 s 7.3 s 10.2 s 1.6 s  
RPi v3B, 1GB, 1.2GHz 26.2 s 27.6 s 47.1 s 6.9 s  

Wyniki w tabelce to wynik poleceń Timing[] Mathematicy i poszczególnych testów. Wychodzi na to, że malinka v4 jest około 4x szybsza od malinki v3 model B. Nie tłumaczy tego wzrost prędkości pojedynczego rdzenia (1.5GHz to „tylko” 25% od 1.2 GHz), ani zastosowanie pamięci DDR4 (w stosunku do DDR2) – ale całość już robi swoje (co widać). Sam rozmiar RAMu nie grał tu chyba istotnej roli – jak wspomniałem wcześniej, zużycie pamięci było maksymalnie ~420MB.

Podsumowując

RPi v4  – baaaardzo fajne urządzenie, choć wymaga chłodzenia – podczas moich testów system grzał się do 42C (vcgencmd measure_temp) mimo zastosowania chłodzenia aktywnego – wiatraczka 5V. Było więc dość głośno 😛 Te same testy RPi v3 z chłodzeniem pasywnym wskazywał 53C ale nic-a-nic nie szumiało.

Arduino z taktowaniem 600MHz?

Z serwisu Forbot o płytce Teensy 4.0, kompatybilnej z Arduino UNO

Technical Specifications

  • ARM Cortex-M7 at 600 MHz
  • 1024K RAM (512K is tightly coupled)
  • 2048K Flash (64K reserved for recovery & EEPROM emulation)
  • 2 USB ports, both 480 MBit/sec
  • 3 CAN Bus (1 with CAN FD)
  • 2 I2S Digital Audio
  • 1 S/PDIF Digital Audio
  • 1 SDIO (4 bit) native SD
  • 3 SPI, all with 16 word FIFO
  • 3 I2C, all with 4 byte FIFO
  • 7 Serial, all with 4 byte FIFO
  • 32 general purpose DMA channels
  • 31 PWM pins
  • 40 digital pins, all interrrupt capable
  • 14 analog pins, 2 ADCs on chip
  • Cryptographic Acceleration
  • Random Number Generator
  • RTC for date/time
  • Programmable FlexIO
  • Pixel Processing Pipeline
  • Peripheral cross triggering
  • Power On/Off management

Test wydajności:

Cena około 100 zł i jest dostępna. Fajnie. Ale jeszcze fajniejsze jest małe zużycie prądu (jak na 600MHz) – około 0.1A, a także RTC (zegarek – ale trzeba podłączyć bateryjkę). Bardzo ciekawa płytka.

(c) K. G. 2019

 

Malinka v4 oraz „Buster” – nowy Raspbian

Z serwisu Forbot: o nowym RaspberryPi v4 oraz o nowej wersji dystrybucji Raspbian. Od razu ostrzegam, że chwilowo nie ma oprogramowania Wolfram Mathematicy! Więcej info na oficjalnej www. Ale… to (ponoć) kwestia czasu, więc… cierpliwości!

Polecam obejrzeć fimlmik z YT (by ExplainingComputers) o nowej Malince:

UPDATE (05-7-2019):
Mathematica zniknęła z dystrybucji Raspbian, bo skończyła się 5-cio letnia umowa. Na szczęście można już samodzielnie zainstalować wersję 12 Mathematicy na RPi!

sudo apt-get update
sudo apt-get install wolfram-engine

(c) K. G. 2019

 

TinkerCAD – wirtualne Arduino – dla początkujących (i nie tylko)

Wirtualne Arduino – czyli SYMULATOR płytki Arduino (ale także i prostej elektroniki). Dla kogo? Dla każdego, kto chce spróbować zabwy z Arduino. Nie trzeba więc kupować zestawu, wystarczy usiąść przed ekranem swojego komputera i bawić się płytką Arduino tak jak prawdziwą! Fajne, i za darmo!

Rejestracja

Projekt TINKERCAD jest własnością firmy AUTODESK i najpierw wymaga rejestracji. Zakładamy więc konto (darmowe) i dopiero wówczas możemy korzystać z serwisu.

Uprzedzam, że ani ja, ani Wydział Fizyki UwB nie jest powiązany z AUTODESK ani nie czerpie profitów z tego oprogramowania – polecam je jako bardzo ciekawe i łatwe w użyciu. Dodam, że jest to jedno z wielu dostępnych symulatorów Arduino – K. Gawryluk.

www.tinkercad.com

Zakładamy konto (o ile jeszcze nie mamy) wpisując powyższy adres i wybierając przycisk ZAREJESTRUJ SIĘ.

Prawy górny róg:

Potem postępujemy zgodnie z ekranami, podając swoje miejsce zamieszkania i datę urodzin:

podajemy też swój adres email i wybieramy hasło (proponuję też przyjrzeć się warunkom korzystania z usług – choć nie widzę tam „haczyków”):

Kolejny etap to już tylko potwierdzenie utworzenia konta – uruchamiamy swoją pocztę i potwierdzamy nadesłany email z Grupy Autodesk. Możemy już działać!

Po zalogowaniu – panel użytkownika

Z lewej strony widzimy swoje zdjęcie (o ile takie dodaliśmy), poniżej opcje tworzenia różnych projektów (bo TinkerCAD to nie tylko wirtualne Arduino!). W centralnej części mamy obrazki z naszymi wcześniejszymi projektami – oczywiście po założeniu nowego konta nie ma ich tyle, co na moim obrazku.

Ważne: TinkerCAD zapisuje automatycznie nasze projekty w „chmurze”, czyli możemy korzystać z nich wszędzie, na każdym komputerze (z dostępem do internetu – oczywiście). Jest to plus, ale i… minus! Często ładowanie projektów jest poooowooooolnneeeee (coż, nie jesteśmy jedynymi użytkownikami – to bardzo dobry i popularny serwis).

Wirtualna elektronika – nasz pierwszy obwód

Aby rozpocząć zabawę z elektroniką wybieramy sekcję Circuits – czyli (w wolnym tłumaczeniu) obwody elektroniczne. Sekcja ta zaznaczona jest na obrazku poniżej kolorem niebieskim (znajduje się zaraz pod naszym imieniem i nazwiskiem, lub nickiem).

Po wybraniu Circuits klikamy duży, zielony przycisk Create new Circuit (co tłumaczymy jako Tworzymy nowy obwód elektroniczny).

Brawo! Możemy rozpocząć dodawanie elementów elektronicznych! Gdzie je znaleźć? Proszę przyjrzeć się prawej stronie okienka z rozwijaną listą Components Basic. Na liście tej znajduje się sporo fajnych rzeczy – bateryjki, oporniki, płytka stykowa…

Proszę odnaleźć płytkę stykową – klikamy ją myszką i znajduje się ona na naszym wirtualnym biurku! Tak samo robimy z bateryjką 1.5V – klikamy i dodajemy!

Następnie wybieramy na biurku bateryjkę – klikamy ją myszką. Pojawia się dodatkowe menu z różnymi opcjami:

Można zmienić nazwę (hmmm…. chyba zbyteczne, choć może być przydatne w większych projektach), ale my zmieniamy liczbę bateryjek w zestawie – modyfikujemy pole Count  jak na rysunku powyżej. Mamy napięcie 4.5V !

Łączymy przewody – wystarczy kliknąć na wyprowadzenie z bateryjki (pojawia się też „dymek” z podpowiedzią – w języku angielskim) a następnie drugi raz kliknąć w innym miejscu – pojawi się połączenie przewodem.

Dodajemy kolejny przewód -warto dbać o porządek podczas pracy z elektroniką (także tą wirtualną!). Zmieniamy kolory przewodów w menu. Pamiętajmy, że dobrze jest oznaczać czarnymi przewodami „-” z bateryjki, a czerwonymi przewodami – bieguny „+”.

Dodajemy opornik (trzeba go najpierw odnaleźć z prawej strony – nazywa się Resistor). 

Proszę zmienić też wartość oporu: pole Resistance powinno być ustawione na 220 ohmów. Wirtualnymi elementami można obracać – użyj ikonki z lewej, górnej części ekranu:

Teraz dodajemy diodę elektroluminescencyjną (LED):

Pamiętajmy, że diody mają wyróżnioną polaryzację – dwie „nóżki”: anodę („+”) i katodę („-„) więc ważne jest, która nóżka jest która. Postaraj się zrobić tak, jak na rysunku powyżej.

Na koniec dodajemy ostatni przewód zamykający obwód elektryczny. Brawo – w ten sposób stworzyłeś wirtualny obwód!

Aby go uruchomić należy wybrać przycisk Start Simulatoin (uruchom symulację).

Jeśli wszystko dobrze podłączyłeś, LED powinien się świecić a Ty powinieneś się cieszyć, że wszystko działa! 

Co teraz? Może sprawdź parę rzeczy:

  • jak wpłynie większa wartość opornika w Twoim układzie? W tym celu zatrzymaj symulację (Stop simulation) i kliknij opornik – zmień mu wartość Resistance w menu na większą – 500 Ohm, 1000 Ohm a może nawet 10 kOhm? Po tej zmianie ponownie uruchom symulację.
  • a może tak przepalić LED-a? spokojnie, komputer nie ucierpi – ale Ty nauczysz się, że gdy wartość opornika będzie za mała – popłynie za duży prąd (tutaj: powyżej 20mA) i led „wybuchnie” (wirtualnie!).  W tym celu zatrzymaj symulację i zmień wartość opornika na bardzo mały, np. 22 Ohm, a może nawet 2 Ohm. Pamiętaj, aby nie robić tego z prawdziwym obwodem na własnym biurku!
  • można też zmienić napięcie zasilania układu – zatrzymaj symulację, wybierz myszą koszyk z bateriami i zmień pola Count, Type. Zauważ, że jest tam także możliwość dodania przełącznika: Build-In switch
  • zauważ, że możesz dodawać też multimetr – i robić pomiary aby sprawdzić, jaki prąd płynie w układzie lub jaki jest spadek napięcia na poszczególnych elementach elektronicznych!
  • poszukaj elementów, które możesz znać – wybierz przycisk (mikrostyk) i zbuduj taki układ:

Układ z Arduino UNO

Tworzymy nowy projekt – wracamy do głównego panelu wybierając kolorową ikonkę TIN KER CAD. Tworząc nowy układ automatycznie otrzymujemy zabawną nazwę (poniżej „Amazing Curcan-Hago”) – jeśli Ci nie pasuje, lewy klik na napisie i zmieniamy!

Ponownie wybieramy Circuits oraz Create new Circuit. Dodajemy elementy jak na zdjęciu poniżej:

Po dodaniu do układu płytki Arduino UNO  pojawiła się nowa opcja w menu Code (czyli programuj Arduino) – obok przycisku Start Simulation. Po wciśnięciu tego przycisku rozwinie się pole (z prawej strony) umożliwiające pisanie programu a raczej… budowanie go z „klocków” w stylu Scracha. Można z tego korzystać (co kto lubi), ale ja wolę się przełączyć na pisanie programu w języku C/C++

Zmieniamy więc pole Blocks na liście na Text i mamy program w C/C++

Zwróć uwagę, że ja zmodyfikowałem tekst programu: zamieniłem liczby 13 na 7 – gdyż u mnie LED podłączony jest do pinu numer 7 na płytce Arduino. Możemy już uruchomic symulację (Start Simulation) i Arduino będzie wykonywać nasz program! Zwróć też uwagę, że przewód podłączeniowy w tym momencie jest wciśnięty w Arduino.

Co dalej? Proponuję zatrzymać się w tym momencie i bawić się wirtualną płytką:

  • zmodyfikować program tak, aby LED świecił i i gasł nie w odstępie 1 sekundy, ale z przerwami co 2 sekundy
  • a może tak zmienić program, aby najpierw LED zaświecił się na 1 sek, zgasł na 1 sek, potem zaświecił się na 2 sek, zgasł na 1 sek, potem świecił się na 3 sek a zgasł na 1 sek – po tym cyklu wszystko ma się powtórzyć
  • można dodać więcej LED-ów – czy umiesz odtworzyć poniższy układ w wirtualnym Arduino?

Wyświetlacz 7-segmentowy

Dodawanie kolejnych LED-ów może być zabawne, ale czas teraz na wyświetlacz siedmio-segmentowy: znajdź go na liście komponentów elektronicznych (Components) i dodaj go na płytkę stykową

Zwróć uwagę, że możesz zmienić rodzaj wyświetlacza: wspólna anoda („+”) lub wspólna katoda („-„). To ma znaczenie! Podłączaj wyświetlacz wybierając piny z Arduino takie, jak lubisz, np.

a potem programuj! Zwróć uwagę, że kursor myszki nad wyświetlaczem wyświetla „dymek” z podpowiedzią, która nóżka co oznacza. Postaraj się stworzyć program wyświetlający wszystkie cyfty! Zacznij od 3-ki:

Teraz zaczyna się przygoda!

Tak, teraz możesz się bawić w programowanie elektroniki! Jest to bardzo bezpieczne, gdyż nawet jeśli coś źle połączysz (co się pewnie zdarzy) – to popsujesz tylko wirtualne Arduino! Jeśli jednak „złapiesz bakcyla” i będziesz chcieć więcej – kup prawdziwe Arduino z osprzętem (przewody, płytka stykowa, oporniki i LEDy) i baw się w rzeczywistym świecie (to jeszcze lepsza frajda – gwarantuję!). Jeśli jednak znudziła Cię ta zabawa – nic straconego, nie wydałeś ani złotówki – zamknij program i poświęć czas na swoje ulubione zabawy. Twój wybór.

Więcej? a może kolorowe LEDy RGB?

Zestaw elementów TinkerCADa ciągle się rozrasta i można już się „bawić” modułam WS2812B! Proszę spróbować:

Ws2812b oraz potencjometr

Czy tylko zabawa?

Pamiętaj, że wirtualne Arduino ze strony TINKERCAD to nie tylko „zabawa” dla początkujących – warto budować i sprawdzać swoje prawdziwe projekty, przed ich podłączeniem! Powodzenia!

(c) K. Garwyluk 2018
pochwal się ze mną swoimi projektami
k. gawryluk@uwb.edu.pl

Arduino – nowości

Arduino prezentuje nowe płytki rozwojowe z komunikacją bezprzewodową – MKR1010 posiada dwa programowalne procesory – jeden z rdzeniem ARM oraz drugi zawierający dwa rdzenie Espresif-IC. Oprócz tego na płytce zamontowano układ identyfikacyjny Microchip ECC508, który umożliwia zabezpieczenie połączeń i komunikacji sieciowej (więcej).

źródło: mikrokontroler.pl