logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?

p.kaczmarek2 01 Mar 2024 09:41 2394 11
REKLAMA
  • AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    Każdy chyba słyszał już o ChatGPT, ale czy słyszeliście o ChatPDF? ChatPDF to narzędzie pozwalające na odbycie tytułowej "pogawędki" z plikiem PDF. W tym temacie spróbuję wykorzystać je do wyszukania informacji w nocie katalogowej pewnego expandera portów, zobaczymy jaki będzie tego skutek. Czyżby nadchodziła epoka w której elektronicy nie będą czytali not katalogowych, bo AI to zrobi za nich? Przekonajmy się!

    Eksperyment - nota katalogowa MCP23017
    Zatem wrzucamy PDF i rozmawiamy - zobaczymy, co te AI potrafi. Na pierwszy ogień poszedł expander portów z interfejsem I2C, MCP23017.
    Po wczytaniu dokumentu AI od razu opisuje czym ten dokument jest:
    Chat napisał:

    Hello and welcome to the MCP23017/MCP23S17 PDF file! This document provides detailed information about the features and specifications of these 16-bit remote bidirectional I/O ports. With high-speed I/O interfaces, configurable interrupt output pins, and low standby current, these devices offer versatile and efficient solutions for your project needs.

    Example questions:

    What are the different package types available for the MCP23017/MCP23S17 devices?
    How can the interrupt output pins be configured on these I/O ports?
    What is the operating voltage range for the MCP23017/MCP23S17 devices in different temperature conditions?

    Pora na pierwsze pytanie. Może zapytamy o sekcję adresową:
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    Czy AI jest w stanie "zrozumieć" jak tworzy się te adresy?
    p.kaczmarek2 napisał:

    Which I2C addresses can have this chip?

    Chat napisał:

    The MCP23017/MCP23S17 devices support 7-bit slave addressing for I2C communication. The slave address consists of four fixed bits and three user-defined hardware address bits (pins A2, A1, and A0). Therefore, with these three address pins, you can configure up to eight different I2C addresses for the chip.

    By setting the states of pins A2, A1, and A0, you can select one of the following I2C addresses for the MCP23017/MCP23S17 devices:

    0b0100000 (A2=0, A1=0, A0=0)
    0b0100001 (A2=0, A1=0, A0=1)
    0b0100010 (A2=0, A1=1, A0=0)
    0b0100011 (A2=0, A1=1, A0=1)
    0b0100100 (A2=1, A1=0, A0=0)
    0b0100101 (A2=1, A1=0, A0=1)
    0b0100110 (A2=1, A1=1, A0=0)
    0b0100111 (A2=1, A1=1, A0=1)
    These addresses allow you to communicate with multiple MCP23017/MCP23S17 devices on the same I2C bus by assigning unique addresses to each device .

    W odpowiedzi pojawił się też link do strony 15:
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    Dla czytelności, sam dodałem spacje:
    
    0b010 0000 (A2=0, A1=0, A0=0)
    0b010 0001 (A2=0, A1=0, A0=1)
    0b010 0010 (A2=0, A1=1, A0=0)
    0b010 0011 (A2=0, A1=1, A0=1)
    0b010 0100 (A2=1, A1=0, A0=0)
    0b010 0101 (A2=1, A1=0, A0=1)
    0b010 0110 (A2=1, A1=1, A0=0)
    0b010 0111 (A2=1, A1=1, A0=1)
    

    Odpowiedź jest całkiem niezła. AI poprawnie podało adresy 7-bitowe, ciekawe, czy też pamięta o bicie Read/Write?
    p.kaczmarek2 napisał:

    Assume that I want to write data to this chip via I2C with A2, A1 and A0 high. Which byte would I need to send first?

    Oczekuję odpowiedzi z rozpiską bitów, a co otrzymam?
    Chat napisał:

    If you want to write data to the MCP23017/MCP23S17 chip via I2C with A2, A1, and A0 set to high, you would need to send the control byte first. The control byte consists of the 7-bit slave address (including the R/W bit) followed by the register address you want to write to.

    For the MCP23017/MCP23S17 devices with A2, A1, and A0 set to high, the slave address in binary form would be 0b0100111 (A2=1, A1=1, A0=1). Since this is a write operation, the R/W bit would be 0.

    Therefore, the control byte you would need to send first for writing data to the MCP23017/MCP23S17 chip with A2, A1, and A0 high would be:

    Slave Address: 0b01001110 (R/W = 0)
    After sending this control byte, you can proceed with sending the data bytes to write to the desired registers on the MCP23017/MCP23S17 chip

    Całkiem nieźle! Rozdzielmy sobie:
    
    0b010 0111 (A2=1, A1=1, A0=1).
    

    Tu AI poprawnie dopisało bit R/W, w tym przypadku zerowy:
    
    Slave Address: 0b0100 1110 (R/W = 0)
    

    To teraz zapytajmy o połączenia. Przekonajmy się, czy AI wie np. o rezystorach pull-up:
    p.kaczmarek2 napisał:

    Ok, can you specify how can I connect MCP23017 via I2C to Arduino UNO? Which signals do I need to connect, do I need to connect anything else?

    Odpowiedź (w formie obrazka ze względu na formatowanie):
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    Czyli AI pamiętało o:
    - zasilaniu i masie
    - SDA i SCL (poprawnie podało piny A4 i A5 Arduino)
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    - o pinach adresowych A0, A1, A2
    - a nawet o rezystorach pull-up
    - dodatkowo powtórzyło o zasilaniu
    Może dopytajmy o zasilanie:
    p.kaczmarek2 napisał:

    How to power this circuit, do I need any extra components?

    Odpowiedź:
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    AI pamięta, że jest mowa o Arduino i niejawnie sobie założyło, że chodzi o Arduino UNO, co jest raczej poprawnym założeniem. AI też pamięta o kondensatorach odsprzęgających.
    Ciekawe co AI zrobi, jak zmienię zdanie.
    p.kaczmarek2 napisał:

    I changed my mind. I want to use Arduino Mega instead. How can I connect MCP23017 to Arduino Mega?

    Oczekuję odpowiedzi zgodnej z tym:
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    No i taką dostałem:
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    To świadczy o tym, że ten model językowy po prostu zna wyprowadzenia Arduino Mega.

    p.kaczmarek2 napisał:

    Ok, on Arduino Mega, can you show a sample code that will set MCP23017 GPA1 to high state and all other port A pins to low state?

    Odpowiedź:
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    Kod jako tekst:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Nie mam takiej konfiguracji sprzętu by to odpalić, ale co my tu mamy... do IOCON AI nic nie wpisało, ale ustawia rejestry odpowiedzialne za PORT A. Nie ustawia rezystorów pull up (trzeci rejestr), ale adresy się zgadzają, też patrzę na biblioteki obsługi MCP z Github:
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    Wygląda ok...

    To sprawdźmy jeszcze, czy AI wie jak ustawić rezystor pull up:
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    Wygląda ok.

    To może coś trudniejszego - spróbujmy przerzucić kod na platformę mikroC dla PIC. Tu jest dokumentacja tamtejszej biblioteki I2C:
    https://download.mikroe.com/documents/compilers/mikroc/pic/help/i2c_library.htm
    Zobaczmy, co AI wygenerowało:
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    No i tu jest problem. Nie wydaje mi się, by można było to zrobić wszystko w jednej transakcji I2C. Jeszcze gdyby kolejne bajty miały być umieszczane na kolejne rejestry w pamięci (poprzez autoinkrementacje wskaźnika), to by to przeszło, ale przecież tu chcemy pisać do osobnych rejestrów. Zresztą, nawet ten tryb trzeba by włączyć:
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    No nie przekonuje mnie ten kod. Obawiam się, że to tak nie zadziała, a jak Wy myślicie?

    Podsumowanie
    Zasadniczo mam dwa wnioski:
    - ten model językowy rzeczywiście jest w stanie znaleźć informacje w PDF
    - ten model językowy posiada też dość pokaźny zbiór wiedzy spoza podanego PDF, wie np. które piny Arduino to I2C, itd, zna mniej więcej biblioteki Arduino
    Natomiast model nie jest idealny i jak to zwykle bywa "halucynuje" bądź "zmyśla", w przypadku mniej znanych języków bądź problemów może tworzyć odpowiedzi wyglądające na poprawne ale w rzeczywistości nie działające.
    Mimo wszystko, ciekawe jak to będzie wyglądać za rok czy tam za 10 lat, zapraszam do komentowania. Czy widzicie potencjał w takim "AI pomocniku" do czytania not katalogowych?

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
  • REKLAMA
  • #2 20985602
    czareqpl
    Poziom 33  
    Nie napisałeś dokładnie w jaki sposób wysłałeś plik PDF w celu jego analizy kontekstowej.
  • REKLAMA
  • #3 20985610
    p.kaczmarek2
    Moderator Smart Home
    Wchodzisz na stronę ChatPDF.com, nie musisz się nawet logować, po prostu przerzucasz plik PDF na takie pole:
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    Wersja darmowa, podobnie jak z GPT, ma swoje ograniczenia, ale widziałem też że pojawiają się już w sieci darmowe, możliwe do odpalenia lokalnie modele i to też postaram się omówić wkrótce.

    Polecam wszystkim poeksperymentować, dajcie znać czy u Was to narzędzie się sprawdza czy nie.

    Added after 3 [minutes]:

    EDIT: Swoją drogą wrzuciłem też notę katalogową mało znanego układu SM15115E i poprosiłem o przykładowy kod - niestety wyszła herezja, ChatPDF ubzdurał sobie, że użyje do tego biblioteki Wire z Arduino... no trudno, ale to już wiadomo było przy ChatGPT - te modele językowe robią sensowne odpowiedzi tylko na tematy które miały szeroko opisywane w danych uczących.
    Pomogłem? Kup mi kawę.
  • #4 20985801
    speedy9
    Pomocny dla użytkowników
    Ja chciałbym zaznaczyć, że PDFy potrafi też czytać Microsoftowy Copilot w przeglądarce EDGE. Pomimo,że PDF jest po angielsku, to pytać można po polsku i odpowiedzi też będą po polsku. Odpowiedź na pierwsze pytanie jest inna i widać halucynacje (skąd mu się nagle D0, D1 i D2 wzięło?)
    AI czyta noty katalogowe? Czy ChatPDF może pomóc elektronikowi?
    Niemniej warte potestowania.
  • #5 20985906
    silvvester
    Poziom 25  
    p.kaczmarek2 napisał:
    Czy widzicie potencjał w takim "AI pomocniku" do czytania not katalogowych?


    Nie nie widzę. Być może kiedyś AI przyda się do wspomagania procesów np. routingu. Być może jeśli baza półprzewodników poszerzy się do 99% jakie dostępne są na rynku, AI przyda się do wyszukiwania podzespołów o określonych parametrach czy funkcjach.
  • REKLAMA
  • #6 20986108
    gulson
    Administrator Systemowy
    silvvester napisał:
    Być może jeśli baza półprzewodników poszerzy się do 99% jakie dostępne są na rynku, AI przyda się do wyszukiwania podzespołów o określonych parametrach czy funkcjach.

    Do tego pewnie będzie to zmierzać, ale jeszcze trochę wody upłynie. Na razie ważniejsze jest generowanie kotków, memów i filmów.
    Taka gospodarka.
  • REKLAMA
  • #7 20986569
    pixel7
    Poziom 23  
    p.kaczmarek2 napisał:
    Czy widzicie potencjał w takim "AI pomocniku" do czytania not katalogowych?

    Lektur, uczniowie też nie będą czytać, wszystko opowie wujek GPT. I z tą wiedzą rusza w życie.
  • #8 20988346
    andrzejlisek
    Poziom 31  
    pixel7 napisał:
    p.kaczmarek2 napisał:
    Czy widzicie potencjał w takim "AI pomocniku" do czytania not katalogowych?

    Lektur, uczniowie też nie będą czytać, wszystko opowie wujek GPT. I z tą wiedzą rusza w życie.

    Można powiedzieć, że to będzie kompresja stratna tekstu literackiego. Istotne informacje będą zachowane, ale oryginalny tekst i nieistotne informacje będą bezpowrotnie utracone. Dokładnie tak samo, jak kompresja stratna obrazu.

    Dodano po 3 [minuty]:

    silvvester napisał:
    p.kaczmarek2 napisał:
    Czy widzicie potencjał w takim "AI pomocniku" do czytania not katalogowych?


    Nie nie widzę. Być może kiedyś AI przyda się do wspomagania procesów np. routingu. Być może jeśli baza półprzewodników poszerzy się do 99% jakie dostępne są na rynku, AI przyda się do wyszukiwania podzespołów o określonych parametrach czy funkcjach.

    Natomiast, jak w bazie znajdą się podstawowe półprzewodniki, jak tranzystory, tyrystory, triaki, takie AI pozwoli łatwo i sprawie uzyskać odpowiedź na jedno proste pytanie ważne przy amatorskim konstruowaniu: Która końcówka elementu to która część elementu? Żeby było wiadomo, która końcówka to baza, która to emiter, która to kolektor (w przypadku tranzystora NPN).
  • #9 20990830
    pixel7
    Poziom 23  
    andrzejlisek napisał:
    Istotne informacje będą zachowane, ale oryginalny tekst i nieistotne informacje będą bezpowrotnie utracone.

    Będziesz o tej istocie sam decydował, wspólnie ze mną, czy oddamy interpretację innym?
    Kto zostanie Wielkim Cenzorem i Nadzorcą Uczenia AI? Wyłonimy go w wyborach, czy pozostawimy losowi?
  • #10 20991159
    andrzejlisek
    Poziom 31  
    pixel7 napisał:
    andrzejlisek napisał:
    Istotne informacje będą zachowane, ale oryginalny tekst i nieistotne informacje będą bezpowrotnie utracone.

    Będziesz o tej istocie sam decydował, wspólnie ze mną, czy oddamy interpretację innym?
    Kto zostanie Wielkim Cenzorem i Nadzorcą Uczenia AI? Wyłonimy go w wyborach, czy pozostawimy losowi?


    Problem w tym, że nikt nie ma na to wpływu, a także nie jest możliwe obiektywne stwierdzenie, jaka decyzja jest słuszna, nawet zapewne sami programiści ChatGPT nie mają, bo to może zależeć od wcześniej zapodanej treści, którą ten GPT analizuje.

    Poza tym algorytm będzie zmienny, bo co rusz do "bazy wiedzy" będą dokładane nowe materiały i dzisiaj GPT wyda taką odpowiedź, a jutro już inną na to samo pytanie.
  • #11 20991208
    czareqpl
    Poziom 33  
    andrzejlisek napisał:
    Poza tym algorytm będzie zmienny, bo co rusz do "bazy wiedzy" będą dokładane nowe materiały i dzisiaj GPT wyda taką odpowiedź, a jutro już inną na to samo pytanie.


    Czyli w sumie jak inteligentny człowiek, który nie jest krową o niezmiennych poglądach.
REKLAMA