Skocz do zawartości

Jak wykorzystać AI do doboru komponentów elektronicznych?


Pomocna odpowiedź

Napisano

Pewnie niejednemu z Was zdarzyło się wpaść na pomysł ciekawego urządzenia, ale już na etapie planowania stracić sporą część zapału. Nie dlatego, że projekt był szczególnie trudny, ale przez konieczność znalezienia odpowiednich komponentów. W końcu wybór właściwego mikrokontrolera, czujników, modułów komunikacyjnych i pozostałych elementów potrafi zająć więcej czasu niż samo złożenie urządzenia.

Do tego dochodzi jeszcze kwestia dostępności i ceny. Często okazuje się, że jeden komponent jest dostępny w jednym sklepie, drugi w zupełnie innym, a trzeci można zamówić wyłącznie z zagranicy. Ostatecznie człowiek zaczyna dobierać elementy nie tylko pod kątem parametrów, ale również po to, aby osiągnąć próg darmowej dostawy.

Na szczęście z pomocą przychodzi sztuczna inteligencja, która może znacząco przyspieszyć poszukiwanie odpowiednich komponentów. Postanowiłem sprawdzić, jak ChatGPT radzi sobie z tym zadaniem w praktyce, wykorzystując dwa rzeczywiste przykłady: budowę przenośnego miernika wibracji oraz dobór elementów elektronicznych do własnej płytki PCB.

Banner.thumb.png.0c72463d93247dd497cd53d6ba900576.png
Banner wygenerowany przez AI 😉

Artykuł powstał we współpracy z firmą Botland.

Dobór gotowych modułów – budujemy wibrometr

Na pierwszy ogień wybrałem stosunkowo prosty projekt, do którego większość komponentów można kupić w formie gotowych modułów. Chodzi o przenośny wibrometr, czyli urządzenie pozwalające mierzyć drgania mechaniczne.

Pomysł pojawił się podczas pracy nad urządzeniem wykorzystującym wibracje do przemieszczania i przetrząsania materiałów sypkich. Po rozdrobnieniu materiału w młynku powstają cząstki o różnych rozmiarach, co utrudnia ich równomierne przemieszczanie. Aby dobrać odpowiednie parametry mechanizmu, potrzebowałem możliwości pomiaru częstotliwości oraz intensywności drgań.

Co ciekawe, taki miernik nie musiałby ograniczać się do jednego zastosowania. Można go również wykorzystać do badania wibracji silników, wentylatorów, maszyn CNC czy drukarek 3D. Szczególnie interesująca byłaby możliwość obserwowania zmian drgań przy różnych prędkościach pracy urządzenia.

Zamiast samodzielnie przeszukiwać katalogi sklepów, postanowiłem poprosić ChatGPT o zaproponowanie odpowiedniego zestawu modułów.

Pierwsza propozycja AI

ChatGPT całkiem dobrze poradził sobie z doborem najważniejszego elementu, czyli czujnika. Zaproponował moduł Adafruit ISM330DHCX, wyposażony w trójosiowy akcelerometr oraz żyroskop. Przy odpowiednio dobranej częstotliwości próbkowania i oprogramowaniu możliwe jest nie tylko obserwowanie chwilowych przyspieszeń, ale również wyznaczanie dominujących częstotliwości drgań, np. za pomocą szybkiej transformaty Fouriera (FFT).

Co ważne, AI nie ograniczyło się do zaproponowania samego czujnika. Na liście zakupowej znalazły się również elementy potrzebne do jego podłączenia, a nawet opcjonalna karta pamięci SD umożliwiająca zapisywanie wyników pomiarów.

To właśnie jedna z ciekawszych zalet takiego rozwiązania. Sztuczna inteligencja potrafi zasugerować dodatkowe funkcjonalności, o których niekoniecznie pomyśleliśmy podczas tworzenia początkowej koncepcji.

Niestety pierwsza propozycja nie była idealna.

