Sisukord:
- Tarvikud
- Samm: materjalid
- Samm: ühendusskeem
- 3. samm: seadistage SPI
- 4. samm: kood
- 5. samm: tulemus
- 6. samm: CrowPi2-materjalide kasutamine
- Samm 7: CrowPi2-ühendusskeemi kasutamine
- 8. samm: CrowPi2 kasutamine- seadistage SPI jaoks
- 9. samm: koodi CrowPi2 kasutamine
- 10. samm: CrowPi2 kasutamine-tulemus
- Samm 11: CrowPi2 kasutamine- edasi minek
Video: Ehita Rainbow interaktiivne sild Minecrafti Raspberry Pi väljaande abil: 11 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Eile nägin oma 8-aastast vennapoega Minecrafti mängimas Raspberry Pi-ga, mille ma talle varem andsin, siis sain idee, mis kasutab koodi kohandatud ja põneva Minecraft-pi LED-plokkide projekti tegemiseks. Minecraft Pi on suurepärane võimalus Raspberry Pi mikroarvutiga alustamiseks, Minecraft Pi on spetsiaalne kohandatud Minecrafti versioon, mis võimaldab meil mänguga suhelda, kasutades surmavalt lihtsat Pythoni API -d, et kohandada mängukogemust ja rekvisiite!
Minecraft maailmas saab Raspberry Pi abil teha palju projekte, kuid spetsiaalselt meie jaoks sellest ei piisanud, otsisime samal ajal midagi väljakutsuvat ja vilkuvat. Selles projektis astume mitmetele Minecrafti plokkidele, tuvastame ploki ID ja tuvastame konkreetse ploki värvi, millele astusime, vastavalt värvile, mille põleme meie RGB LED -i, et luua interaktiivne sammude mäng!
Efekti saavutamiseks kasutan kahte meetodit, esimene on tarvikute kasutamine, mis võivad olla väga kaootilised…; teine kasutab CrowPi2 (paljude anduritega õppearvuti, praegu ühisrahastatud Kickstarteris: CrowPi2)
alustame ja vaatame, kuidas sellist hämmastavat projekti arhiveerida!
Tarvikud
CrowPi2 on nüüd kickstarteris otse -eetris, CrowPi2 projekt on kogunud peaaegu 250 000 dollarit.
Vajuta linki:
Meetod 1 Tarvikute kasutamine
Samm: materjalid
● 1 x Raspberry Pi 4 mudel B
● 1 x pildiga TF -kaart
● 1 x Raspberry Pi toiteallikas
● 1 x 10,1 -tolline monitor
● 1 x monitori toiteallikas
● 1 x HDMI -kaabel
● 1 x klaviatuur ja hiir
● 1 x RGB LED (tavaline katood)
● 4 x džemprid (naissoost naissoost)
Samm: ühendusskeem
RGB värvilises LED -is on tegelikult kolm tuld, mis on punane, roheline ja sinine. Juhtige neid kolme tuld, et kiirgata erineva intensiivsusega valgust, ja segatuna võivad nad eraldada erinevat värvi valgust. LED -tule neli tihvti on vastavalt GND, R, G ja B. Kasutatud RGB LED on tavaline katood ja ühendus Raspberry Pi -ga on järgmine:
RaspberryPi 4B (funktsiooni nimetuses) RGB LED
GPIO0 1 PUNANE
GPIO1 3 ROHELINE
GPIO2 4 SININE
GND 2 GND
Teine pilt on riistvaraühendus
3. samm: seadistage SPI
Kuna RGB juhtimiseks peame kasutama SPI -d, peame kõigepealt lubama SPI -liidese, mis on vaikimisi keelatud. SPI liidese lubamiseks võite järgida järgmisi samme.
Esiteks saate kasutada töölaua GUI -d, minnes menüüsse Pi start MenupreferencesRaspberry Pi Configuration, nagu see on näidatud esimesel pildil.
Teiseks liikuge jaotisse „Liidesed” ja lubage SPI ning klõpsake nuppu OK (teine pilt).
Lõpuks taaskäivitage oma Pi, et muudatused jõustuksid. Klõpsake menüüd Pi Start Menüü EelistusedSulgemine. Kuna peame lihtsalt taaskäivitama, klõpsake nuppu Taaskäivita.
4. samm: kood
Alustuseks kirjutame oma püütoni koodi, esiteks importime mõned raamatukogud, mida vajame oma koodi integreerimiseks Minecrafti maailmaga. Seejärel impordime ajaraamatukogu, täpsemalt funktsiooni nimega uni. Unefunktsioon võimaldab meil enne funktsiooni täitmist teatud intervalli oodata. Lõpuks impordime RPi. GPIO raamatukogu, mis võimaldab meil Raspberry Pi GPIO -d juhtida.
saidilt mcpi.minecraft import Minecraft ajast importimine unerežiim import RPi. GPIO GPIO -na
Ja see on kõik, oleme raamatukogude importimisega lõpetanud, nüüd on aeg neid kasutada! Esimene asi on kasutada Minecrafti teeki, tahame ühendada oma pythoni skripti Minecrafti maailmaga. Seda saame teha, kutsudes esile MCPI raamatukogu funktsiooni init () ja seejärel määrama GPIO režiimi ja keelama hoiatuse.
mc = Minecraft.create () GPIO.setmode (GPIO. BCM) GPIO.setwarnings (0)
Nüüd määratleme mõned vikerkaarevärvid kuueteistkümnendsüsteemis, et saaksime muuta RGB -värve.
VALGE = 0xFFFFFF RED = 0xFF0000 ORANGE = 0xFF7F00 KOLLANE = 0xFFFF00 GREEN = 0x00FF00 CYAN = 0x00FFFF BLUE = 0x0000FF PURPLE = 0xFF00FF MAGENTA = 0xFF0000
Järgmisena peame määratlema mõned muutujad, et salvestada villaploki värv, mis on juba määratletud Minecrafti plokkide loendis.
W_WHITE = 0 W_RED = 14 W_ORANGE = 1 W_YELLOW = 4 W_GREEN = 5 W_CYAN = 9 W_BLUE = 11 W_PURPLE = 10 W_MAGENTA = 2
Minecrafti villaploki ID on 35. Nüüd peame konfigureerima RGB LED -i tihvti ja seadistama need.
red_pin = 17 green_pin = 18 blue_pin = 27
GPIO.setup (red_pin, GPIO. OUT, initial = 1) GPIO.setup (green_pin, GPIO. OUT, initial = 1) GPIO.setup (blue_pin, GPIO. OUT, initial = 1)
Seejärel seadistage iga tihvti jaoks PWM, pange tähele, et PWM väärtuste vahemik on 0–100. Siin seadsime kõigepealt RGB -värvi valgeks (100, 100, 100).
punane = GPIO. PWM (red_pin, 100)
roheline = GPIO. PWM (green_pin, 100) blue = GPIO. PWM (blue_pin, 100) red.start (100) green.start (100) blue.start (100)
Järgnevalt loome kaks funktsiooni, mille abil saab dekodeerida värve ja valgustada RGB -d! Pange tähele, et map2hundred () funktsioon on väärtuste kaardistamine vahemikus 255 kuni 100, nagu me varem mainisime, peaks PWM väärtus olema 0-100.
def map2hundred (väärtus): return int (väärtus * 100 /255)
def set_color (color_code): # dekodeeri red_value = color_code >> 16 & 0xFF green_value = color_code >> 8 & 0xFF blue_value = color_code >> 0 & 0xFF
# Kaardi väärtused red_value = map2hundred (red_value) green_value = map2hundred (green_value) blue_value = map2hundred (blue_value)
# Särama lööma! red. ChangeDutyCycle (punane_väärtus) roheline. ChangeDutyCycle (roheline_väärtus) sinine. ChangeDutyCycle (sinine_väärtus)
Hästi tehtud! On aeg alustada meie põhiprogrammi, oodake, tuleks määrata veel üks muutuja, et salvestada villaploki värvikood enne põhiprogrammi:
last_data = 0 proovi: x, y, z = mc.player.getPos () mc.setBlocks (x, y, z, x+1, y, z+2, 35, 14) mc.setBlocks (x+2, y+1, z, x+3, y+1, z+2, 35, 11) mc.set Blokid (x+4, y+2, z, x+5, y+2, z+2, 35, 2) mc.setBlocks (x+6, y+3, z, x+7, y+3, z+2, 35, 5) mc.setBlocks (x+8, y+4, z, x+9, y+4, z+2, 35, 4) mc.setBlocks (x+10, y+5, z, x+11, y+5, z+2, 35, 10) mc.setBlocks (x+12, y+6, z, x+13, y+6, z+2, 35, 1) mc.set Blokid (x+14, y+5, z, x+15, y+5, z+2, 35, 10) mc.setBlocks (x+16, y+4, z, x+17, y+4, z+2, 35, 4) mc.setBlocks (x+18, y+3, z, x+19, y+3, z+2, 35, 5) mc.setBlocks (x+20, y+2, z, x+21, y+2, z+2, 35, 2) mc.setBlocks (x+22, y+1, z, x+23, y+1, z+2, 35, 11) mc.set Blokeerib (x+24, y, z, x+25, y, z+2, 35, 14) samas True: x, y, z = mc.player.getPos () # mängija positsioon (x, y, z) block = mc.getBlockWithData (x, y-1, z) # block ID #print (block) if block.id == VILT ja viimased_andmed! = Plokk.andmed: kui plokk.andmed == W_RED: print ("Punane!") Set_color (RED) kui block.data == W_ORANGE: print ("Orange!") Set_color (ORANGE) if block.data == W_ KOLLANE: print ("Kollane!") Set_color (KOLLANE), kui block.data == W_GREEN: print ("Green!") Set_color (GREEN) if block.data == W_CYAN: print ("Cyan!") Set_color (CYAN) if block.data == W_BLUE: print ("Blue!") set_color (BLUE) if block.data == W_PURPLE: print ("Purple!") set_color (PURPLE) kui block.data == W_MAGENTA: print (" Magenta! ") Set_color (MAGENTA) if block.data == W_WHITE: print (" Valge! ") Set_color (WHITE) last_data = block.data sleep (0.05), välja arvatud KeyboardInterrupt: pass GPIO.cleanup ()
Nagu põhiprogramm ülal näidatud, tuleb esmalt mõne värvilise villaploki genereerimiseks kasutada mõningaid käske, seejärel peame välja selgitama mängija positsiooni, et saada plokkide ID ja selle värvikood. Pärast blokeeringuteabe saamist kasutame avaldust, et teha kindlaks, kas mängija all olev plokk on villaplokk ja kas sellel on värvikood. Kui jah, siis otsustage, mis värvi villaplokk on, ja helistage funktsioonile set_color (), et muuta RGB -ledi värvi sama, mis villaplokk.
Lisaks lisame proovi/väljavõtte, et tabada erand kasutaja katkestamisest, kui soovime programmist väljuda, et kustutada GPIO tihvtide väljund.
Lisatud on täielik kood.
Hästi tehtud, nii palju tarvikuid ja liiga keeruline? Ärge muretsege, vaatame projekti saavutamiseks teist meetodit, mis muudab teid paindlikumaks ja mugavamaks, kasutades meie CrowPi2!
5. samm: tulemus
Avage mäng ja käivitage skript, tulemust näete ülaltoodud videol
Seejärel ehitame CrowPi2 abil Rainbow interaktiivse silla
6. samm: CrowPi2-materjalide kasutamine
● 1 x CrowPi2
Samm 7: CrowPi2-ühendusskeemi kasutamine
Pole tarvis. CrowPi2 -l on palju kasulikke andureid ja komponente (üle 20), kõik ühes vaarika pi sülearvutis ja STEM -i haridusplatvormis, mis võimaldab meil hõlpsalt ja higistamata teha mitmeid projekte! Sel juhul kasutame CrowPi2 -l atraktiivset ja värvikat moodulit, mis on 8x8 RGB maatriksmoodul, mis võimaldab meil juhtida korraga 64 RGB -d!
8. samm: CrowPi2 kasutamine- seadistage SPI jaoks
Pole tarvis. CrowPi2-l on sisseehitatud pilt koos õppesüsteemiga! Kõik on ette valmistatud, mis tähendab, et saate otse programmeerida ja õppida. Pealegi on see meie CrowPi2 abil lihtne ja juba plaadile integreeritud STEAM -platvormina, mis on valmis minema.
9. samm: koodi CrowPi2 kasutamine
Nüüd on aeg meie programmiga alustada! Esiteks importige mõned teegid, näiteks MCPI raamatukogu, mis on Minecraft Pi Pythoni teek, mis võimaldab meil Minecrafti maailmaga integreerimiseks kasutada väga lihtsat API -d; ajaraamatukogu, mis võimaldab meil uinumisfunktsioonil oodata teatud intervalli enne funktsiooni täitmist; RPi. GPIO raamatukogu, mis võimaldab meil juhtida Raspberry Pi GPIO tihvte.
saidilt mcpi.minecraft import Minecraft ajast importimine unereport RPi. GPIO GPIO -na
Lõpuks impordime raamatukogus raamatukogu nimega rpi_ws281x, mis on RGB maatriksiteek, seal on mitmeid funktsioone, mida kasutame, näiteks PixelStrip LED -riba objekti seadistamiseks ja Color, et konfigureerida RGB -värvi objekt valgustamiseks meie RGB LED -id
rpi_ws281x import PixelStrip, värviline
Ja see on kõik, oleme raamatukogude importimisega lõpetanud, nüüd on aeg neid kasutada! Samamoodi on esimene asi kasutada Minecrafti teeki, tahame ühendada oma pythoni skripti Minecrafti maailmaga, mida saame teha, kutsudes esile MCPI raamatukogu init -funktsiooni:
mc = Minecraft.create ()
Nüüd, kui tahame mineraatide maailmas toiminguid teha, saame kasutada mc -objekti.
Järgmine samm on määratleda RGB LED -maatriksiklass, mida kasutame oma RGB LED -ide juhtimiseks, lähtestame klassi põhikonfiguratsiooniga, nagu LED -ide arv, tihvtid, heledus jne.
loome funktsiooni nimega puhas, mis "puhastab" vähem, kui on antud konkreetne värv, ja ka funktsiooni nimega käivitada, mis initsialiseerib tegeliku RGB LED -objekti esmakordsel kasutamisel.
klass RGB_Matrix:
def _init _ (ise):
# LED -riba konfiguratsioon:
self. LED_COUNT = 64 # LED -pikslite arv.
self. LED_PIN = 12 # GPIO pin ühendatud pikslitega (18 kasutab PWM!).
ise. LED_FREQ_HZ = 800000 # LED -signaali sagedus hertsides (tavaliselt 800 kHz)
self. LED_DMA = 10 # DMA kanal, mida kasutada signaali genereerimiseks (proovige 10)
self. LED_BRIGHTNESS = 10 # Seadistage 0 tumedamaks ja 255 heledamaks
self. LED_INVERT = Vale # Tõsi signaali ümberpööramiseks
self. LED_CHANNEL = 0 # on GPIO -de 13, 19, 41, 45 või 53 jaoks seatud väärtusele 1
# Määrake funktsioonid, mis animeerivad LED -e mitmel viisil. def puhas (ise, riba, värv):
# pühkige kõik LED -id korraga
i vahemikus (strip.numPixels ()):
strip.setPixelColor (i, värv)
strip.show ()
def run (ise):
# Looge sobiva konfiguratsiooniga NeoPixeli objekt.
riba = PixelStrip (ise. LED_COUNT, ise. LED_PIN, ise. LED_FREQ_HZ, ise. LED_DMA, ise. LED_INVERT, ise. LED_BRIGHTNESS, ise. LED_CHANNEL)
proovige:
tagastusriba
välja arvatud klaviatuur Katkestus:
# puhastage maatriksi LED enne katkestamist
ise puhas (riba)
Kui oleme ülaltooduga hakkama saanud, on aeg need klassid välja kutsuda ja luua objekte, mida saame oma koodis kasutada, loome kõigepealt RGB LED -maatriksobjekti, mida saame kasutada varem loodud klassi kasutades:
matrixObject = RGB_Matrix ()
Kasutame nüüd seda objekti aktiivse LED -riba objekti loomiseks, mida kasutame oma üksikute LED -ide juhtimiseks RGB -maatriksil:
riba = matrixObject.run ()
Lõpuks peame selle riba aktiveerimiseks käivitama veel ühe funktsiooni:
strip.begin ()
Minecrafti API sisaldab palju plokke, igal Minecrafti plokil on oma ID. Meie näites oleme võtnud teatud koguse Minecrafti plokke ja proovinud ära arvata, milline värv neile kõige sobivam on.
RGB tähistab punast, rohelist ja sinist värvi, seega vajame iga väärtuse jaoks 3 erinevat väärtust vahemikus 0 kuni 255, värvid võivad olla HEX- või RGB -vormingus, meie näites kasutame RGB -vormingut.
Minecraft Pi maailmas on tavalised plokkide ID -d ja spetsiaalsed villaplokkide ID -d, spetsiaalne vill on ID -numbri 35 all, kuid alamnumbrid ulatuvad paljude erinevate ID -de juurde … Selle probleemi lahendame, luues 2 eraldi loendit, ühe tavaliste plokkide jaoks ja üks nimekiri spetsiaalsetest villaplokkidest:
Esimene loend on tavaliste plokkide jaoks, näiteks 0 tähistab õhuplokki, määrame selle värvi 0, 0, 0, mis on tühi või täiesti valge, kui mängija hüppab või lendab mängus, mille RGB välja lülitab, 1 on erinev plokk RGB värvidega 128, 128, 128 ja nii edasi …
#Vikerkaarevärvid
vikerkaarevärvid = {
"0": värv (0, 0, 0), "1": värv (128, 128, 128), "2": värv (0, 255, 0), "3": värv (160, 82, 45), "4": värv (128, 128, 128), "22": värv (0, 0, 255)
}
Villaplokkide puhul teeme sama, kuid on oluline meeles pidada, et kõigi plokkide ID on 35, selles loendis määratleme villaploki ploki alatüübid. Erinevatel villa alatüüpidel on erinevad värvid, kuid kõik need on villaplokid.
villa_värvid = {
"6": värv (255, 105, 180), "5": värv (0, 255, 0), "4": värv (255, 255, 0), "14": värv (255, 0, 0), "2": värv (255, 0, 255)
}
Kui oleme oma põhiprogrammi, klasside ja funktsioonide määratlemise lõpetanud, on aeg integreerida meie CrowPi2 RGB LED -anduriga pardal.
Põhiprogramm võtab varem määratletud parameetrid ja avaldab mõju riistvarale.
Kasutame CrowPi2 RGB LED -i, et neid süttida, lähtudes sammudest, mida teeme igas plokis Minecraft Pi sees, alustame!
Esimene asi, mida me teeme, on genereerida käskudega mõned villaplokid ja luua ajatsükkel, et programm töötaks seni, kuni mängime mängu.
Peame mängijalt andmeid hankima. Esiteks kasutame mängija positsiooni saamiseks käsku player.getPos (), seejärel kasutame getBlockWithData (), et saada plokk, millel me praegu seisame (y -koordinaat on -1, mis tähendab mängija all)
x, y, z = mc.player.getPos ()
mc.setBlocks (x, y, z, x+1, y, z+2, 35, 14)
mc.setBlocks (x+2, y+1, z, x+3, y+1, z+2, 35, 11)
mc.setBlocks (x+4, y+2, z, x+5, y+2, z+2, 35, 2)
mc.setBlocks (x+6, y+3, z, x+7, y+3, z+2, 35, 5)
mc.setBlocks (x+8, y+4, z, x+9, y+4, z+2, 35, 4)
mc.setBlocks (x+10, y+5, z, x+11, y+5, z+2, 35, 10)
mc.setBlocks (x+12, y+6, z, x+13, y+6, z+2, 35, 1)
mc.setBlocks (x+14, y+5, z, x+15, y+5, z+2, 35, 10)
mc.setBlocks (x+16, y+4, z, x+17, y+4, z+2, 35, 4)
mc.setBlocks (x+18, y+3, z, x+19, y+3, z+2, 35, 5)
mc.setBlocks (x+20, y+2, z, x+21, y+2, z+2, 35, 2)
mc.setBlocks (x+22, y+1, z, x+23, y+1, z+2, 35, 11)
mc.setBlocks (x+24, y, z, x+25, y, z+2, 35, 14)
kuigi tõsi:
x, y, z = mc.player.getPos () # mängija positsioon (x, y, z)
blockType, data = mc.getBlockWithData (x, y-1, z) # ploki ID
print (blockType)
Seejärel kontrollime, kas plokk on villaplokk, ploki ID -number 35, kui see on nii, siis viidame villa_värvidele, millel on sõnaraamatu ID põhjal ploki värv ja süttib vastavalt õige värv.
kui blockType == 35:
# kohandatud villavärvid
matrixObject.clean (riba, villa_värvid [str (andmed)])
Kui see pole villaplokk, kontrollime erandite vältimiseks, kas plokk on praegu rainbow_colors sõnastikus, kui jätkame, võtame värvi ja muudame RGB -d.
kui str (blockType) in rainbow_colors:
print (vikerkaarevärvid [str (blockType)])
matrixObject.clean (riba, vikerkaarevärvid [str (blockType)])
magada (0,5)
Saate alati proovida lisada rainbow_colorile rohkem plokke, et lisada rohkem värve ja rohkem plokkide tuge!
Täiuslik! Lisatarvikute abil projektide tegemine on keeruline, kuid CrowPi2 integraallülituse abil muutub asi palju lihtsamaks! Veelgi enam, CrowPi2 -l on rohkem kui 20 andurit ja komponenti, mis võimaldab teil saavutada oma ideaalseid projekte ja isegi tehisintellekti projekte!
Allpool on täielik kood:
10. samm: CrowPi2 kasutamine-tulemus
Avage mäng ja käivitage skript, tulemust näete ülaltoodud videol:
Samm 11: CrowPi2 kasutamine- edasi minek
Nüüd oleme lõpetanud oma värvika projekti CrowPi2 -ga Minecrafti mängus. Miks mitte proovida mänguga mängida CrowPi2 muid andureid ja komponente, näiteks juhtnuppu mängija liikumise juhtimiseks, RFID -d erinevate NFC -kaartide põhjal plokkide genereerimiseks jne. Lõbutsege oma mänguga CrowPi2 -l ja loodame, et saate seda teha rohkem uskumatuid projekte CrowPi2 abil!
Nüüd on CrowPi2 Kickstarteris, saate nautida ka atraktiivset hinda.
Lisage Kickstarteri lehe link CrowPi2
Soovitan:
Neopixel Ws2812 Rainbow LED-helendus koos M5stick-C - Vikerkaare käivitamine Neopixel Ws2812 -l M5stack M5stick C abil Arduino IDE abil: 5 sammu
Neopixel Ws2812 Rainbow LED-helendus koos M5stick-C | Vikerkaare jooksmine Neopixel Ws2812-l M5stack M5stick C kasutamine Arduino IDE kasutamine: Tere poisid, selles juhendis õpime, kuidas kasutada neopixel ws2812 LED-e või led-riba või led-maatriksit või led-rõngast koos m5stack m5stick-C arendusplaadiga Arduino IDE-ga ja teeme vikerkaare muster koos sellega
Kella tegemine M5stick C abil Arduino IDE abil RTC reaalajas kell M5stack M5stick-C abil: 4 sammu
Kella tegemine M5stick C abil, kasutades Arduino IDE | RTC reaalajas kell koos M5stack M5stick-C-ga: Tere, selles juhendis olevad poisid, me õpime, kuidas Arduino IDE abil kella m5stick-C arendusplaadiga teha. Nii kuvab m5stick kuupäeva, kellaaja ja amp; kuunädal ekraanil
Makey Makey interaktiivne lugu Scratchi abil !: 6 sammu
Makey Makey interaktiivne lugu Scratchi abil !: Juhised selle kohta, kuidas teha Scratchist interaktiivset lugu, kasutades Makey Makey ja mis kõige tähtsam - teie kujutlusvõimet
Interaktiivne Tic-Tac Toe mäng, mida juhitakse Arduino abil: 6 sammu
Interaktiivne Tic-Tac Toe mäng, mida juhitakse Arduinoga: Projekti Physical Tic-Tac-Toe eesmärk on viia tuntud mäng füüsilisse valdkonda. Algselt mängivad mängu kaks mängijat paberilehel - pannes kordamööda X ja O sümbolid. Meie idee oli uurida mängijate käitumist
Traadita energia ülekandesüsteem/H-sild nelja Mosfeti abil: 5 sammu
Traadita energia ülekandesüsteem/H-sild nelja Mosfeti abil: Selles projektis valmistame H-silla topoloogia abil traadita energia ülekandesüsteemi, H-silla loomiseks kasutatakse nelja mosfetti, 4 mosfeti juhtimiseks kasutasime 2 x IR2110 mosfeti juht ic