ÄÜÅÙÃ÷ »ó¼¼º¸±â
New P5.js & ¾ÆµÎÀÌ³ë ¿¬µ¿


New P5.js & ¾ÆµÎÀÌ³ë ¿¬µ¿

New P5.js & ¾ÆµÎÀÌ³ë ¿¬µ¿

<±è¼ºÀÏ> Àú | ÄÚµùºÏ½º

Ãâ°£ÀÏ
2023-08-15
ÆÄÀÏÆ÷¸Ë
ePub
¿ë·®
20 M
Áö¿ø±â±â
PC½º¸¶Æ®ÆùÅÂºí¸´PC
ÇöȲ
½Åû °Ç¼ö : 0 °Ç
°£·« ½Åû ¸Þ¼¼Áö
ÄÜÅÙÃ÷ ¼Ò°³
¸ñÂ÷
ÇÑÁÙ¼­Æò

ÄÜÅÙÃ÷ ¼Ò°³

Àü°ø ºÒ¹® ÄÚµù ÀÔ¹®ÀÚ, S/W ¹× H/W¸¦ ¿¬µ¿ÇÏ°í ½ÍÀº ÀÚ¸¦ À§ÇÑ Ã¥



¹Ì·¡ÀÇ ±³À°¹æ½ÄÀ¸·Î ÈçÈ÷ STEM ±³À°À» ¸»ÇÕ´Ï´Ù. Áï, °úÇÐ(Science), ±â¼ú(Technology), °øÇÐ(Engineering), ¼öÇÐ(Mathematics)À» À¶ÇÕÇÑ ±³À°À» ÀǹÌÇÕ´Ï´Ù. P5.js(¡æÇÁ·Î¼¼½ÌÀÇ À¥ ¹öÀü)¿Í ¾ÆµÎÀ̳ë´Â ¿ø·¡ ÄÚµù¿¡ Àͼ÷ÇÏÁö ¾ÊÀº µðÀÚÀÎÀ̳ª ¿¹¼ú Àü°øÀÇ ÇлýµéÀ» À§ÇÏ¿© °¢°¢ ½Ã°¢Àû, ¹°¸®Àû »óÈ£ ÀÛ¿ë¿¡ ÁßÁ¡À» µÐ S/W ¹× H/W ÄÚµù ¾ð¾î·Î ź»ýÇÏ¿´½À´Ï´Ù. ±×·¯¹Ç·Î P5.js¿Í ¾ÆµÎÀ̳ë´Â STEM¿¡ Àι®Çаú ¿¹¼úÀ» ÀǹÌÇÏ´Â Art¸¦ ´õÇÑ STEAM ±³À°¿¡ ÀûÇÕÇÑ ÄÚµù ¾ð¾îÀÔ´Ï´Ù.



Art Áï, Àι®Çаú ¿¹¼úÀº Àΰ£ÀÇ Ã¢ÀǼºÀ» °³¹ßÇÒ ¼ö ÀÖ´Â ¼ö´ÜÀ¸·Î¼­ Àΰ£¸¸ÀÌ °¡´ÉÇÑ ÀÇ¹Ì ÀÖ´Â ¿µ¿ªÀ̶ó°í ¸»ÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó âÀÇÀûÀÎ ±³À°ÀÇ ÇÙ½É ¿ä¼Ò Áß ÇϳªÀÔ´Ï´Ù. ±× ÀÌÀ¯·Î, Àι®Çаú ¿¹¼ú¿¡´Â ÇØ´äÀÌ Çϳª ÀÌ»ó ¶Ç´Â ÇØ´äÀÌ ¾ø´Â ¹®Á¦°¡ ´ëºÎºÐÀ̹ǷΠâÀÇÀûÀÎ »ç°í°¡ ¹«¾ùº¸´Ù ÇÊ¿äÇϱ⠶§¹®ÀÔ´Ï´Ù. âÀÇÀû »ç°í¸¦ ÃËÁøÇÏ´Â ±³À° È¿°ú¸¦ ´©¸®´Â µ¿½Ã¿¡ °úÇÐ, ±â¼ú, °øÇÐ, ¼öÇаú ¿¹¼ú »çÀÌÀÇ Àý¹¦ÇÑ Á¢Á¡À» Á÷Á¢ üÇèÇÏ°í ½Í´Ù¸é P5.js¿Í ¾ÆµÎÀ̳븦 ¿¬µ¿ÇÑ ÇÇÁöÄà ÄÄÇ»ÆÃ(Physical Computing)À¸·Î ½ÃÀÛÇÏ´Â °ÍÀº ÁÁÀº ¼±ÅÃÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. P5.js¿Í ¾ÆµÎÀ̳븦 ¹è¿ì´Â °úÁ¤Àº ÀÌ·¯ÇÑ À¶ÇÕ°ú âÀÇÀÇ ÇÙ½ÉÀ» üµæÇÏ´Â ½Ã°£ÀÌ µÉ °ÍÀÔ´Ï´Ù. ±×¸®°í ¹«¾ùº¸´Ù Àç¹ÌÀÖ½À´Ï´Ù.^^ For Fun!