Doprecyzowanie wymagań

Największy problem dotyczył konstrukcji mechanicznej urządzenia. Zależało mi na tym, aby sam czujnik znajdował się w niewielkiej, lekkiej głowicy pomiarowej, natomiast ekran i elektronika sterująca były umieszczone w osobnym urządzeniu połączonym przewodem.

Dlaczego to takie ważne? Gdybyśmy zamocowali do badanego elementu cały miernik, jego masa mogłaby wpłynąć na charakterystykę drgań. Szczególnie w przypadku lekkich elementów mechanicznych dodatkowe obciążenie może wyraźnie zmienić wynik pomiaru. Znacznie lepszym rozwiązaniem jest więc zastosowanie niewielkiego modułu pomiarowego z magnesem neodymowym lub odpowiednim uchwytem zaciskowym.

Dodatkowo zależało mi na stosunkowo dużym, czytelnym wyświetlaczu, dlatego zaproponowałem wykorzystanie M5Stack Tab5 jako głównej jednostki urządzenia.

Po przedstawieniu tych uwag ChatGPT zmodyfikował swoją propozycję, uwzględniając nową konstrukcję. Zaproponował połączenie czujnika z jednostką główną za pomocą przewodów Grove oraz Qwiic.

schemat_polaczen_wibrometr.thumb.png.47620fde292e9d505572f878142ea5a9.png
Schemat miernika wibracji zaprojektowanego przez GPT

Tutaj pojawiło się jednak niewielkie niedopatrzenie. Na liście zakupowej zabrakło przelotki Grove-Grove, potrzebnej do połączenia przedłużacza z przewodem prowadzącym do czujnika. Co ciekawe, odpowiednia złączka została wspomniana w dalszej części odpowiedzi, ale nie trafiła do zestawienia komponentów.

Ostatecznie proponowana konstrukcja składała się z M5Stack Tab5, modułu Adafruit ISM330DHCX, przewodu Grove o długości około 50 cm, odpowiednich adapterów i krótkiego przewodu Grove-Qwiic. Opcjonalnie można również zastosować akumulator i kartę pamięci SD.

Warto przy tym zaznaczyć, że takie rozwiązanie wymaga jeszcze sprawdzenia jakości komunikacji I2C na zastosowanych przewodach. Sama zgodność złączy nie gwarantuje niezawodnej transmisji, szczególnie przy większych długościach przewodów i podwyższonych częstotliwościach magistrali.

Wniosek? W przypadku gotowych modułów ChatGPT spisał się bardzo dobrze. Wystarczyło kilka dodatkowych informacji, aby otrzymać propozycję konstrukcji zgodną z moimi oczekiwaniami. Co ważne, nie musiałem samodzielnie przeglądać dziesiątek produktów i porównywać sposobów ich podłączenia.

Całą rozmowę dotyczącą tego projektu można zobaczyć tutaj: Dobór modułów do wibrometru – rozmowa z ChatGPT

Dobór komponentów do własnej płytki PCB

Skoro sztuczna inteligencja tak dobrze poradziła sobie z gotowymi modułami, postanowiłem nieco podnieść poprzeczkę. Tym razem zadaniem był dobór pojedynczych komponentów elektronicznych, które można byłoby wykorzystać podczas projektowania własnej płytki PCB.

W teorii zasada działania jest taka sama. Podajemy wymagania, a ChatGPT wyszukuje odpowiednie komponenty i porównuje ich parametry. W praktyce okazuje się jednak, że jest to znacznie trudniejsze zadanie.

O ile liczba popularnych modułów rozwojowych jest stosunkowo niewielka, o tyle samych układów scalonych, czujników i innych komponentów są tysiące. Dodatkowo wiele z nich występuje w licznych wariantach różniących się zakresem pomiarowym, obudową, interfejsem czy sposobem zasilania.

Projekt szybkiego czujnika ciśnienia

