Raspberry Pi 3 [Overview]

     Raspberry Pi (ราสเบอร์รี่ พาย) คือ เครื่องคอมพิวเตอร์ ขนาดเล็ก (ประมาณบัตรทั่วไป) ที่มีราคาถูกกว่าคอมพิวเตอร์ ราคาปกติมาก (1,xxx บาท ขึ้นอยู่กับว่าผลิตจากประเทศไหน China, UK หรือ Japan) สามารถต่อเข้ากับจอคอมพิวเตอร์ (ผ่าน HDMI) หรือจะใช้ตัวแปลง (HDMI to VGA)  และยังรองรับเมาส์/คีย์บอร์ด/อุปกรณ์อื่นๆ ผ่านทาง USB Port อีกทั้งยังสามารถต่อสายแลน (10/100 RJ45) ได้อีกด้วย (มี Bluetooth และ Wi-Fi 802.11n Controller On-Board)                   Specification (ข้อมูลจาก: https://www.raspberrypi.org/magpi/raspberry-pi-3-specs-benchmarks/) SoC: Broadcom BCM2837 CPU: 4× ARM Cortex-A53, 1.2GHz GPU: Broadcom VideoCore IV RAM: 1GB LPDDR2 (900 MHz) Networking: 10/100 Ethernet, 2.4GHz 802.11n wireless Bluetooth: Bluetooth 4.1 Classic, Bluetooth Low Energy Storage: microSD GPIO: 40-pin header, populated Ports: HDMI, 3.5mm analogue audio-video jack, 4× USB 2.0, Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI)     (รูปจาก element 14) Raspberry Pi ทำอะไรได้บ้าง ? เรียกว่าเป็นเครื่องคอมพิวเตอร์ desktop เครื่องหนึ่งเลยก็ว่าได้ อาจจะไม่พลังสูงเหมือนกับเครื่อง PC แต่ก็เพียงพอสำหรับเด็กๆ ลูกๆ หลานๆ ได้ใช้งาน พิมพ์งาน เล่นเกมจำนวนหนึ่ง และที่สำคัญสามารถฝึกการเขียนโปรแกรม (เช่น Python) ได้อีกด้วย ซึ่งสามารถใช้งานได้ทันที สามารถต่อ I/O (Input/Output) ร่วมกับเซนเซอร์ต่างๆ อีกทั้งสามารถทำเป็น Media Center ได้อีกด้วย       Raspberry Pi VS Arduino ทั้งสองอย่างอย่างนี้ ถ้ามองกันจริงๆ แล้วแตกต่างกันพอสมควร โดยที่ Arduino (อา-ดู-อิ-โน่ หรือ อาดุยโน่) เป็น Microprocessor ตระกูล AVR เอาไว้รันโปรแกรมเล็กๆ หรือเอาไว้ต่อพ่วงกับอุปกรณ์อื่นๆ เช่น เซนเซอร์, รีเลย์ ได้อย่างง่ายกว่า Raspberry Pi ซึ่งอย่างที่กล่าวเอาไว้ก่อนหน้า Raspberry Pi คือ คอมพิวเตอร์ขนาดจิ๋ว สามารถลงระบบปฏิบัติการ (OS) ใช้งานแทนคอมพิวเตอร์ได้   แล้วจะเอา Raspberry Pi มาทำแบบ Arduino ได้มั้ย ? คำตอบคือ ได้ครับ เนื่องจาก Raspberry Pi ก็มี GPIO (General Purpose Input Output) ให้จำนวนหนึ่ง สามารถคอนโทรลให้เป็น “1” หรือ “0” ได้ตามใจชอบ ด้วยการเขียนโปรแกรมควบคุมแต่ละ Pin (เหมือนกับ Microcontroller) ด้วยภาษา C หรือ

Read More »

วิธีส่ง email ในนามหน่วยงาน ที่ออกจาก Gmail ให้เป็น @psu.ac.th หรือ @group.psu.ac.th

ไปที่ https://mail.google.com/mail/u/0/#settings/accounts คลิก Add Another email address ใส่ ชื่อที่ต้องการ email address ที่ต้องการส่งออกไป แล้วคลิก Next Step จากนั้น ใส่ SMTP Server: smtp2.psu.ac.th Username; yourpsuemail@psu.ac.th  <—– email address ของ psu ครับ Password: Password ของ psu email แล้วคลิก Add Account รอ email ที่เข้าสู่ Groupmail ที่กำหนดไว้ จะได้รับ email ประมาณนี้ ให้เอา Confirmation Code ไป หรือ จะคลิก Link ก็ได้ เมื่อเสร็จแล้วก็จะได้ผลลัพธ์ประมาณนี้ ครับ

Read More »

Windows CRLF to Unix LF Issues in Cygwin Shell Script

เมื่อเรารัน shell script ของโปรแกรม Cygwin for Windows ซึ่งมีการเขียนคำสั่งไปตัดเอาข้อความผ่านคำสั่ง (Command Line) ของ Windows มาใส่ในตัวแปรของ shell script เช่น ในตัวอย่างนี้คือคำสั่ง ipconfig เมื่อได้ข้อความที่ต้องการมาเราจะได้ \r แถมมาให้ด้วยต่อท้าย เพราะ Windows style line ending จะมี CRLF (\r\n)  ในขณะที่ Linux style line ending จะมี LF (\n) เท่านั้น น่าแปลกใจมากว่า เราเคยรัน shell script นี้ใน Windows 7 ใช้งานได้ แต่พอเป็น Windows 10 build 1709 มันรันไม่ได้   ปัญหา เมื่อเปิด Cygwin Terminal ขึ้นมา จะได้เป็น bash shell ในไฟล์ test.sh ดังตัวอย่างข้างล่างนี้ เมื่อสั่งรัน จะพบว่าพบข้อผิดพลาด ตัวแปร ZONEX จะไม่มีค่า ซึ่งจริง ๆ จะต้องได้คำว่า zone1 $ cat test.sh #!/bin/bash DHCPSERVER=$(ipconfig /all | grep -i “DHCP Server” | cut -d: -f2 | xargs) MAC=$(ipconfig /all | grep -A4 -i “^Ethernet Adapter Ethernet” | tail -1 | cut -d\: -f2 | tr – : | xargs) ZONEX=$(curl -s http://${DHCPSERVER}/dhcpd.txt | grep -i ${MAC} | awk ‘{print $2}’ | cut -d’_’ -f1) echo “DHCP SERVER is ${DHCPSERVER}” echo “MAC is ${MAC}” echo “Zone is ${ZONEX}” สั่งรันดูผลลัพธ์ด้วยคำสั่ง bash test.sh $ bash test.sh DHCP SERVER is 192.168.6.150 MAC is 50:7B:9D:30:2E:4B Zone is ผมก็ตรวจสอบด้วยวิธีการ debug คือ เพิ่ม -x ดังตัวอย่างนี้ $ bash -x test.sh ++ ipconfig /all ++ grep -i ‘DHCP Server’ ++ cut -d: -f2 ++ xargs + DHCPSERVER=$’192.168.6.150\r’ ++ ipconfig /all ++ grep -A4 -i ‘^Ethernet Adapter Ethernet’ ++ tail -1 ++ cut -d: -f2 ++ tr

Read More »

วิธี upgrade Node.js ใน Bash ของ Windows 10 ให้เป็นรุ่นปัจจุบัน

ปัญหาคือ บน Windows 10 เราสามารถใช้ Windows Subsystem for Linux (WSL) หรือ Bash Shell ได้ ซึ่งจริงๆมันก็คือ Ubuntu 16.04.3 แต่ว่า เวลาจะใช้งาน Node.js ติดตั้งพวก Firebase, Angular อะไรพวกนี้ จะทำไม่ได้ เพราะรุ่นที่ให้มามันเก่ามาก วิธีการคือ (Reference: https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) ใช้คำสั่งต่อไปนี้ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash – apt-get install -y nodejs ก็เรียบร้อย

Read More »

วิธีป้องกันไม่ให้ Notebook Windows 10 เข้าสู่ Hibernate หลังจาก Sleep 180 วินาที

ปัญหามีอยู่ว่า บางที เราก็อยากจะแค่ ปิดฝา Notebook แล้วให้มัน Sleep แล้วเมื่อเปิดอีกครั้ง ก็สามารถทำงานต่อได้เลย แต่ค่า Default คือ ระบบจะเข้าสู่ Sleep เป็นเวลา 180 วินาที (3 นาที) แล้วหลังจากนั้นก็จะ Hibernate ทำให้ เวลากลับมาทำงานใหม่ ต้องรอสักพัก (แบบว่าอยากได้เหมือน Macbook อ่ะ เปิดปั๊บ ทำงานต่อได้เลย) วิธีการมีดังนี้ กดปุ่ม Windows แล้วพิมพ์ sleep > เลือก Power & sleep settings คลิก  Additional power settings เลือก Change plan settings Change advanced power settings ใน Sleep > Hibernate after จากเดิม น่าจะเป็น 180 seconds ก็เปลี่ยนให้เป็น Never แล้วคลิก OK หวังว่าจะเป็นประโยชน์ครับ

Read More »