¸ñÂ÷

01 ½ÃÀÛ
1.1 ÄÚµù°ú ÇÇÁöÄà ÄÄÇ»Æà 16
1.2 p5.js¶õ? 21
1.2.1 p5.js °³¿ä 21
1.2.2 À¥ ¿¡µðÅÍ¿¡¼­ ÄÚµù 24
1.2.3 ºñÁÖ¾ó ½ºÆ©µð¿À Äڵ忡¼­ ÄÚµù 29
¡¼½ÉÈ­1.1¡½ p5.js¿Í ÇÁ·Î¼¼½ÌÀÇ Â÷ÀÌÁ¡ 34
1.3 ¾ÆµÎÀ̳ë¶õ? 38
1.3.1 ¾ÆµÎÀÌ³ë °³¿ä 38
1.3.2 ¾ÆµÎÀ̳뿡¼­ ÄÚµù 40

02 Ç¥Çö
2.1 p5.js: Ç¥Çö 48
2.1.1 ĵ¹ö½ºÀÇ Å©±â 48
2.1.2 Á¡°ú ¼±ÀÇ Ç¥Çö 52
¡¼½ÉÈ­2.1¡½ ÇÔ¼öÀÇ »ç¿ë¹ý °Ë»ö 54
2.1.3 ¿ø°ú »ç°¢ÇüÀÇ Ç¥Çö 55
¡¼½ÉÈ­2.2¡½ ¿ø°ú »ç°¢ÇüÀ» ±×¸± ¶§ÀÇ ±âÁØÁ¡ ¼³Á¤ 56
2.1.4 ¹®ÀÚÀÇ Ç¥Çö 57
2.1.5 »ö»óÀÇ Ç¥Çö 59
¡¼½ÉÈ­2.3¡½ 2Áø¼ö & 16Áø¼ö 61
¡¼½ÉÈ­2.4¡½ ºñÆ®(Bit) & ¹ÙÀÌÆ®(Byte) 62
2.1.6 ¿øÈ£ÀÇ Ç¥Çö 66
2.2 ¾ÆµÎÀ̳ë: Ç¥Çö 69
2.2.1 ÀÔ¡¤Ãâ·Â ºÎÇ° 69
2.2.2 ÀÔ¡¤Ãâ·Â ºÎÇ°ÀÇ ÇɹøÈ£ ¼³Á¤ 70
2.2.3 LED Á¡¸ê 72