Jako przykład wykorzystałem urządzenie podobne do jednego z moich wcześniejszych projektów. Jego zadaniem jest pomiar ciśnienia w przewodzie pneumatycznym, a konkretnie wykrywanie zmian ciśnienia występujących z częstotliwością około 11–14 Hz.

Początkowo nie podałem wszystkich szczegółów konstrukcyjnych, aby sprawdzić, jak ChatGPT poradzi sobie z samodzielnym doborem podzespołów.

Wymagania były dość specyficzne. Typowe ciśnienie robocze wynosi około 30–40 kPa, ale chwilowo może wzrosnąć nawet do 80 kPa. Zdecydowałem więc, że interesujący mnie zakres pomiarowy powinien obejmować 0–100 kPa.

Zależało mi również na możliwie szybkiej odpowiedzi czujnika, ponieważ urządzenie miało wykrywać stosunkowo krótkie zmiany ciśnienia. Sama częstotliwość 11–14 Hz nie oznacza jeszcze, że wystarczy czujnik o paśmie 14 Hz. Jeżeli chcemy analizować kształt impulsów, a nie tylko ich częstotliwość, potrzebujemy odpowiednio większego pasma pomiarowego.

Kolejnym wymaganiem była dobra rozdzielczość przetwarzania sygnału. Wbudowany przetwornik ADC w ESP32 nie jest szczególnie dobrym rozwiązaniem do precyzyjnych pomiarów analogowych, dlatego rozważałem wykorzystanie zewnętrznego ADC oraz odpowiedniego toru wzmacniającego.

Teoretycznie można byłoby samodzielnie zaprojektować wzmacniacz, podobnie jak w jednej z wcześniejszych konstrukcji wykorzystujących wzmacniacz operacyjny i potencjometr cyfrowy. Niestety takie podejście komplikuje projekt, a ceny i dostępność niektórych potencjometrów cyfrowych nie zachęcają do ich stosowania.

Pierwszy problem – zbyt drogie komponenty

I tutaj zaczęły się schody.

ChatGPT początkowo zaproponował przede wszystkim komponenty znanych zachodnich producentów. Pod względem parametrów były to interesujące rozwiązania, jednak ich ceny okazały się stosunkowo wysokie, szczególnie w kontekście niewielkiej produkcji urządzeń. Nie potrzebowałem przecież czujnika przeznaczonego do bardzo specjalistycznej aparatury laboratoryjnej. Zależało mi przede wszystkim na dobrej relacji parametrów do ceny.

Poprosiłem więc AI o ponowne przeanalizowanie dostępnych rozwiązań, tym razem ze szczególnym uwzględnieniem tańszych komponentów chińskich producentów dostępnych w katalogu LCSC.

Takie doprecyzowanie istotnie zmieniło kierunek poszukiwań. Zamiast ograniczać się do popularnych marek, ChatGPT zaczął proponować mniej znane rozwiązania, które potencjalnie mogły spełnić te same wymagania przy znacznie niższym koszcie.

Nie oznacza to oczywiście, że tańszy komponent będzie automatycznie równie dobry. Nadal trzeba sprawdzić jego dokładność, powtarzalność, stabilność temperaturową i pozostałe parametry.

Drugi problem – niewłaściwy typ czujnika

Kolejny problem wynikał z niedostatecznie precyzyjnego opisu zastosowania.

ChatGPT proponował też między innymi czujniki przeznaczone do pomiaru ciśnienia gazu bezpośrednio w otoczeniu płytki PCB. Tymczasem moje urządzenie miało mierzyć ciśnienie w przewodzie pneumatycznym.

Różnica jest istotna. W takim zastosowaniu znacznie wygodniejsze są czujniki wyposażone w odpowiedni króciec, do którego można podłączyć przewód. W przypadku innych konstrukcji konieczne byłoby projektowanie dodatkowej komory pomiarowej. Po zwróceniu uwagi na ten szczegół AI zmieniło proponowane rozwiązania.

