Image for post
Image for post

มาถึงภาคสุดท้ายกันแล้วนะครับ ใครจะยังไม่ได้อ่านตอนที่ 1 > From 0 to 42.195 ภารกิจพิชิตมาราธอน !!! — ตอนที่ 1 จุดเริ่มต้น และตอนที่ 2 > From 0 to 42.195 ภารกิจพิชิตมาราธอน !!! — ตอนที่ 2 Half Marathon แรก สามารถย้อนกลับไปอ่านกันก่อนได้นะครับ

มิ.ย. 62 — งานวิ่งที่ 11: Marathon แรกในชีวิตที่ Laguna Phuket

Image for post
Image for post

หลังจากเกือบเอาตัวไม่รอดที่งาน Run for the King 2019 (23.5K) ก็รู้ตัวทันทีครับว่า Laguna นี่สาหัสแน่นอน 2 อาทิตย์ก่อนแข่ง ตัดสินใจพักเลยครับ รักษาร่างกายให้ฟื้นฟูให้ได้เยอะที่สุด ที่เหลือวัดใจเอา

ซึ่งพอเจ็บแบบนี้ในหัวก็กลับมาคิดวนเวียน จิตตก เหมือนมีตัวดี กับตัวร้ายตีกันอยู่ในหัวเลยครับ

ตัวร้าย

  • เจ็บแน่นอน !!! ไม่ต้องลุ้น … จะไปวิ่งให้ทรมานร่างกายทำม๊าายยยย
  • ไปวิ่งสภาพร่างกายแบบนี้ ไปก็เป็นภาระคนอื่น เปล่าๆ แถม DNF ให้เจ็บใจอีก
  • ซ้อมสูงสุดได้ที่ 25K เอง ทั้งๆ ที่ตั้งใจไว้ว่าจะให้ได้อย่างน้อย 32K … แล้วแบบนี้จะรอดไหม
  • Laguna Phuket โหดนะ เนินเยอะมาก แดดก็ร้อนมากกก … พี่โหดนะ หนูไหมหรอ ?!?!
  • เราแค่ไปเที่ยวภูเก็ตก็ได้นะ ไม่ต้องไปวิ่งก็ได้ ไม่มีใครว่าหลอก
  • งานวิ่งมีอีกเยอะแยะ งานนี้ไม่ได้วิ่ง งานหน้าก็ยังมี รักษาให้หายก่อนไหม?

ตัวดี

  • สมัครแล้วก็ไปเถอะ Marathon แรกมีครั้งเดียวนะ
  • อาจจะหายก็ได้นะ พักตั้ง 2…


Image for post
Image for post
From 0 to 42.195 ภารกิจพิชิตมาราธอน !!! — ตอนที่ 2 Half-Marathon แรก

ต่อจากตอนที่ 1 เลยนะครับ มาติดตามกันว่า Half Marathon แรกในชีวิตจะเป็นยังไง เพื่อนๆท่านไหนยังไม่ได้อ่านตอนที่ 1 สามารถกลับไปอ่านได้จากที่นี่ครับ > From 0 to 42.195 ภารกิจพิชิตมาราธอน !!! — ตอนที่ 1 จุดเริ่มต้น

ก.พ. 62 — งานวิ่งที่ 8: Half Marathon แรกในชีวิต ! — Amazing Thailand Marathon Bangkok 2019 (21.1K)

ก่อนแข่ง ผมก็อาศัยซ้อมที่ลู่วิ่งที่ฟิตเนสเอาอย่างเดียวเลยครับ ได้สูงสุด 20K แค่ 2 รอบเอง ซึ่ง Half แรก ก็แอบตื่นเต้นมากครับ กล้าๆ กลัวๆ เพราะช่วงนั้น ฝุ่น PM 2.5 ก็กำลังเล่นงาน กทม. อยู่ครับ แอบลังเลว่าจะไปหรือไม่ไปดี … แต่สุดท้าย ก็ตัดสินใจไปครับ ถ้าไม่ไป ครั้งหน้าก็ Full Marathon เลยนะ !!!

Half Marathon แรก !!

ณ วันแข่ง 3 ก.พ. 62 อากาศก็เป็นใจครับ PM 2.5 ลดมาในระดับปกติ (มั้ง) Half ปล่อยตัว พร้อมกับ Full ที่สนามราชมังฯ แล้วไปจบที่อนุสาวรีย์ประชาธิปไตย แล้วผมพก Enery Gel ไป 3 ซองครับ กันเหนียวไว้ก่อน…ในใจตั้งไว้ว่าถ้าจบได้ใน 2:30 จะแฮปปี้มากกกก

