Obsah:
- Krok 1: Demontáž a rozhodnutí
- Krok 2: Chromium Code
- Krok 3: Ovládání TV
- Krok 4: Procházení kolem
- Krok 5: Spánek a bdění
- Krok 6: Čas u obrazovky
- Krok 7: Průsvitné šablony
- Krok 8: Další tlačítka
- Krok 9: Sekání kufru
- Krok 10: Závěsná rukojeť
- Krok 11: Touch-Ups a montáž
- Krok 12: Výběr webu
- Krok 13: Závěrečné myšlenky
Video: 1975 Hitachi Pi Info-TV: 13 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Jedná se o sladkou přenosnou televizi Hitachi I-89-311, kterou jsem přestavěl na retro nástěnnou informační stanici! Zobrazuje užitečný obsah v řadě karet Chrome na celé obrazovce a přepínáním přepínače ladění mezi stránkami, stejně jako byste původně měnili televizní kanály. Tlačítko hlasitosti ovládá posouvání, tlačítko zapnutí a vypnutí stránku obnoví a má pohybový senzor PIR, takže se obrazovka vypne, když odejdete.
K zobrazení obsahu používá obrazovku Pimoroni 8 4: 3 a Raspberry Pi 3 a některé přepínače na míru umožňují použití všech původních ovládacích prvků televizoru.
V případě, že nevidíte vložené video, je na adrese:
Krok 1: Demontáž a rozhodnutí
Tato televize mě v létě stála při výprodeji všech 5 liber a já jsem se nemohl dočkat, až se dostanu domů a rozeberu ji. Měl jsem na mysli to jednoduše rozebrat, rozseknout, vyměnit obrazovku za svůj starý 10 tablet a pověsit na zeď - pěkný rychlý projekt! Trhání se určitě povedlo, všechno se rozpadlo velmi čistě a díky nová přihrádka na magnetické části ani jednou jsem neztratil žádný šroub. Jakmile jsem tablet přidržel až k odizolovanému pouzdru, ale bylo zřejmé, že se nikdy nevejde, rámeček kolem obrazovky byl příliš silný, aby se vešel do pouzdra.
Představoval jsem si jen přizpůsobení domovské obrazovky Androidu pomocí widgetů, které by zobrazovaly nadcházející schůzky v kalendáři, počasí, novinky a tak dále, ale s tím z okna jsem se obrátil na možnosti Raspberry Pi. Začal jsem se dívat na software pro zobrazení řídicích panelů, protože to vypadalo, že jsem zhruba po tom. Zkoušel jsem dashing.io po doporučeních, ale zjistil jsem, že je trochu neohrabané nastavit a konfigurovat. Mnoho dalších možností bylo více zaměřeno na podnikání, takže bylo méně pravděpodobné, že budou mít funkce, jako je zobrazení živého kanálu CCTV webové kamery. Po nějaké době jsem se téměř rozhodl vybudovat vlastní webovou stránku, která bude zobrazovat pouze požadovaný obsah - ale pak přišla myšlenka, proč nemít více webových stránek a moci mezi nimi procházet pomocí ovládacích prvků televize? To by znamenalo méně kompromisů kolem toho, co se vejde na malou obrazovku, a opravdu by bylo snadné přidávat nebo odebírat prvky. Po tomto okamžiku „Eureky“jsem vše musel udělat - a nebylo to příliš složité.
Krok 2: Chromium Code
Aby myšlenka webových stránek fungovala, první věc, kterou jsem musel udělat, bylo zjistit, jak při spuštění otevřít celou obrazovku prohlížeče Chromium s několika předdefinovanými kartami. Díky flexibilitě Pi a Chromium toho bylo ve skutečnosti docela snadné dosáhnout, jen v případě úpravy souboru automatického spuštění:
sudo nano.config/lxsession/LXDE-pi/autostart
… a přidáním
@chromium-browser --noerrdialogs --start-fullscreen https:// url1 https:// url2 https:// url3
… Na konec souboru, uložení změn.
Dále jsem musel najít způsob, jak nějak pomocí tlačítek televizoru ovládat karty prohlížeče. Plánoval jsem, že budu mít v blízkosti samostatnou kombinaci bezdrátové klávesnice a myši, takže jsem nepoužíval režim Kiosk a nezajímalo mě pohyby myší ani klikání, ale chtěl jsem umět základní informace „Jdu do práce“-Chyťte pouze pomocí původních ovládacích prvků televizoru. Věděl jsem, že pravděpodobně propojím přepínače s GPIO Pi a ovládám je v Pythonu, a tak jsem se rozhlédl po nějakém kódu, který by napodoboval stisknutí kláves, abych mohl využít skript, který je odešle prostřednictvím vstupu z fyzického přepínače.
Po nějaké vlečné síti jsem narazil na xdotool, který byl pro tuto práci ideální, protože vám umožňuje simulovat stisknutí kláves pomocí kódu, který lze snadno vložit do Pythonu. Nejprve jsem nainstaloval…
sudo apt-get install xdotool
… pak pomocí terminálu proměněného pomocí příkazu přepnout karty v prohlížeči Chrome, napodobující klávesovou zkratku CTRL-TAB:
xdotool search --onlyvisible --class "chromium" windowfocus && xdotool key ctrl+Tab
Poté jsem udělal to samé, abych vytvořil kus kódu k provedení akce „Obnovit“, napodobující stisk klávesy F5:
xdotool search --onlyvisible --class "chromium" windowfocus && xdotool key F5
Nyní, když jsem měl základní bity kódu funkční, bylo další úkolem roztřídit fyzická tlačítka, propojit je s GPIO a vytvořit skript Pythonu, který jim umožní ovládat prohlížeč.
Krok 3: Ovládání TV
Hvězdou show po knoflíkové stránce byl krásný velký ladicí číselník, takže jsem na tom nejprve zapracoval. Potřeboval jsem rotační akci číselníku k překladu do stisknutí kláves spuštěných GPIO, aby se spustil přepínač karty prohlížeče, takže jeho otočením se změní „kanál“. Pohodlně jsem pro svůj projekt Neon Infinity Television udělal něco podobného dříve, a tak jsem se rozhodl použít stejnou metodu.
Na začátek jsem vzal 12pólový otočný přepínač s jedním házením a připájel k sobě alternativní svorky, takže 6 z nich bylo připojeno k jednomu vodiči. Druhý vodič byl připojen k uzlu přepínače, takže každé otočné kliknutí jej přesunulo mezi otevřeným a zavřeným stavem. To znamenalo, že každá změna kanálu bude trvat 2 „kliknutí“, jedno kliknutí na přepínač „zavřeno“a jedno opětovné otevření.
Po testování pomocí multimetru jsem přešel na další tlačítko (Zapnuto/Vypnuto)-chtěl jsem pouze „obnovit“stránku, takže jsem použil standardní přepínač push-to-make.
Když byly oba hotové, připájel jsem je k malému kousku protoboardu vedle propojovací hlavičky, aby bylo zapojení jednodušší. Dále jsem je připojil k Pi (GPIO6, GPIO26 a 3v) a sestavil skript Pythonu, který převádí jejich fyzické pohyby do úhozů a ovládá okno prohlížeče. Skript, který jsem použil, je poměrně jednoduchý a je k dispozici na GitHubu. Jakmile byl plně funkční, nastavil jsem jej na automatické spuštění přidáním do řádku …
@sudo python /home/pi/tabswitch.py
… Do souboru automatického spuštění, těsně pod místo, kam jsem dříve přidal příkaz @chromium-browser.
Takže to byla dvě tlačítka dolů, jedno na to!
Krok 4: Procházení kolem
Opravdu jsem chtěl, aby třetí tlačítko (Hlasitost) posouvalo stránku prohlížeče nahoru a dolů pro skenování titulků a výhledu na počasí - to byl skvělý koncept, ale bylo obtížné ho dosáhnout! Zkoumal jsem různé možnosti, ale vrátil jsem se k jedné z mých oblíbených - levných USB myší. Výlet do kufru auta přinesl čtyři staré reproduktory v různých stavech (každý kolem 50 p) a doufal jsem, že jeden z nich bude mít hacknutelnou desku s obvody, kterou bych mohl jednoduše zasunout do pouzdra, spojením rolovacího kolečka s knoflíkem hlasitosti a USB kabel k Pi.
Nebylo to však tak snadné, protože všechny myši měly své rolovací kolečko upevněné v úhlu 90 stupňů k hlavní desce s obvody, což má pro myš perfektní smysl, ale není vhodné pro montáž do těsného televizního pouzdra! Aby byly věci flexibilnější, odřízl jsem otočný ovladač z jedné myši a na vteřinu jsem jej zapojil do desky plošných spojů, přičemž mezi nimi nechali kabely, abych je mohl opravit v jakémkoli úhlu, který jsem chtěl. I když myši byly od různých výrobců, fungovalo to dobře!
Krok 5: Spánek a bdění
Věděl jsem, že televize bude na stěně chodby, takže jsem nechtěl, aby byla zapnutá 24/7, ale zároveň jsem chtěl mít možnost se na ni mimochodem podívat a nemuset obrazovku zapnete stisknutím tlačítka. Rozhodl jsem se použít PIR senzor k detekci pohybu v okolí, aby obrazovka zůstala vypnutá (nebo alespoň na prázdném spořiči obrazovky), pokud by před ní nebyl někdo.
Předtím jsem PIR senzor nepoužil, a tak jsem následoval spolu s vynikajícím tutoriálem Parent Detector a kód, který jsem potřeboval, fungoval docela rychle, alespoň v terminálu.
Čidlo PIR bylo snadné připojit k GPIO Pi (5v, GND a GPIO4), ale trvalo nějaké experimentování s hloupými „trimpoty“, aby bylo zpoždění a citlivost správné.
Dalším krokem bylo zapnutí obrazovky, když byl detekován pohyb. Opět existují různé možnosti, ale rozhodl jsem se to udělat tak, aby pohyb detekovaný snímačem PIR vypnul spořič obrazovky. Předpokládal jsem, že budu moci znovu použít xdotool k odeslání jakéhokoli starého stisknutí klávesy a to probudí obrazovku, ale bohužel to nefungovalo.
Abych měl větší kontrolu nad typem a možnostmi spořiče obrazovky, nainstaloval jsem xscreensaver:
sudo apt-get install xscreensaver
To bylo perfektní, protože jsem nyní mohl plně ovládat zpoždění spořiče obrazovky pomocí nabídky Předvolby - ještě šikovnější bylo, že xscreensaver má mnoho možností příkazového řádku, což znamená, že mohu použít kód …
xscreensaver -command -deaktivovat
… probudit obrazovku. Tento příkaz jsem přidal do skriptu PIR (také na GitHub) a jakmile fungoval, přidal se do …
@sudo python /home/pi/PIR.py
… Do souboru automatického spuštění, těsně pod dřívějšími položkami pro příkazy Chromium a tabswitch.
Takže nyní byla většina práce s Pi dokončena a s připojeným PIR senzorem, tlačítkem, otočným přepínačem a USB myší jsem se přesunul na ošemetnou část - aby fungovala s malou obrazovkou a vše se vešlo do pouzdra.
Krok 6: Čas u obrazovky
Najít vhodnou obrazovku pro tento projekt bylo vždy ošemetné, protože „díra“měla jak nepříjemnou velikost 9–10 palců, tak také formát 4: 3.
Po kouzlu neplodných výhodných lovů jsem se rozhodl koupit nový - hlavně z toho důvodu, že jsem chtěl, aby to byl praktický doplněk mého domova, a tak jsem potřeboval mít důvěru v to, že bude zapojen většinu času. Nakonec jsem začal hledat LCD panely 800x600 a 1024x768 a objevil jsem 8 obrazovku Pimoroni. To byla ideální volba, protože se mi líbil prodejce, obrazovka byla dobře zkontrolována a měla perfektní tvar - jediným kompromisem bylo, že byla o něco menší než bych si přál, ale to ve skutečnosti neovlivnilo konečnou verzi.
Sada obrazovky obsahovala vlastní ovládací panel a tlačítka nabídky, která byla snadno připojena pro malý test na pracovním stole. K radosti jsem si přečetl, že obrazovku lze napájet ze samotného Pi, takže jsem ji zapnul a - nic! Zkoušel jsem různé USB porty pro napájení, pak různé HDMI kabely, ale prostě to nešlo. Po dlouhém škrábání hlavy jsem našel řešení online - protože bylo napájeno z USB Pi, nezobrazovalo se to jako „Present“dostatečně brzy v zaváděcím procesu, aby si Pi uvědomil, že tam je. Jediné, co jsem musel udělat, bylo upravit soubor
/boot/config.txt
a odkomentujte možnost
hdmi_force_hotplug = 1
ahoj Presto! Fungovalo to hned. Vždy mě udivuje, jak jednoduchá mohou být některá řešení. Byl jsem přesvědčen, že jsem obrazovku nějakým způsobem smažil, ale jediné drobné vylepšení bylo rozhodující. Teď, když to celé fungovalo na lavičce, jsem jen potřeboval, aby se to vešlo do pouzdra a nějak to fungovalo.
Ačkoli to byla ideální velikost, došlo k několika problémům - rámeček panelu LCD byl leskle stříbrný a také se na vnější straně objevovaly mezery, kde byla původní televizní trubka zakřivená. Nejprve mě napadlo nastříkat rámeček na černou, zejména proto, že měl stále na svém místě chránič obrazovky, což by bylo ideální maskování. Po nějaké úvaze se mi podařilo zabít dvě mouchy jednou ranou a kolem okrajů obrazovky jsem přidal proužky silné černé samolepicí plsti, která zakrývala stříbrné proužky a překrývala se dostatečně, aby zaplnila mezery.
Krok 7: Průsvitné šablony
Když byla obrazovka upevněna na místě, tlačítka, Pi a kabely byly další!
K zajištění obrazovky bych z víka staré úložné bedny vystřihl část průsvitného plastu, pomocí původních TV šroubů a šroubových sloupků ji pevně zafixoval na místě, a tak jsem se rozhodl udělat totéž, abych přidržoval tlačítka. Krása výroby držáků s tímto druhem plastu spočívá v tom, že jej můžete umístit přes pouzdro a vidět skrz něj, abyste přesně označili, kde musí být otvory pro šrouby!
Vystřihl jsem malou část plastu, abych držel ovládací prvky televizoru, a nejprve jsem označil a vyvrtal otvory, abych je zajistil k původním upevněním televizoru. Poté, co jsem přišrouboval k pouzdru, jsem zvenčí označil střed otvorů pro knoflíky, abych se ujistil, že budou správně zarovnány při protahování pouzdra. U otočných a tlačných spínačů to šlo docela hladce, jen jsem se musel uchýlit k horkému lepidlu, abych „kolečko myši“nastavil na správné místo.
Dále jsem postavil další „palubu“, abych seděl nad přepínači a držel Raspberry Pi, stejnou metodou jako předtím a více původních šroubovacích sloupků. To fungovalo dobře, ale bohužel zadní část otočného spínače se zasekla příliš vysoko, takže jsem jej musel znovu ohnout po ohnutí svorek naplocho základnou. Nakonec jsem lehce nalepil PIR senzor na místo za větrací otvor, stále jsem si nebyl jistý, zda bude fungovat, aniž by byl zcela odhalen.
Nyní, když byly všechny části upevněny ve svých „konečných“polohách, musel jsem přidat ovládací knoflíky. Otočný přepínač byl snadný, protože mají standardní tvar a potřeboval jen ozdobu, aby se vešel na číselník. Pro vypínač jsem použil část původního vřetena z televize a přilepil ho k tlačítkovému spínači. Kolečko myši bylo trochu záludnější, opět jsem použil originální vřeteno z televize, spojené s vřetenem kolečka myši plastovou „manžetou“.
Krok 8: Další tlačítka
Člověk by si myslel, že by to bylo docela dost popletené s tlačítky, ale bylo toho víc! LCD obrazovka měla vlastní sadu 5 mikrospínačů na desce pro ovládání jasu, barev atd., Takže jsem chtěl, aby byly přístupné, aniž bych musel sundat televizi ze zdi.
Při lehkém sekání bylo dost místa, aby se deska vešla na okraj „vnitřního“pouzdra, vše, co jsem pak musel udělat, bylo vyříznout otvory ve „vnějším“pouzdru, aby byly mikrospínače přístupné. Také jsem potřeboval najít nějaký druh fyzických tlačítek, které by se propíchly skrz pouzdro a zarovnaly se s mikrospínači. V minulosti jsem k tomu používal stříbrné "kliky na pera", ale neměl jsem štěstí, že bych tentokrát našel levné. Nakonec jsem odřízl nohy z některých starých LED a namontoval je do otvorů, které jsem vyvrtal v pouzdře - ty byly perfektní, protože rozšířená základna LED zabránila jejich vyklouznutí a měly správný tvar a velikost. Bez dalšího vrtání jsem se zhluboka nadechl a přešel k „velkému řezu“.
Krok 9: Sekání kufru
Se všemi nainstalovanými deskami, obrazovkou a přepínači jsem teď přesně viděl, jak hluboký musí být vnější kryt televizoru, respektive jak tenký bych to dokázal udělat. Ponechal jsem pár centimetrů mezeru mezi deskami plošných spojů a tím, co by byla zeď, označil jsem případ a rozsekal jej pomocí rotačního nástroje. To byl zdaleka nejvíce nervy drásající okamžik, protože to bylo velmi hlučné a jedno uklouznutí mohlo případ zničit. Konečný střih byl ale docela dobrý a potřeboval jen trochu obrousit a oříznout okraje, aby byl dokončen před malováním - televizní „záda“byla původně bílá, ale během let zažloutla.
Krok 10: Závěsná rukojeť
Dalším problémem bylo, jak zavěsit televizi na zeď a ujistit se, že je rovná a bezpečná, ale zároveň snadno odstranitelná z důvodu údržby. Četl jsem o použití "francouzských zarážek" nebo "Z -závorek" pro zavěšení velkých obrázků, ale nikdy jsem je nezkusil, takže jsem si je objednal z Amazonu - ukázalo se, že jsou naprosto ideální! Balíček dokonce přišel s vlastní malou vodováhou.
Upevnění nástěnného držáku bylo snadné, nechal jsem jej během několika minut přišroubovat ke stěně dílny a poté jsem musel přijít na to, jak přizpůsobit jeho opačné číslo k televizi. Vnější pouzdro by bylo přišroubováno k přední části televizoru na čtyřech místech, takže bylo docela robustní, rozhodl jsem se, že toto bude nejlepší místo pro držák. Problémem bylo upevnění držáku na správném místě, aby nepřekáželo deskám nebo drátům. Také jsem nechtěl, aby v horní části pouzdra byly šrouby.
V určitém okamžiku můj mozek přišel na to, že bych mohl znovu použít původní rukojeť televizoru, udělat z ní funkci a také ji použít k držení držáku na správném místě. Po pečlivém měření jsem vyvrtal nové otvory pro držadlo a poté je pomocí několika malých pravoúhlých držáků a přesahu dřevěné podlahy připevnil k z-držáku, všechny pevně přišroubované.
Krok 11: Touch-Ups a montáž
Pro poslední úpravy jsem zbrousil a nastříkal vnější pouzdro a rukojeť, přičemž jsem to udělal červeně pro kontrast a jako kývnutí na malinu uvnitř. Jakmile barva pěkně ztvrdla, všechny knoflíky se hezky poskládaly, knoflíky a kryt obrazovky označené „Solid State“byly naposledy nasazeny na místo. Kryt obrazovky byl mírně zakouřený, ale po vylepšení jasu a kontrastu (jsem rád, že jsem zahrnoval tato tlačítka LCD) vypadal displej stejně jasně jako dříve.
Krok 12: Výběr webu
Netrvalo dlouho a přemístil jsem z-držák ze zdi dílny do jeho „konečného“domova na chodbě a zavěsil televizi a přidal nějaké tenké plastové potrubí, které uklidilo napájecí kabel Pi. Nyní, když byl nainstalován, přišla zábavná část - rozhodování o tom, které webové stránky zobrazit!
Při zkoumání možností řídicího panelu jsem narazil na Dakboard - webový řídicí panel, který můžete propojit se svým online kalendářem a zobrazit schůzky, zpravodajský kanál a počasí. Tehdy jsem to zlevnil jako příliš jednoduché, ale pro jednu z mých stránek to bylo ideální. Moje oblíbená věc je, že mohu zobrazit své vlastní album fotografií Google - zejména proto, že šťastně zobrazuje animované GIFy.
Dalších pár rozhodnutí o záložkách bylo docela předvídatelných, BBC News a BBC Weather, obojí nezbytné zkontrolovat před odchodem z domu.
Dále jsem přidal odkaz na živý přenos z jedné z mých kamer Pi Zero - to se již ukázalo jako užitečné při sledování zásilek pošťáka nebo nákupu.
Nakonec jsem přidal do našeho nákupního seznamu Google - máme docela ve zvyku používat interkom Google Pi k přidávání položek do seznamu, takže to stojí za kontrolu, než vyrazíte.
Shromáždil jsem adresy URL z notebooku do dokumentu poznámkového bloku a zkopíroval to do Pi a poté je přidal do řádku @Chromium v souboru automatického spuštění (viz krok 2 výše).
Krok 13: Závěrečné myšlenky
Tato konstrukce se mi opravdu líbila, takže výroba něčeho, o čem vím, že ji budu používat každý den, mi opravdu brání v řezání rohů - i když to trvá mnohem déle. Moje oblíbená věc je, že velký číselník pro změnu kanálů, je opravdu uspokojivé používat původní mechanismus.
Věc, která šla mnohem lépe, než se očekávalo, byl snímač PIR, o kterém jsem byl přesvědčen, že nebude fungovat zastrčený uvnitř ventilačního pouzdra - nechtěl jsem vystavit celý senzor, takže jsem opravdu rád, že to vyšlo. Je to docela citlivé a všichni se rádi pokoušíme vkrádat kolem, aniž by se zapnula obrazovka. Ukázalo se však opravdu náročné fotografovat, že kouřový kryt obrazovky je tak reflexní!
Miluji vzhled na chodbě a funguje přesně tak, jak jsem doufal - pár kliknutí tam a zpět a trochu svitku obvykle stačí na to, abych se ráno dostal ven ze dveří se všemi potřebnými informacemi.
Pokud se vám tento projekt líbí a chcete vidět více, můžete se podívat na můj web, kde probíhají aktualizace projektu na bit.ly/OldTechNewSpec, připojit se k Twitteru @OldTechNewSpec nebo se přihlásit k odběru rostoucího kanálu YouTube na bit.ly/oldtechtube - dát některé z vašich starých technologií a nové specifikace!
Doporučuje:
Postup: Instalace Raspberry PI 4 bezhlavého (VNC) s Rpi imagerem a obrázky: 7 kroků (s obrázky)
Jak na to: Instalace Raspberry PI 4 Headless (VNC) s Rpi-imager a obrázky: Mám v plánu použít tento Rapsberry PI ve spoustě zábavných projektů zpět na mém blogu. Neváhejte se na to podívat. Chtěl jsem se vrátit k používání svého Raspberry PI, ale na novém místě jsem neměl klávesnici ani myš. Už je to dlouho, co jsem nastavoval Raspberry
Počitadlo kroků - mikro: bit: 12 kroků (s obrázky)
Počitadlo kroků - Micro: Bit: Tento projekt bude počítadlem kroků. K měření našich kroků použijeme snímač akcelerometru, který je zabudovaný v Micro: Bit. Pokaždé, když se Micro: Bit zatřese, přidáme 2 k počtu a zobrazíme ho na obrazovce
Bolt - Noční hodiny bezdrátového nabíjení DIY (6 kroků): 6 kroků (s obrázky)
Bolt - Noční hodiny bezdrátového nabíjení DIY (6 kroků): Indukční nabíjení (známé také jako bezdrátové nabíjení nebo bezdrátové nabíjení) je druh bezdrátového přenosu energie. Využívá elektromagnetickou indukci k poskytování elektřiny přenosným zařízením. Nejběžnější aplikací je bezdrátové nabíjení Qi
Vykreslete 3D obrázky svých desek plošných spojů pomocí Eagle3D a POV-Ray: 5 kroků (s obrázky)
Vykreslování 3D obrázků vašich desek plošných spojů pomocí Eagle3D a POV-Ray: Pomocí Eagle3D a POV-Ray můžete vytvářet realistické 3D vykreslování vašich desek plošných spojů. Eagle3D je skript pro EAGLE Layout Editor. Tím se vygeneruje soubor pro sledování paprsku, který bude odeslán na POV-Ray, který nakonec vyskočí finální im
Vytvářejte stereofonní grafické obrázky v aplikaci Excel: 8 kroků (s obrázky)
Vytvářejte stereofonní grafické obrázky v aplikaci Excel: Stereo grafické obrázky mohou 3D hloubkám dodat hloubku