W tym miejscu warto zauważyć, że trudno uznać pierwszą odpowiedź za całkowicie błędną. Nie przekazałem przecież wszystkich informacji dotyczących konstrukcji urządzenia. ChatGPT zaproponował więc komponenty, które pasowały do ogólnego opisu, ale niekoniecznie do rzeczywistego zastosowania. To dobry przykład pokazujący, jak ważne jest odpowiednie sformułowanie zapytania.

schemat_modulu_cisnienia_STM32(1).thumb.png.cc07f2d1b08450b918befa9cca17bce7.png
Schemat modułu ciśnienia (z dodatkowym procesorem tłumaczącym)

Trzeci problem – zakres pomiarowy

Nawet po doprecyzowaniu sposobu podłączenia czujnika pojawiły się kolejne niedogodności.

ChatGPT nadal proponował niektóre układy o zbyt małym zakresie pomiarowym, np. 0–40 kPa. Teoretycznie wystarczałyby one do pomiaru typowego ciśnienia roboczego, ale nie pozwalałyby poprawnie obsłużyć sytuacji, w której ciśnienie wzrosłoby do 80 kPa. Dopiero jednoznaczne wskazanie wymaganego zakresu 0–100 kPa pozwoliło znacząco zawęzić listę proponowanych komponentów.

Ostatecznie udało się znaleźć kilka interesujących czujników, które pod względem deklarowanych parametrów były znacznie bliższe oczekiwaniom. Niestety pojawił się jeszcze problem dostępności, ponieważ nie wszystkie można było bez problemu zamówić.

To również istotna kwestia. Komponent może być wręcz idealny pod względem parametrów, ale jeżeli jego dostępność jest ograniczona lub wymaga zakupu dużej liczby sztuk, niekoniecznie będzie najlepszym wyborem.

Pełną rozmowę dotyczącą poszukiwania czujników można znaleźć tutaj: Dobór czujnika ciśnienia i komponentów PCB – rozmowa z ChatGPT

Jak skutecznie szukać komponentów z pomocą AI?

Po tych dwóch eksperymentach można zauważyć pewną zależność. ChatGPT jest w stanie bardzo szybko znaleźć interesujące rozwiązania, ale jakość odpowiedzi w dużym stopniu zależy od tego, ile informacji otrzyma na początku.

Nie trzeba oczywiście przygotowywać kompletnej dokumentacji technicznej. Warto jednak przekazać przynajmniej najważniejsze wymagania.

Przede wszystkim należy określić:

  • Zastosowanie – co urządzenie ma mierzyć lub wykonywać i w jakich warunkach będzie pracować.
  • Parametry techniczne – np. zakres pomiarowy, częstotliwość próbkowania, dokładność czy napięcie zasilania.
  • Ograniczenia mechaniczne – rozmiary, rodzaj złącza, sposób montażu i ewentualne wymagania dotyczące obudowy.
  • Budżet i dostawcę – maksymalną cenę komponentu oraz preferowany sklep, np. Botland lub LCSC.
  • Dodatkowe wymagania – np. dostępność, kompatybilność z konkretnym mikrokontrolerem czy możliwość zastosowania zamienników.

Dobrym pomysłem jest również poproszenie o przygotowanie tabeli porównawczej. Dzięki temu można zestawić kilka rozwiązań, sprawdzić ich zalety i wady, a następnie samodzielnie wybrać najbardziej odpowiedni komponent.

Co ważne, nie zawsze warto wprowadzać zbyt wiele ograniczeń już w pierwszym zapytaniu. Czasami lepiej pozwolić AI zaproponować kilka różnych rozwiązań, również takich, których początkowo nie braliśmy pod uwagę. Dopiero później można stopniowo zawężać kryteria i eliminować komponenty niespełniające wymagań.

Czy AI może zastąpić czytanie not katalogowych?

Niestety nie, przynajmniej na obecnym etapie rozwoju tej technologii.