Image for post
Image for post


Image for post
Image for post
From 0 to 42.195 k ภารกิจพิชิตมาราธอน !!! — ตอนที่ 1 จุดเริ่มต้น

หลังจากได้ผ่าน Mission Imposible ของตัวเองมาได้ นั้นก็คือ “มาราธอนแรกในชีวิต” มาได้แล้วนั้น ผมก็เลยจะขอถือโอกาสนี้มาแชร์เรื่องราว การเดินทางว่า กว่าจะวิ่งได้จนถึงระยะมาราธอน 42.195 กิโลเมตร นั้น ได้ผ่านด่านทดสอบอะไรมาบ้าง … บอกเลยครับ เส้นทางแห่งความสำเร็จนั้นไม่ได้โรยด้วยกลีบกุหลาบจริงๆ แต่มาทั้งต้นกุหลาบเลยทีเดียว กว่าเห็นผลลัพธ์อันสวยงาม ต้องฝันฝ่าทั้งขวากหนาม ที่ต้องทั้งเจ็บตัว ปวดใจ เสียเลือด และเสียน้ำตา

เส้นทางแห่งความสำเร็จนั้นไม่ได้โรยด้วยกลีบกุหลาบจริงๆ แต่มาทั้งต้นกุหลาบเลยทีเดียว

Image for post
Image for post
เสื้อ Finisher 42.195 ที่งาน Laguna Phuket Marathon 2019

เกริ่น

ผมก็เป็นมนุษย์เงินเดือน ที่ทำงานเป็นโปรแกรมเมอร์ธรรมดาๆ คนหนึ่ง ที่ต้องทำงานอยู่หน้าคอมทั้งวัน และแทบจะไม่ได้ออกกำลังกายเลยยยยยยย…ด้วยข้ออ้างสารพัด ที่เราจะหามาอ้างได้ เช่น สถานที่ไม่สะดวก เวลาไม่ได้ ออกกำลังกายแล้วเหนื่อย กลัวจะกลับมาทำงานต่อไม่ไหว เพลีย ฝนตก แดดออก ไม่มีเพื่อนไป เปลืองเงิน บลา บลา บลา…

ส่วนตัวเป็นคนชอบการเล่นกีฬาเป็นฐานอยู่แล้วนะครับ แต่เล่นไม่เก่งสักอย่าง ><” ก่อนหน้านี้ก็เคยพยายามจะวิ่งมารอบนึงแล้วครับ แต่ลงวิ่งได้แค่ 2 งาน ก็เจออาการบาดเจ็บที่เอ็นเหนือเท้าซ้าย ลงน้ำหนักไม่ได้ เลยพักยาววววววว….แล้วก็ล้มเลิกไปในที่สุดครับ …


วิธีสร้างโปรเจ็ค React ใหม่ ที่ง่ายและรวดเร็ววิธีหนึ่ง (ไม่ต้องไปตั้งค่าอะไรให้ยุ่งยาก) ก็คือคำสั่ง Create-react-app นั้นเองครับ ซึ่งสามารถใช้งานได้ทั้งระบบปฏิบัติการ macOS Windows และ Linux ครับ

สิ่งที่ต้องมีก่อน

  • Node.js 8.10.0 หรือใหม่กว่า
  • npm 5.2 หรือใหม่กว่า

ใครยังไม่มีให้ไปดาวโหลด Node.js เวอร์ชั่นล่าสุดที่ใหม่กว่า 8.10.0 มาติดตั้งก่อนนะครับ ซึ่งติดตั้ง Node.js จะได้ npm มาพร้อมกันเลย

เช็คเวอร์ชั่น Node

ไปที่ Terminal แล้วพิมพ์คำสั่ง

node -v

เช็คเวอร์ชั่น npm

ไปที่ Terminal แล้วพิมพ์คำสั่ง

npm -v

มาเริ่มสร้างโปรเจคใหม่ด้วย create-react-app กัน

เปิด Terminal แล้วพิมพ์คำสั่งดังต่อไปนี้

สำหรับคนที่ใช้ npm5.2 ขึ้นไป

