Cov txheej txheem:
- Khoom siv
- Kauj ruam 1: Cia Peb Ua Nws
- Kauj Ruam 2: Kev Npaj Khoom
- Kauj Ruam 3: Txiav Acrylic
- Kauj Ruam 4: Ua Sab Nrog 3D Tshuab Luam Ntawv
- Kauj ruam 5: Yeeb yaj duab
- Kauj Ruam 6: Txuas LED Sawb + Soldering LED Sawb (NeoPixel) Nrog Cov Hluav Taws Xob
- Kauj Ruam 7: Soldering Tact Switch With Wire
- Kauj Ruam 8: Sib Sau Ua Ke -Ntau Bolt ntawm Sab = ①
- Kauj Ruam 9: Txuas Ⓛⓣ rau Ⓒ = ②
- Kauj Ruam 10: Sib dhos -Siv a Ⓦ thiab Ⓝ los ua ke ① thiab ② = ③
- Kauj Ruam 11: Sib dhos -Txuas Ⓐⓔ thiab ③ Siv Acrylic Bond = ④
- Kauj Ruam 12: Txuas Ⓢ rau Ⓓ = ⑤
- Kauj Ruam 13: Sib Sau Ua Ke omb thiab ⑤ Siv Ⓦ thiab Ⓝ = ⑥
- Kauj Ruam 14: Ua tiav Daim Ntawv Sib dhos
- Kauj Ruam 15: Qhov Ua Haujlwm Zoo Li Cas ntawm Txoj Haujlwm
- Kauj Ruam 16: NeoPixel, Txuas Txuas
- Kauj Ruam 17: NeoPixel thiab Arduino thaiv
- Kauj ruam 18: Program Arduino
- Kauj ruam 19:
- Kauj ruam 20: Qauv
Video: Teeb Kuv Li!: 20 Kauj Ruam (nrog Duab)
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:26
pab neeg ua haujlwm
(Hyewon Shin, Eunjeong Ko, Junsung Yi)
Yuav ua li cas yog tias koj tuaj yeem kov thiab tsim lub teeb? Nws yuav zoo li cas yog tias koj muaj tus qauv zoo nkauj ntawm lub teeb uas koj tau tsim koj tus kheej nrog cov duab ntxim nyiam? Teeb kuv li yuav yog phau ntawv nthuav dav uas nthuav tawm thiab tsim lub teeb nws tus kheej thiab tsim cov qauv zoo nkauj! hexagonal puab. Yog li koj tuaj yeem tsim cov qauv stereoscopic raws li koj tsim lub teeb li cas! Tsuas yog nias txhua daim thiab ntau yam xim yuav raug gradated, thiab thaum cov xim koj xav tawm, tsuas yog ntaus tes koj nias thiab nws yuav txuas ntxiv ci ntsa iab nrog cov xim uas koj xav tau! lub teeb zoo uas ua haujlwm tau zoo nrog 6 daim duab peb sab. Tam sim no cia kuv qhia koj yuav ua li cas ua rau daim duab peb sab. Ua raws cov theem thiab koj yuav muaj koj tus kheej txoj haujlwm zoo!
Khoom siv
Kho vajtse: Arduino (Kuv siv arduino mega 2560), Acrylic (meej, dawb), LED Sawb (NeoPixel), Diffuser Film, khawm, 4 tus pin txuas, Hlau, Circuit Board, Fais fab mov
Cov cuab yeej: Laser-Guided Tej Tshuab, 3D Tshuab Luam Ntawv
Kauj ruam 1: Cia Peb Ua Nws
Cia ua qhov ntxim hlub hexagonal daim nrog kuv!
Lub Teeb Me Up tau tsim los siv 312 daim duab peb sab, tab sis txawm tias 6 daim duab peb sab tuaj yeem tsim teeb pom kev zoo. Yog tias koj xav ua nws ntawm qhov loj dua, koj tuaj yeem ua nws los ntawm kev xa mus rau cov ntawv txuas hauv qab no.
Kauj Ruam 2: Kev Npaj Khoom
Kauj Ruam 3: Txiav Acrylic
Siv lub tshuab txiav laser txiav rau pem hauv ntej thiab nraub qaum ntawm txhua ntu. Cov xim acrylic nyob sab nraub qaum tuaj yeem yog txhua yam koj xav tau, tab sis nco ntsoov siv cov pob tshab acrylic vim tias lub hauv ntej yuav tsum dim! Yog tias koj siv cov xim acrylic uas tsis yog pob tshab, koj yuav tsis pom lub teeb zoo.
Kauj Ruam 4: Ua Sab Nrog 3D Tshuab Luam Ntawv
Tam sim no nws yog lub sijhawm los ua ob sab ntawm txhua daim. Cia peb ua nws! Cov ntaub ntawv ua qauv 3D ntawm sab tau txuas hauv qab no. Peb siv PLA los ua ob sab PLA muaj zog dua thiab qis qis dua li ABS, yog li cov ntaub ntawv pom zoo kom siv PLA.
Kauj ruam 5: Yeeb yaj duab
Tam sim no cia peb muab lub teeb pom kev sib txawv zaj duab xis tso rau ntawm acrylic ntawm sab xub ntiag. Yog tias koj muab zaj duab xis tso rau nws, nws nthuav tawm thiab ci ntau dua. Ua ntej, txiav zaj duab xis kom zoo li daim duab peb sab. (Koj yuav tsum txiav cov yeeb yaj kiab loj dua li txiav acrylic) Nws yooj yim los muab zaj duab xis tso rau, zoo li, tiv thaiv zaj duab xis ntawm koj lub xov tooj. Yog tias koj xav tau cov lus qhia ntawm no, koj tuaj yeem siv daim npav los thawb nws kom nws tuaj yeem daig tau zoo!
Kauj Ruam 6: Txuas LED Sawb + Soldering LED Sawb (NeoPixel) Nrog Cov Hluav Taws Xob
Yog tias koj ua tau zoo ntawm kev siv cov hlua LED, nws yog lub sijhawm los muab cov hlua LED tso rau tom qab. Ua ntej tshaj, muab rab phom nplaum los yog daim kab xev ob tog tso rau tom qab ntawm LED kab txaij. Thiab xub tshem tawm cov xov hlau los ntawm ob sab ntawm cov hlau txuas los ntawm lub qhov ntawm ob sab. Thaum kawg, txuas cov hlua LED rau sab nraub qaum acrylic thiab nws dhau lawm!
Nws yog lub sijhawm soldering! npaj cov hlua LED, 4-tus pin txuas (txuas lossis xov hlau) thiab yam koj xav tau rau kev siv tshuaj txhuam. Kuv siv LEDs hauv peb chav. Koj tuaj yeem siv ib lossis ob lub LEDs yog tias koj xav tau, tab sis kuv pom zoo siv peb. Thaum tag nrho cov ntaub ntawv tau npaj tiav, muab cov xov hlau txuas rau hauv ob kab ntawv, 5v kab, thiab kab hauv av ntawm LED sawb.
Kauj Ruam 7: Soldering Tact Switch With Wire
Kauj Ruam 8: Sib Sau Ua Ke -Ntau Bolt ntawm Sab = ①
Tam sim no nws yog qhov yooj yim tiag tiag! Muab ib tus ntsia liaj qhov rooj ntawm txhua ntawm peb daim duab 3D luam tawm. Qhov laj thawj yog vim li cas siv lub pob ntsia liaj qhov rooj zoo li siv cov qauv ntsia hlau thiab cov txiv ntoo yuav tuaj yeem ua. Thaum daim ntawv tiav, Kuv yuav muab daim ntawv tso rau hauv rooj plaub thiab ua tiav nrog cov txiv ntoo.
Kauj Ruam 9: Txuas Ⓛⓣ rau Ⓒ = ②
Kauj Ruam 10: Sib dhos -Siv a Ⓦ thiab Ⓝ los ua ke ① thiab ② = ③
Kauj Ruam 11: Sib dhos -Txuas Ⓐⓔ thiab ③ Siv Acrylic Bond = ④
Yog tias koj muab tus ntsia liaj qhov rooj tso rau sab, peb yuav muab nws tso rau ntawm ib sab thiab sab xub ntiag. Pem hauv ntej yog acrylic, yog li koj yuav tsum muab nws tso nrog daim ntawv cog lus tshwj xeeb acrylic. Yog tias koj txuas acrylic rau daim ntawv cog lus tsis tu ncua, nws yuav tawm ib qho cim.
Kauj Ruam 12: Txuas Ⓢ rau Ⓓ = ⑤
Kauj Ruam 13: Sib Sau Ua Ke omb thiab ⑤ Siv Ⓦ thiab Ⓝ = ⑥
Kauj Ruam 14: Ua tiav Daim Ntawv Sib dhos
Kauj Ruam 15: Qhov Ua Haujlwm Zoo Li Cas ntawm Txoj Haujlwm
Kauj Ruam 16: NeoPixel, Txuas Txuas
Kauj Ruam 17: NeoPixel thiab Arduino thaiv
Kauj ruam 18: Program Arduino
sab nrauv hloov pauv tsis tau kos npe ntev timer0_millis;
#suav nrog
#define MODEBTNNUM 3 int ani_mode = 0; unsigned ntev preM1, preM2, preM3;
void teeb tsa () {
Hlau.begin (); rau (int i = 0; i <MODEBTNNUM; i ++) {pinMode (i+2, INPUT_PULLUP); } //Serial.begin(9600); }
void voj () {
rau (int i = 0; i <MODEBTNNUM; i ++) {if (! digitalRead (i + 2)) ani_mode = i + 1; } rau (int i = 0; i <6; i ++) {Wire.requestFrom (i+1, 1); thaum (Wire.available ()) {int x = Wire.read (); // Serial.println (x); yog (x == 5) {ani_mode = 0; // Serial.println ("x = 5"); }}} /////////////////////////////////////////////// /////// yog (ani_mode == 0) {rau (int kuv = 1; kuv 3000) {preM1 = current1; rau (int kuv = 1; kuv 5000) {preM2 = current2; rau (int i = 1; i 3000) {preM3 = current3; // timer0_millis = 0; // preM1 = 0; // preM2 = 0; // preM3 = 0; // Serial.println ("timer pib dua"); rau (int i = 1; i <7; i ++) {Wire.beginTransmission (i); Hlau.write (ani_mode); //Serial.println("3000 "); Wire.endTransmission (i); }}}}
Kauj ruam 19:
sab nrauv hloov pauv tsis tau kos npe ntev timer0_millis;
#suav nrog
#suav nrog #define PIN 12 #define NUMPIXELS 162 Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int num = NUMPIXELS / 3; const int slaveNum = 1; int xim [num] [3]; int hue [num]; int sat [num]; int kaj [num]; int pNumber = 0; int gValue [num] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 Ib, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; const int btnPin [num] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 54, 55, 56, 57, 58, 59}; int btnState [num]; boolean btnMode; int hueV [num] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 Ib, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; #include #define BTNNUM 1 int f_v = 1; unsigned ntev preMillis1; unsigned ntev preM; int ani_mode = 0; int ani2_Counter = 0; int counter = 0; /////////////////////////////////////////// tsis muaj dabtsis teeb () {Hlau. pib (slaveNum); Wire.onRequest (requestEvent); Wire.onReceive (receiveEvent); rau (int i = 0; i <num; i ++) {pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); strip.begin (); } ////////////////////////////////////////////////
void voj () {
yog (f_v == 1) {rau (int i = 0; kuv <num; i ++) {hue = 50; zaum = 95; ci [kuv] = 100; } f_v = 0; } ////////////////////////////////////// // 버튼 입력 체크: 멈춤 신호 보내기 btnMode = cuav; rau (int i = 0; i <num; i ++) {if (! digitalRead (btnPin ))) {btnMode = tseeb; }} btnEvent (5); // Serial.println (ani_mode); //////////////////////////////////////// hloov (ani_mode) {rooj plaub 0: ani0 (); tawg; rooj plaub 1: ani1 (); ani_mode = 0; ani2_Counter = 0; tawg; rooj plaub 2: ani2_Counter = 1; ani_mode = 0; tawg; rooj plaub 3: ani3 (); ani_mode = 0; ani2_Counter = 0; tawg; neej ntawd hais: readyState (); tawg; } yog (ani2_Counter == 1) {ani2 (); } setPixels (num); }
///////////////////////////////////////////
void txaisEvent (int li casMany) {int x = Wire.read (); yog (x == 5) {// Serial.println ("tau txais 5"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); } /////////////////////////////////////////// void requestEvent () {
yog (btnMode == muaj tseeb) {
Hlau.write (5); // Serial.println ("5 보냄"); } lwm {Wire.write (0); }
}
void ani0 () {
// Serial.println ("0"); }
void ani1 () {
// Serial.println ("1"); yog (pNumber == 0) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int a1 = {25, 26}; int b1 = {39, 52}; int c1 = {40, 53}; rau (int a = 0; a <2; a ++) {hue [a1 [a] = 100; zaum [a1 [a] = 95; ci [a1 [a] = 100; } rau (int b = 0; b <2; b ++) {hue [b1 = 200; zaum [b1 = 95; ci [b1 = 100; } rau (int c = 0; c <2; c ++) {hue [c1 [c] = 300; zaum [c1 [c] = 95; ci [c1 [c] = 100; } // Serial.println ("0"); } lwm tus yog (pNumber == 1) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int a2 = {21, 22, 34, 35, 37, 46, 47, 51}; // int b2 = {}; // int c2 = {}; int d2 = {36, 48, 49, 50}; rau (int a = 0; a <8; a ++) {hue [a2 [a] = 26; zaum [a2 [a] = 95; ci [a2 [a] = 100; } rau (int d = 0; d <4; d ++) {hue [d2 [d] = 63; zaum [d2 [d] = 95; ci [d2 [d] = 100; } // Serial.println ("1"); } lwm tus yog (pNumber == 2) {// loj lub voos xwmfab qauv rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int a14 = {34, 35, 46, 47, 48, 49}; // daj 06 rau (int a = 0; a <6; a ++) {hue [a14 [a] = 35; zaum [a14 [a] = 95; ci [a14 [a] = 100; }} lwm yog (pNumber == 3) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int a3 = {34, 35, 46, 47, 48, 49}; // daj rau (int a = 0; a <6; a ++) {hue [a3 [a] = 53; zaum [a3 [a] = 95; ci [a3 [a] = 100; }} lwm yog (pNumber == 4) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int a4 = {34, 35}; // daj int b4 = {47}; // xiav int c4 = {48}; // ntshav
rau (int a = 0; a <2; a ++) {hue [a4 [a] = 53; zaum [a4 [a] = 95; ci [a4 [a] = 100; }
rau (int b = 0; b <1; b ++) {hue [b4 = 210; zaum [b4 = 95; ci [b4 = 100; } rau (int c = 0; c <1; c ++) {hue [c4 [c] = 307; zaum [c4 [c] = 95; ci [c4 [c] = 100; }} lwm yog (pNumber == 5) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int a5 = {34, 35, 46, 47, 48, 49};
rau (int a = 0; a <6; a ++) {hue [a5 [a] = 100; zaum [a5 [a] = 95; ci [a5 [a] = 100; }} lwm yog (pNumber == 6) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int a6 = {34, 35, 46, 47, 48, 49}; // daj rau (int a = 0; a <6; a ++) {hue [a6 [a] = 53; zaum [a6 [a] = 95; ci [a6 [a] = 100; }} lwm tus yog (pNumber == 7) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int c7 = {34, 35, 46, 47, 48, 49}; // ntshav rau (int c = 0; c <6; c ++) {hue [c7 [c] = 307; zaum [c7 [c] = 95; ci [c7 [c] = 100; }} lwm tus yog (pNumber == 8) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int c8 = {34, 35, 46, 47, 48, 49}; // ntshav rau (int c = 0; c <6; c ++) {hue [c8 [c] = 307; zaum [c8 [c] = 95; ci [c8 [c] = 100; }} lwm yog (pNumber == 9) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int c9 = {34, 35, 46, 47, 48, 49}; // ntshav rau (int c = 0; c <6; c ++) {hue [c9 [c] = 307; zaum [c9 [c] = 95; ci [c9 [c] = 100; }} lwm tus yog (pNumber == 10) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int c10 = {34, 35, 46, 47, 48, 49}; // ntshav rau (int c = 0; c <6; c ++) {hue [c10 [c] = 307; zaum [c10 [c] = 95; ci [c10 [c] = 100; }} lwm tus yog (pNumber == 11) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int c11 = {34, 35, 46, 47, 48, 49}; // ntshav rau (int c = 0; c <6; c ++) {hue [c11 [c] = 307; zaum [c11 [c] = 95; ci [c11 [c] = 100; }} lwm tus yog (pNumber == 12) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int c12 = {34, 35, 46, 47, 48, 49}; // ntshav rau (int c = 0; c <6; c ++) {hue [c12 [c] = 307; zaum [c12 [c] = 95; ci [c12 [c] = 100; }} lwm tus yog (pNumber == 13) {rau (int i = 0; kuv <num; i ++) {ci [kuv] = 0; gValue [kuv] = 1; } int a13 = {34, 35}; // daj int b13 = {47}; // xiav int c13 = {48}; // ntshav rau (int a = 0; a <2; a ++) {hue [a13 [a] = 53; zaum [a13 [a] = 95; ci [a13 [a] = 100; } rau (int b = 0; b <1; b ++) {hue [b13 = 210; zaum [b13 = 95; ci [b13 = 100; } rau (int c = 0; c <1; c ++) {hue [c13 [c] = 307; zaum [c13 [c] = 95; ci [c13 [c] = 100; }} pNumber = pNumber + 1;
yog (pNumber == 14) {
pNumber = 0; }}
void ani2 () {
// Serial.println ("2"); unsigned ntev curM = millis ();
yog (curM - preM> = 10) {
preM = curM; rau (int i = 0; i <num; i ++) {if (hue = 360) {gValue = -1; } hue = hue + gValue [kuv]; } txee ++; yog (counter == 360) {// Serial.print ("counter:"); // Serial.println (txee); // Serial.println (curM); cov = 0; ani2_Counter = 0; }}}
void ani3 () {
// Serial.println ("3"); } /////////////////////////////////////////// void readyState () {/ / Serial.println ("npaj tau"); } /////////////////////////////////////////// void btnEvent (int b_interval) {unsigned ntev curMillis1 = millis ();
rau (int i = 0; i <num; i ++) {btnState = digitalRead (btnPin ); }
yog (curMillis1 - preMillis1> b_interval) {
preMillis1 = curMillis1; rau (int i = 0; i = 360) {hueV = -1; } lwm yog (hue <= 0) {hueV = 1; } hue = hue + hueV ; ci [kuv] = 100; }}}} /////////////////////////////////////////// void setPixels (int k) {rau (int i = 0; i <k; i ++) {H2R_HSBtoRGB (hue , sat , ci , xim ); int num1 = i * 3; strip.setPixelColor (num1, xim [0], xim [1], xim [2]); strip.setPixelColor (num1 + 1, xim [0], xim [1], xim [2]); strip.setPixelColor (num1 + 2, xim [0], xim [1], xim [2]); } strip.show (); }
Kauj ruam 20: Qauv
Txoj haujlwm no muaj ntau daim duab peb sab uas tsim cov duab hexagonal. Yog li koj tuaj yeem tsim cov qauv stereoscopic raws li koj tsim lub teeb li cas! Tsuas yog nias txhua daim thiab ntau yam xim yuav raug gradated, thiab thaum cov xim koj xav tawm los, tsuas yog ntaus tes koj nias thiab nws yuav txuas ntxiv ci ntsa iab nrog cov xim uas koj xav tau!
Pom zoo:
Kuv Ua Kuv Tus Kheej Lub Tshuab Npaum Li Cas?: 11 Kauj Ruam (nrog Duab)
Kuv Ua Kuv Tus Kheej Lub Boxing Li Cas?: Tsis muaj ib zaj dab neeg zoo nyob tom qab qhov haujlwm no - Kuv tsuas yog ib txwm nyiam lub tshuab ntaus nrig, uas tau nyob hauv ntau qhov chaw nrov. Kuv txiav txim siab tsim kuv tus kheej
DIY LED Teeb - Niaj Hnub Teeb Meem Teeb Nrog Cov Chaw Taws Teeb: 8 Kauj Ruam (nrog Duab)
DIY LED Teeb - Niaj Hnub Teeb Mood Teeb Nrog Chaw Taws Teeb: Hauv kab lus no kuv yuav mus hla cov txheej txheem Kuv tau siv los tsim qhov no zoo heev pyramid zoo li tus LED Mood Teeb.Kuv siv maple rau cov qauv tseem ceeb thiab qee qhov mahogany txhav ntxiv rau lub zog. Rau lub teeb Kuv siv RGB LED teeb uas tuaj nyob hauv 16 ko taw
Kuv Rack-mounted Kuv Kab 6 Pod Guitar Effects Processor: 10 Kauj Ruam (nrog Duab)
Kuv Rack -mounted Kuv Kab 6 Pod Guitar Effects Processor: Kuv yuav ib qho ntawm kab thawj 6 POD chav nyob thaum lawv thawj zaug rov qab los rau xyoo 1998. Nws suab zoo li rov tshwm sim thaum ntawd thiab tseem suab zoo hnub no - qhov teeb meem tsuas yog nws cov duab - Txhawm rau muab nws meej, nws zoo li ua dag. Tseem ceeb dua, tshwj tsis yog tias koj muaj
LED Teeb Teeb Duab Cwjmem: Cov Cuab Yeej rau Teeb Teeb Doodles: 6 Kauj Ruam (nrog Duab)
LED Teeb Teeb Lub Cwjmem: Cov Cuab Yeej rau Teeb Doodles: Kuv tus poj niam Lori yog tus neeg siv tsis tu ncua thiab kuv tau ua si nrog kev yees duab ntev ntev rau ntau xyoo. Kev tshoov siab los ntawm PikaPika pab pawg teeb pom kev zoo thiab yooj yim ntawm cov koob yees duab digital peb tau siv lub teeb duab kos duab kom pom tias peb tuaj yeem ua dab tsi
Kuv Keyboard Kuv Tes: 8 Kauj Ruam (nrog Duab)
Kuv Cov Keyboard Kuv Tes: Kuv siv lub cim tshiab Epilog laser txiav uas qhia tsis ntev los no tau txais laser cim cov duab ntawm kuv txhais tes mus rau kuv lub laptop keyboard … mus tas li. Tam sim no uas yog voiding koj lav hauv DIY style