03 º¯¼ö
3.1 p5.js: º¯¼ö 77
3.1.1 º¯¼ö ¼±¾ð°ú ÃʱâÈ­ 77
¡¼½ÉÈ­3.1¡½ p5.js ¶Ç´Â ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ Å°¿öµå(Keyword) 80
3.1.2 º¯¼ö¿Í ¿¬»ê 81
¡¼½ÉÈ­3.2¡½ À¯´ÏÄÚµå(Unicode) & ¾Æ½ºÅ°ÄÚµå(ASCII Code) 84
¡¼½ÉÈ­3.3¡½ p5.jsÀÇ ¹®ÀÚ Ç¥Çö 86
¡¼½ÉÈ­3.4¡½ ÄܼÖâ »ç¿ë 89
¡¼½ÉÈ­3.5¡½ ÄܼÖâ »ç¿ë ½Ã À¯ÀÇÁ¡ ¹× »ç¿ë ¿¹ 91
¡¼½ÉÈ­3.6¡½ ÆùÆ® ¼³Á¤ ¹æ¹ý 93
¡¼½ÉÈ­3.7¡½ µ¥ÀÌÅÍÇü ÃÑÁ¤¸® 94
¡¼½ÉÈ­3.8¡½ var & let & const 99
¡¼½ÉÈ­3.9¡½ Ä÷¯ Ç¥Çö 102
3.1.3 º¯¼ö ±â¹Ý ¿òÁ÷ÀÓ Ç¥Çö 104
3.1.4 Àü¿ªº¯¼ö¿Í Áö¿ªº¯¼ö 111
3.1.5 ½Ã½ºÅÛ º¯¼ö¿Í ´Ù¾çÇÑ ¿òÁ÷ÀÓ ±¸Çö 114
¡¼½ÉÈ­3.10¡½ frameRate() & frameRate(ÇÁ·¹ÀÓ¼ö) 116
3.2 ¾ÆµÎÀ̳ë: º¯¼ö 125
3.2.1 ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡¼­ ¾ÆµÎÀÌ³ë ¼Û½Å°ª È®ÀÎ 125
¡¼½ÉÈ­3.11¡½ p5.js¿Í ¾ÆµÎÀ̳ëÀÇ ºñ±³: ±âº» µ¥ÀÌÅÍÇü 130
3.2.2 º¯¼ö ±â¹Ý ´Ù¾çÇÑ ºÎÇ°ÀÇ Æ¯¼º È®ÀÎ 133
¡¼½ÉÈ­3.12¡½ const¿Í #define ºñ±³ 135
¡¼½ÉÈ­3.13¡½ ÆÃĿijµå(Tinkercad) 135
¡¼½ÉÈ­3.14¡½ ÃÊÀ½Æļ¾¼­·Î °Å¸® ±¸Çϱâ 156
3.2.3 Àüü ȸ·Îµµ 157
3.2.4 º¯¼ö ±â¹Ý Á¦¾î 159
¡¼½ÉÈ­3.15¡½ p5.js¿Í ¾ÆµÎÀ̳ëÀÇ Â÷ÀÌ: map() 160
¡¼½ÉÈ­3.16¡½ ¾ÆµÎÀ̳ëÀÇ ÀÔ¡¤Ãâ·Â ÇÔ¼ö Á¤¸® 167
¡¼½ÉÈ­3.17¡½ ºÎÀúÀÇ tone() ÇÔ¼ö¿Í ¼­º¸¸ðÅÍ »ç¿ë ½Ã À¯ÀÇ»çÇ× 169

04 Á¶°Ç
4.1 p5.js: Á¶°Ç 172
4.1.1 if¹® 172
¡¼½ÉÈ­4.1¡½ ºñ±³ ¿¬»êÀÚ º¸Ãæ 174
4.1.2 if-else¹® 180
4.1.3 ¹® 181
4.1.4 if¹®°ú ½Ã½ºÅÛ º¯¼ö 183
4.1.5 Áßø if¹® 190
4.1.6 switch¹® 193
4.2 ¾ÆµÎÀ̳ë: Á¶°Ç 196
4.2.1 if¹®, if-else¹® 196
¡¼½ÉÈ­4.2¡½ p5.js¿Í ¾ÆµÎÀ̳ëÀÇ Â÷ÀÌ: boolean 199
¡¼½ÉÈ­4.3¡½ p5.js¿Í ¾ÆµÎÀ̳ëÀÇ Â÷ÀÌ: if¹® 201
¡¼½ÉÈ­4.4¡½ äÅ͸µ(Chattering) 208
4.2.2 ¹® 217
4.2.3 Áßø if¹® 218
4.2.4 switch¹® 221

05 ¹Ýº¹
5.1 p5.js: ¹Ýº¹ 228
5.1.1 for¹® 228
5.1.2 while¹®, do-while¹® 232
5.1.3 for¹®°ú »óÈ£ÀÛ¿ë 235
5.1.4 Áßø for¹® 237
5.2 ¾ÆµÎÀ̳ë: ¹Ýº¹ 239
5.2.1 for¹® 239
¡¼½ÉÈ­5.1¡½ ¾ÆµÎÀ̳ë¿Í p5.jsÀÇ Çüº¯È¯ ¹× ¹®ÀÚ¿­ ´õÇϱâ 246
5.2.2 while¹®, do-while¹® 248
5.2.3 Áßø for¹® 249