npx create-react-app my-app
cd my-app
npm start
  • ใช้คำสั่ง npx create-react-app my-app(ชื่อโปรเจ็คของเรา) เพื่อสร้างโปรเจคใหม่ที่ชื่อว่า “my-app”
  • ใช้คำสั่ง cd my-app เพื่อเข้าไปที่โฟลเดอร์นั้น
  • เริ่มทดสอบโปรเจค ด้วยคำสั่ง npm start
Image for post
Image for post
npx create-react-app my-app
  • เปิดเว็บบราวเซอร์ http://localhost:3000/ ก็จะเห็นเว็บของเราทำงานได้แล้ว !
Image for post
Image for post

หมายเหตุ

  • npx มาพร้อมกับ npm5.2 ขึ้นไป
  • my-app คือชื่อโปรเจ็คที่เราจะสร้าง สามารถเปลี่ยนเป็นชื่ออะไรก็ได้

ถ้าใครใช้ npm 5.1 หรือต่ำกว่า

จะไม่สามารถใช้ npx ได้ ต้องติดตั้ง create-react-app แบบ global ก่อน ด้วยคำสั่ง

npm install -g create-react-app

แล้วถึงค่อยสั่งรัน

create-react-app my-app

ที่เหลือก็ทำเหมือนกันครับ…ง่ายสุดๆไปเลย

เสร็จแล้ว !

เสร็จแล้วจริงๆ 555

อ้างอิง


Image for post
Image for post

บทความนี้เป็นการเชื่อมต่อกับลำโพงข้างนอก ซึ่งเราสามารถสั่งการให้เสียงออกเป็นดนตรีโน๊ตต่างๆ ได้ ทำให้เราสามารถสร้างเครื่องดนตรี หรือแต่งเป็นเพลงต่างๆได้ ก็สนุกไปอีกแบบครับ

สิ่งที่เรากำลังจะทำ

  • แต่งเพลงด้วย micro:bit
  • เรียนรู้การแสดงผลด้วยเสียง ผ่านลำโพง Buzzer

สิ่งที่ต้องมี

Image for post
Image for post
  • 1 x บอร์ด micro:bit
  • 2 x สายไฟปากจระเข้
  • 1 x ลำโพง Buzzer

การต่อวงจร

Image for post
Image for post
  • ใช้สายไฟปากจระเข้หนีบเข้าที่ขา 0 กับขา +(บวก) ของ Buzzer
  • ใช้สายไฟปากจระเข้หนีบเข้าที่ขา GND กับขา -(ลบ)ของ Buzzer

ขา I/O คืออะไร ?

Image for post
Image for post
  • micro:bit มีขา GPIO จำนวน 25 ขา
  • ขาเหล่านี้สามารถใช้โปรแกรมเพื่อสั่งงาน Motor, LEDs, Sensor ต่างๆ หรืออุปกรณ์อิเล็กทรอนิกส์อื่นๆ
  • มีขาขนาดใหญ่ พร้อมรู จำนวน 5 ขา คือ ขา 0, 1, 2, 3V และ GND
  • มีขาขนาดเล็ก จำนวน 20 ขา

มาเริ่มลงมือทำกันเลย !

ขั้นที่ 1 : ตรวจสอบการกดปุ่ม A

Image for post
Image for post
  1. คลิ๊กปุ่ม Projects เพื่อสร้างโปรเจคใหม่
  2. ลากบล็อก Input > on button A pressed มาวางไว้ที่ว่าง

ขั้นที่ 2 : ใส่เสียง Melody

Image for post
Image for post

3. ลากบล็อก Music > start melody … repeating once
มาวางไวใน on button A pressed

4. คลิ๊กที่ลูกศรชี้ลง เลือกเสียงเมโลดีที่ชอบ

ขั้นที่ 3 : สร้างเสียงตามตัวโน๊ต

Image for post
Image for post

5. บล็อกสำหรับสร้างเสียงโน้ต โด-ซอล ตามจำนวนจังหวะที่กำหนด

6. คลิ๊กที่ลูกศรชี้ลง เพื่อเลือกโน้ตเพลง

7. บล็อกสำหรับเว้นวรรค(หยุด)…


Image for post
Image for post

เซ็นเซอร์ระดับความสว่างของแสง ที่มีมากับเจ้า micro:bit นั้นเป็นเซ็นเซอร์อย่างง่าย แต่ก็สามารถใช้ในการเรียนรู้ และพอจะประยุกต์ไปใช้ได้หลาย ๆ อย่างครับ

สิ่งที่เรากำลังจะทำ

Image for post
Image for post


Image for post
Image for post