Jedną z największych zalet ChatGPT jest możliwość analizy informacji pochodzących z różnych źródeł. Możemy zapytać po polsku o komponent opisany w angielskiej lub chińskiej dokumentacji, a następnie poprosić o porównanie konkretnych parametrów. Jest to szczególnie przydatne w przypadku mniej popularnych układów, których noty katalogowe bywają trudne do znalezienia lub zawierają informacje przedstawione w mało czytelny sposób.

Sztuczna inteligencja może też znacznie przyspieszyć poszukiwanie zamienników. Zamiast ręcznie porównywać kilkanaście dokumentacji, można poprosić o wskazanie układów o zbliżonych parametrach. Problem polega jednak na tym, że AI potrafi również popełniać błędy. Może pomylić warianty jednego czujnika, przypisać mu niewłaściwy zakres pomiarowy, przeoczyć wymagania dotyczące zasilania albo niepoprawnie zinterpretować informacje zawarte w nocie katalogowej.

W przypadku projektowania PCB nawet niewielka pomyłka może mieć poważne konsekwencje. Zamówienie układu o niewłaściwej obudowie, niezgodnym rozkładzie wyprowadzeń czy zbyt niskim dopuszczalnym napięciu może oznaczać konieczność przeprojektowania całej płytki.

Dlatego każdy wybrany komponent powinien zostać samodzielnie zweryfikowany w dokumentacji producenta. Szczególną uwagę warto zwrócić na parametry graniczne, rozkład wyprowadzeń, wymagane elementy zewnętrzne oraz warunki, w których producent gwarantuje określone parametry. AI może znacząco skrócić proces poszukiwania, ale nie powinno być jedynym źródłem informacji przy podejmowaniu ostatecznej decyzji.

Podsumowanie

Moim zdaniem sztuczna inteligencja doskonale sprawdza się jako rozbudowana wyszukiwarka komponentów elektronicznych. Szczególnie przydatna okazuje się możliwość opisywania wymagań zwykłym językiem, bez konieczności znajomości dokładnych oznaczeń produktów.

W przypadku gotowych modułów rezultaty były naprawdę dobre. ChatGPT nie tylko zaproponował odpowiedni czujnik, ale również uwzględnił dodatkowe akcesoria i zasugerował funkcje, których początkowo nie planowałem. Przy doborze komponentów do PCB pojawiło się znacznie więcej problemów. Początkowe propozycje były zbyt drogie lub nie odpowiadały dokładnie wymaganiom, a znalezienie odpowiednich rozwiązań wymagało kilku dodatkowych pytań. Nie zmienia to jednak faktu, że cały proces może być znacznie szybszy niż tradycyjne przeszukiwanie katalogów i porównywanie dokumentacji.

Na szczególną uwagę zasługuje możliwość ograniczenia wyszukiwania do konkretnego dostawcy. Pozwala to uniknąć zamawiania pojedynczych elementów z kilku różnych sklepów, a tym samym oszczędzić na kosztach transportu, a dodatkowym atutem jest możliwość wyszukiwania zamienników oraz proponowania elementów, o których mogliśmy zapomnieć podczas planowania projektu.

Najważniejsze jest jednak zachowanie zdrowego rozsądku. ChatGPT powinien pełnić rolę pomocnika podczas projektowania, a nie samodzielnego konstruktora, któremu bezkrytycznie powierzamy wszystkie decyzje.

Ostatecznie to projektant odpowiada za prawidłowy dobór komponentów, poprawność schematu i działanie gotowego urządzenia. AI może wykonać sporą część żmudnej pracy związanej z wyszukiwaniem informacji, ale ich weryfikacja nadal pozostaje po naszej stronie.

A Wy korzystacie już z AI podczas projektowania elektroniki? A może macie przykłady komponentów, które sztuczna inteligencja dobrała wyjątkowo dobrze albo wręcz przeciwnie – całkowicie błędnie?

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...