06 ¹è¿­
6.1 p5.js: ¹è¿­ 254
6.1.1 1Â÷¿ø ¹è¿­ 254
6.1.2 ¹è¿­°ú ¹Ýº¹¹® 259
6.1.3 2Â÷¿ø ¹è¿­ 267
6.2 ¾ÆµÎÀ̳ë: ¹è¿­ 270
6.2.1 1Â÷¿ø ¹è¿­ 270
6.2.2 ¹è¿­°ú ¹Ýº¹¹® 272
¡¼½ÉÈ­6.1¡½ p5.js¿Í ¾ÆµÎÀ̳ëÀÇ Â÷ÀÌ: ¹è¿­ 273
6.2.3 2Â÷¿ø ¹è¿­ 285

07 ÇÔ¼ö
7.1 p5.js: ÇÔ¼ö 288
7.1.1 ÇÔ¼ö À¯Çü 288
7.1.2 ÇÔ¼ö À¯Çü1 291
7.1.3 ÇÔ¼ö À¯Çü2 292
7.1.4 ÇÔ¼ö À¯Çü3 295
7.1.5 ÇÔ¼ö À¯Çü4 299
¡¼½ÉÈ­7.1¡½ ÇÔ¼ö ¸¸µé±â ¿¬½À 302
7.1.6 À̺¥Æ® ÇÔ¼ö 303
7.2 ¾ÆµÎÀ̳ë: ÇÔ¼ö 310
7.2.1 ÇÔ¼ö À¯Çü1 310
7.2.2 ÇÔ¼ö À¯Çü2 312
7.2.3 ÇÔ¼ö À¯Çü3 315
7.2.4 ÇÔ¼ö À¯Çü4 316
¡¼½ÉÈ­7.2¡½ P5.js¿Í ¾ÆµÎÀ̳ëÀÇ ÇÔ¼ö À¯Çü ºñ±³ 318
7.2.5 ÇÔ¼ö À¯Çü ÀÀ¿ë 321
¡¼½ÉÈ­7.3¡½ p5.js¿Í ¾ÆµÎÀ̳ëÀÇ Â÷ÀÌ: random() 329
¡¼½ÉÈ­7.4¡½ p5.js¿Í ¾ÆµÎÀ̳ëÀÇ Â÷ÀÌ: randomSeed() 330

08 ºñÆ®
8.1 ºñÆ® ¿¬»ê 337
¡¼½ÉÈ­8.1¡½ Áø¼ö º¯È¯ 339
¡¼½ÉÈ­8.2¡½ ³í¸®¿¬»êÀÚ & ºñÆ®¿¬»êÀÚ 342
¡¼½ÉÈ­8.3¡½ p5.jsÀÇ ºñÆ® ¿¬»ê 343
8.2 ºñÆ® ó¸® 345

09 ½Ã¸®¾ó Åë½Å
9.1 ½Ã¸®¾ó Åë½Å 356
¡¼½ÉÈ­9.1¡½ ½Ã¸®¾ó(Serial) Åë½Å 360
9.2 ¹®ÀÚ ¼Û¡¤¼ö½Å 361
9.3 ¹®ÀÚ¿­ ¼Û¡¤¼ö½Å 364
¡¼½ÉÈ­9.2¡½ ¼ö½Å ¹®ÀÚ¿­¿¡¼­ Á¤¼ö ÃßÃâ 368
9.4 Á¤¼ö ¼Û¡¤¼ö½Å 370