เซ็นเซอร์วัดอุณหภูมินับว่าเป็นพื้นฐาน และเป็นอะไรที่สนุก สามารถประยุกต์ใช้งานได้หลากหลาย เรามาลองเล่นกันดีกว่าครับ

สิ่งที่เรากำลังจะทำ

Image for post
Image for post
  • อ่านค่าอุณหภูมิแบบองศาเซลเซียส
  • เรียนรู้การใช้งาน on shake
  • การประกาศตัวแปรแบบ Local variables
  • การใช้งาน show number

เซ็นเซอร์วัดอุณหภูมิ (Temperature Sensor) คืออะไร ?

Image for post
Image for post
  • เซ็นเซอร์วัดอุณหภูมินี้จะวัดอุณภูมิโดยรอบ หรือ ambient temperature ให้ค่าเป็นหน่วย องศาเซลเซียส (C)
  • โดย micro:bit นี้จะไม่ได้มีเซ็นเซอร์วัดอุณหภูมิแยก
  • ซึ่งจะใช้ค่าอุณหภูมิที่ได้จาก CPU หลักแทน

มาเริ่มลงมือทำกันเลย !

ขั้นที่ 1 : ตรวจสอบการสั่น

Image for post
Image for post
  1. คลิ๊กปุ่ม Projects เพื่อสร้างโปรเจคใหม่
  2. ลากบล็อก Input > on shake มาวางไว้ที่ว่าง

ขั้นที่ 2 : กำหนดตัวแปรสำหรับเก็บค่าอุณหภูมิ

Image for post
Image for post

3. ลากบล็อก Variables > set item to … มาวางใน on shake

4. คลิ๊กที่ลูกศรชี้ลง กด Rename Variable เพื่อเปลี่ยนชื่อตัวแปรเป็น “temp” แล้วกด ok

Image for post
Image for post

5. ลากบล็อกคำสั่ง temperature © จาก Input มาวางต่อจาก set temp

Image for post
Image for post

6. ลากบล็อก Basic > show number … จาก Basic มาต่อ set temp to

7. ลากบล็อก Variables > temp มาไว้ใน show number

ทดสอบ

Image for post
Image for post

micro:bit 101

Image for post
Image for post

Image for post
Image for post

คราวนี้เรามาลองทำเกมส์สนุก ๆ เล่นกันดีกว่าครับ … “เกมส์เป่ายิงฉุบ” โดยเราจะเขย่าเจ้า micro:bit แล้วให้ทำการสุ่ม ให้แสดงรูปเป็น ค้อน หรือ กรรไกร หรือ กระดาษ

สิ่งที่เรากำลังจะทำ

Image for post
Image for post
  • สร้างเกมเป่ายิงฉุบ (ค้อน กรรไกร กระดาษ)
  • ใช้ตรวจจับการสั่น(shake) เพื่อสุ่มว่าจะออก ค้อน กรรไกร หรือกระดาษ

Accelerometer คือ อะไร ?

Image for post
Image for post
  • Accelerometer คือ เซนเซอร์วัดความเร่ง
  • ใช้สำหรับตรวจจับการเคลื่อนไหวของ microbit หรือตรวจจับการกระทำอื่นๆ เช่น การสั่น การเอียง หรือการตก

มาเริ่มลงมือทำกันเลย !

ขั้นที่ 1 : ตรวจสอบการสั่น

Image for post
Image for post
  1. คลิ๊กปุ่ม Projects เพื่อสร้างโปรเจคใหม่
  2. ลากบล็อก Input > on shake มาวางไว้ที่ว่าง

ขั้นที่ 2: การสุ่ม

Image for post
Image for post

3. ลากบล็อก Variables > set item to มาวางไว้ใน on shake

4. คลิ๊กที่ลูกศรชี้ลง กด Rename Variable เพื่อเปลี่ยนชื่อตัวแปรเป็น “action”
แล้วกด ok

5. ลากบล็อกคำสั่ง Math > pick random 0 to … มาวางต่อจาก set action to

6. เปลี่ยนตัวเลขเป็น “2” เพื่อให้โปรแกรม ทำการสุ่ม 3 ค่า คือ 0, 1 และ 2

ขั้นที่ 3: เงื่อนไขการออกค้อน กรรไกร หรือ กระดาษ

Image for post
Image for post

7. ลากบล็อก Logic > if…then…else มาวางไว้ต่อจาก set action to

8.ลากบล็อก Logic > 0 = 0 มาวางไว้ต่อจาก if…then..else


