Wszystkie komponenty, w tym wyświetlacz, należy połączyć zgodnie ze schematem. W miejsce regulatora napięcia typu 7805 można użyć zasilacza o napięciu wyjściowym równym 5 V.
Należy zwrócić uwagę, że pin GAIN wzmacniacza MAX98357A jest podłączony do masy w celu zwiększenia mocy wyjściowej. Usunięcie tego połączenia nieznacznie zmniejszy moc wyjściową.
Klawiatura PS2, podobnie jak klawiatura USB, potrzebuje tylko dwóch przewodów sygnałowych do połączenia z mikrokontrolerem, który w tym przypadku jest urządzeniem typu data-in. Dlatego można wykorzystać piny G34 i G35 płytki ESP32, które stanowią wejścia cyfrowe. Tych pinów nie należy używać do sterowania ekranem TFT, diodami LED, przekaźnikami itp. jednak doskonale nadają się do współpracy z klawiaturą. Oczywiście klawiaturę PS2 można podłączyć do dowolnych innych pinów GPIO.
Prowadzenie rozmów przez ChatGPT
Prowadzenie rozmów przez ChatGPT jest proste dzięki przełomowemu rozwiązaniu Google TTS (text-to-speech) i wykorzystaniu płytki ESP32. We wcześniejszych projektach stosowano kilka darmowych, sterowanych sprzętowo bibliotek dźwiękowych, takich jak ESP8266SAM.h, AudioOutputI2S.h i AudioGeneratorRTTl.h. Pomimo, że działają one poprawnie także na płytce ESP32, jakość dźwięku jest rozczarowująca. W przypadku dłuższej wypowiedzi maleje jej zrozumiałość, ma się wrażenie jakby ktoś mówił przez długą rurę. Biblioteka AudioGeneratorRTTL.h generuje piękne dzwonki, jednak nie pozwala na tworzenie komunikatów głosowych. Dlatego wybór padł na Google TTS.
Aby wzmacniacz MAX98357A z interfejsem I²S współpracował z Google TTS wymagane są tylko trzy połączenia z pinami GPIO i dostęp do Internetu. Ponadto niezbędne są cztery pliki nagłówkowe, dostępne na GitHub w postaci skompresowanej do pliku zip.
W ramach jednego konta Google TTS może bezpłatnie wypowiedzieć milion znaków miesięcznie. Ponadto, liczba znaków wypowiadanych za jednym razem jest ograniczona do dwustu. Po przekroczeniu tych ograniczeń wymagane jest płatne konto Google TTS. Dlatego warto stosować skróty i zamiast Electronics For You powiedzieć EFY.
Wystarczy zadać pytanie, poszukać odpowiedzi lub poprosić o fragment kodu, a moduł ESP32 z klawiaturą PS2 pomoże w stworzeniu opisu problemu na ekranie TFT. Następnie moduł ESP32 wyśle pytanie do ChatGPT, a uzyskane dane wyjściowe zostaną wyświetlone na tym samym ekranie. Jednocześnie głośnik podłączony do wzmacniacza MAX98357A będzie wypowiadał tekst widoczny na ekranie.
Do tej pracy nie jest wymagany komputer multimedialny, choć niezbędne jest połączenie internetowe i własny klucz dostępu do interfejsu API ChatGPT, stanowiący jedyne kryterium dostępu do interfejsu API openai.com. Nie jest wymagane użycie loginu i hasła.
Można się zastanawiać, dlaczego w projekcie użyto starej klawiatury PS2 zamiast nowszego modelu USB. Podjęto próbę użycia małej klawiatury USB, jednak nie komunikowała się ona z modułem ESP32. To samo dotyczyło klawiatury Bluetooth.
Kod oprogramowania został opracowany w Arduino IDE. Należy w nim skonfigurować klucz do API OPEN AI oraz SSID i hasło dla Wi-Fi. Skompilowany kod źródłowy trzeba przesłać do modułu ESP32, wybierając odpowiedni port COM i płytkę ESP32.
Montaż i testowanie urządzenia
Układ można zmontować na płytce drukowanej ogólnego przeznaczenia, jak to zrobiono w prototypie wykonanym przez autora. Najpierw na płytkę ESP32 należy wgrać skompilowany kod źródłowy terminala. Następnie, przed przystąpieniem do montażu, należy zapoznać się z tabelami od 2 do 4. Gdy wszystko jest gotowe należy włączyć zasilanie i odczekać pewien czas.
Opóźnienia używane wewnątrz pętli są dość specyficzne. Można je dostosować, ale zaleca się rozpoczęcie prób od podanych wartości. W razie potrzeby, po uzyskaniu zrozumiałych dźwięków można dokonać korekt.