10 P5.js¡æ¾ÆµÎÀ̳ë
10.1 ¿¬µ¿ ½Ç½ÀÀ» À§ÇÑ Áغñ 383
¡¼½ÉÈ­10.1¡½ ½Ã¸®¾ó Åë½Å ¶óÀ̺귯¸® ÆÄÀÏ(p5.webserial.js) ¾÷·Îµå ¹æ¹ý 385
¡¼½ÉÈ­10.2¡½ ¿¬µ¿ ½Ã ÁÖÀÇ»çÇ× ¹× ½ÇÇà ¼ø¼­ 388
10.2 Á¤¼ö ¼Û¡¤¼ö½Å1 390
¡¼½ÉÈ­10.3¡½ Æú¸µ ¹æ½Ä¿¡¼­ while¹® & if¹® 400
¡¼½ÉÈ­10.4¡½ p5.js¿¡¼­ÀÇ ¼Û½Å ºóµµ Á¶Àý: frameRate() 408
10.3 Á¤¼ö ¼Û¡¤¼ö½Å2 409
¡¼½ÉÈ­10.5¡½ ¾ÆµÎÀ̳뿡¼­ Á¤¼ý°ª ¼ö½Å ½Ã µ¥ÀÌÅÍÇü 417
¡¼½ÉÈ­10.6¡½ ¼ýÀÚ¸¦ Ç¥ÇöÇÏ´Â ´Ù¾çÇÑ ¸Þ¼Òµå 417
10.4 ¹®ÀÚ¿­ ¼Û¡¤¼ö½Å 419
10.5 º¹¼ö µ¥ÀÌÅÍ ¼Û¡¤¼ö½Å 423
¡¼½ÉÈ­10.7¡½ findUntil() 432

11 ¾ÆµÎÀ̳ë¡æP5.js
11.1 Á¤¼ö ¼Û¡¤¼ö½Å1 436
¡¼½ÉÈ­11.1¡½ p5.WebSerial ¶óÀ̺귯¸®ÀÇ À̺¥Æ® 444
¡¼½ÉÈ­11.2¡½ ¾ÆµÎÀ̳뿡¼­ÀÇ ¼Û½Å ºóµµ Á¶Àý: delay() 446
¡¼½ÉÈ­11.3¡½ Serial.write() & Serial.print() ºñ±³ 449
11.2 Á¤¼ö ¼Û¡¤¼ö½Å2 452
11.3 ¹®ÀÚ¿­ ¼Û¡¤¼ö½Å 464
11.4 ¼¾¼­°ª ºÐ¸® ¼Û¡¤¼ö½Å 469
¡¼½ÉÈ­11.4¡½ highByte() & lowByte() 479
11.5 º¹¼ö ¼¾¼­°ª ¼Û¡¤¼ö½Å1 480
11.6 º¹¼ö ¼¾¼­°ª ¼Û¡¤¼ö½Å2 490
11.7 ÆÄÀÏ Ã³¸® 498
¡¼½ÉÈ­11.5¡½ ÆÄÀÏ ²ø¾î´ç°Ü ³õ±â(Drag & Drop) 513
¡¼½ÉÈ­11.6¡½ p5.jsÀÇ ½Ã°£ °ü·Ã ÇÔ¼ö 514
¡¼½ÉÈ­11.7¡½ ¾Æ½ºÅ°Äڵ尪 È®ÀÎ 515

12 ¾ÆµÎÀ̳ë¡êP5.js
12.1 P5.js¡æ¾ÆµÎÀ̳ë Çڵ彦ÀÌÅ· 520
¡¼½ÉÈ­12.1¡½ Çڵ彦ÀÌÅ· ¹æ½ÄÀÇ Æ¯Â¡ 531
12.2 ¾ÆµÎÀ̳ë¡æP5.js Çڵ彦ÀÌÅ· 536
¡¼½ÉÈ­12.2¡½ Çڵ彦ÀÌÅ· ¹æ½Ä¿¡¼­ port.readLine() »ç¿ë ½Ã À¯ÀÇÁ¡ 556
¡¼½ÉÈ­12.3¡½ ½Ã¸®¾ó Åë½Å¿¡¼­ ¹®ÀÚ¿­ ¼Û¡¤¼ö½ÅÀÇ À塤´ÜÁ¡ 557
12.3 ¾ÆµÎÀ̳ë¡êP5.js Çڵ彦ÀÌÅ· 558
¡¼½ÉÈ­12.4¡½ p5.WebSerial°ú ¾ÆµÎÀ̳ëÀÇ ¼Û¡¤¼ö½Å ¸Þ¼Òµå ºñ±³ 572
¡¼½ÉÈ­12.5¡½ p5.WebSerial & p5.SerialPort 576
¡¼½ÉÈ­12.6¡½ ĵ¹ö½º Å©±â ÃÖ´ë ¼³Á¤ 579
¡¼½ÉÈ­12.7¡½ ¾ÆµÎÀ̳ë & p5.js ¾ð¾î ºñ±³ 580

¸¶¹«¸®
¸¶¹«¸® 586