Image for post
Image for post

บทความนี้เราจะมาลองเล่น การรับข้อมูล (input) จากการกดปุ่มดูกันครับ ซึ่งเจ้า micro:bit จะมีปุ่มมาให้ 2 ปุ่ม คือ A และ B

สิ่งที่เรากำลังจะทำ

Image for post
Image for post
  • วิธีการอ่านค่าสถานะของปุ่มกด
  • กดปุ่ม A ให้แสดงเป็นรูป หน้ายิ้ม (happy)
  • กดปุ่ม B ให้แสดงเป็นรูป หน้าบึ้ง (sad)
  • กดปุ่ม A+B ให้แสดงเป็นรูป หน้าสับสน (confuse)

ปุ่มกด คืออะไร ?

Image for post
Image for post
  • วิธีการอ่านค่าสถานะของปุ่มกด
  • กดปุ่ม A ให้แสดงเป็นรูป หน้ายิ้ม (happy)
  • กดปุ่ม B ให้แสดงเป็นรูป หน้าบึ้ง (sad)
  • กดปุ่ม A+B ให้แสดงเป็นรูป หน้าสับสน (confuse)

มาเริ่มลงมือทำกันเลย !

ขั้นที่ 1 : เมื่อกดปุ่ม A ให้แสดงหน้ายิ้ม (happy)

Image for post
Image for post
  1. คลิ๊กปุ่ม Projects เพื่สร้างโปรเจคใหม่
  2. ลากบล็อก Input > on button A pressed มาวางไว้ที่ว่าง
  3. ลากบล็อก Basic > show icon มาวางไว้ในบล็อก on button A pressed
Image for post
Image for post

4. คลิ๊กที่ลูกศรชี้ลง แล้วเลือกรูปหน้ายิ้ม (happy)

ขั้นที่ 2 : เมื่อกดปุ่ม Bให้แสดงหน้าบึ้ง (Sad)

Image for post
Image for post

5. คลิ๊กขวา ที่บล็อก on button A pressed แล้วเลือก Duplicate เพื่อทำการคัดลอกบล็อกคำสั่งทั้งหมด

6. ที่บล็อก on button A pressed คลิ๊กที่ลูกศรชี้ลง แล้วเปลี่ยนจาก A เป็น B

7. คลิ๊กที่ลูกศรชี้ลง แล้วเลือกรูปหน้าบึ้ง (sad)

ขั้นที่ 3 : เมื่อกดปุ่ม A+B ให้แสดงหน้าสับสน (confuse)

  • ทำแบบเดียวกับขึ้นตอนที่ 7–8 แล้วเปลี่ยนเป็น A+B
Image for post
Image for post

8. ที่บล็อก on button A pressed คลิ๊กที่ลูกศรชี้ลง แล้วเปลี่ยนจาก A เป็น…


Image for post
Image for post

มาลองเล่นส่วนแสดงผล LEDs ในรูปแบบของ icon กันครับ ซึ่งง่ายมากๆ

สิ่งที่เรากำลังจะทำ

Image for post
Image for post
  • สร้างภาพเคลื่อนไหวด้วย LED Array

LED คืออะไร ?

  • LED (Light Emitting Diode) คือ ไดโอดเปร่งแสงได้
  • micro:bit มี LED 25 ดวง (5x5) ซึ่งสามารถโปรแกรมแต่ละดวงได้
  • ใช้สำหรับแสดงข้อความ ตัวเลข หรือรูปภาพ

มาเริ่มลงมือทำกันเลย !

ขั้นที่ 1 : เริ่มเขียนโปรแกรม

Image for post
Image for post
  1. คลิ๊กปุ่ม Projects เพื่อสร้างโปรเจคใหม่
  2. ลากบล็อก Basic > show icon มาวางไว้ในบล็อก forever
  3. คลิ๊กขวาที่บล็อกคำสั่ง show icon เลือก Duplicate ซึ่งจะเป็นการคัดลอก บล็อกคำสั่ง show icon นั้นเอง
Image for post
Image for post

4. กดที่ลูกศรชี้ลง

5. เลือกรูปหัวใจขนาดเล็ก

6. โปรแกรมทั้งหมด

ทดสอบ

Image for post
Image for post

micro:bit 101

Image for post
Image for post

About

Sathittham Sangthong

Hi ! It's me Phoo ! Tech Nerd, Maker, DIYer, Educator, Embedded System Engineer and Startup Entrepreneur

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store