By Wolfram Research - https://www.wolframalpha.com/media/, Public Domain, https://commons.wikimedia.org/w/index.php?curid=54057238 |
Wolfram Mathematica เป็นซอฟต์แวร์ทางการคำนวณได้รับการติดตั้งมาพร้อมกับ Raspbian มาระยะหนึ่งแล้ว ถ้าจำไม่ผิดน่าจะเริ่มกันมาตั้งแต่ปี ค.ศ 2014 (http://www.wolfram.com/raspberry-pi/) อาจด้วยที่ Wolfram Mathematica เป็นซอฟต์แวร์ทางคณิตศาสตร์ ก็เลยมีการกล่าวถึงกันค่อนข้างน้อย แต่หากพิจารณาถึงคุณสมบัติของซอฟต์แวร์ (https://en.wikipedia.org/wiki/Wolfram_Mathematica#Features) แล้ว นับว่าคุ้มค่าที่จะศึกษาทีเดียว วัตถุประสงค์ของบทความนี้ไม่ใช่เพื่อเป็นคู่มือการใช้งาน (ซึ่งไม่สามารถทำได้แน่นอน) แต่เป็นการหยิบเอาคุณสมบัติบางอย่างที่น่าสนใจของ Wolfram Mathematica ชุดที่ติดตั้งบน Raspbian มาให้ได้รับทราบกัน อาจจะเป็นตัวจุดประกายในการใช้ประโยชน์อื่นต่อไป
การติดตั้ง
ไม่ต้องทำการติดตั้งเพราะได้รับรวมอยู่ใน Raspbain เรียบร้อยแล้ว หลังการ Boot จะเห็น icon ของ Wolfram และ Mathematica ดังรูปที่ 2 ซึ่งมีสองส่วนคือ ส่วนที่เป็นเป็นตัวภาษาคือ WolFram (https://en.wikipedia.org/wiki/Wolfram_Language) และ Mathematica คือส่วนที่เป็น Notebook Interface (https://en.wikipedia.org/wiki/Wolfram_Mathematica#The_Notebook_interface)รูปที่ 2 |
ตัวภาษา Wolfram เป็น High Level Programming Language ที่รองรับการทำงานแบบ Symbolic Computation ทำให้ผู้ทำงานสามารถใช้การเขียนสมการติดตัวแปร (Algebraic Expression) ได้ ต่างจาก Programming Language ที่เราคุ้นเคย เช่น C++, Python ฯล เพื่อให้เห็นภาพชัดเจน ลองพิจารณาขั้นตอนการทำงานเพื่อหาคำตอบของ
ซึ่งอาศัยกฏของการบวก รวมกับเรื่องของตรีโกรณมิติ
จะได้คำตอบคือ
ที่นี้ลองคิดว่าหากใช้ภาษาอย่าง Python หรือ C++ จะทำอย่างไร แต่ด้วยภาษา Wolfram เราสามารถเขียนชุดคำสั่งได้ในบรรทัดเดียวดังนี้
คงจะพอเห็นภาพละนะครับ ต่อไปก็จะเป็นหยิบเอาตัวอย่างการทำงานบางอย่างมาให้ดูกัน
Hello World !
การเรียกใชังานครั้งแรกให้เรียกไปที่ Icon ของ Mathematica มาใช้ หากเลือก Wolfram ก็จะได้แต่ทำงานกับตัวภาษาใน command mode ในการใช้งานควรให้ Raspberry Pi เชื่อมต่อกับ Internet ไว้ด้วย เพื่อจะได้ทำการ activate ซอฟต์แวร์ ในบางครั้งซอฟต์แวร์จะต้อง download บางอย่างเพิ่มเติมจาก Server ของ Wolfram รูปที่ 3 แสดง Window ซ้ายมือคือ Notebook Interface ใช้สำหรับพิมพ์คำสั่งและดูผลลัพธ์ สำหรับ Window ขวามือเป็น Link ไปสู่เว็บไซต์เอกสาร และ ชุมชนของ Mathameticaรูปที่ 3 Notebook Interface ของ Mathematica |
แล้วกด Shift-Enter พร้อมกัน เพื่อให้คำสั่งทำงาน
Arithmetic Operations
ทดลองพิมพ์ชุดคำสั่ง
แล้วกด Shift - Enter พร้อมกัน จะเห็น output แสดงที่ด้านล่างของ Notebook
Conditional Statement
1. IF
2. Switch
User Function
ผู้ใช้สามารถสร้าง User Function ขึ้นมาใช้เองได้ ในตัวอย่างคือการสร้าง User Function ชื่อ Sig ขึ้นมา รับพารามิเตอร์ X แล้วคืนค่าด้วยสมการGraphic และ Plots
1 . การใช้ Plot ร่วมกับ Range of value
2 การใช้ ListPlot
3. Plot3D
Do Math
1. แก้สมการ ด้วยคำสั่ง Solve[]1.2 Linear Equations
สมมุติว่าต้องการแก้สมการ Linear Equation ตามนี้
x + y + z = 0
x + 2y + 3z = 1
x - y + z = 2
2. Calculus
2.1 Limit หาค่าของ2.2 Differentiation จงหาสมการอนุพันธ์ุของ
2.3 Integration
Audio
Wolfram Mathematica ในชุดบน Raspbian มีชุดคำสั่งที่ใช้จัดการด้าน Audio ติดมาด้วย ในตัวอย่างใช้สองคำสั่งคือ Sound[] และ SoundNote[] ให้เล่นเพลงที่มีโน๊ตดังนี้ โด โด ซอล ซอล ลา ลา ซอลการใช้งานร่วมกับ GPIO
ส่วนนี้น่าจะเป็นส่วนที่ WolFram Mathematica ได้พยายามโยงเข้าหากลุ่มงานด้าน IoT ไม่เฉพาะแต่กับ Raspberry Pi เท่านั้น ยังมี Arduino อีกด้วย ชุดคำสั่งหลักที่ใช้งานกับ GPIO คือ FindDevices[], DeviceConfigur[], DeviceOpen[], DeviceRead[] และ DeviceWrite[] (ระหว่างที่เขียนเรื่องนี้อยู่ ผมพบว่าการใช้งาน Raspbian Stretch จะไม่สามารถเรียกใช้ GPIO ได้ )ทำไฟกระพริบ
1. กำหนด Pin สำหรับ LED สอง Pin คือ GPIO 17 และ GPIO 14 ให้มีสถานะเป็น "Output"2. ทำให้ LED สว่างและดับสลับกันไปมา ด้วยคำสั่ง DeviceWrite[]
รับข้อมูลจาก Arduino ผ่าน Serial Port
1. เขียน Arduino Sketch เพื่อส่งข้อมูลแบบสุ่ม
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print(randomDigit());
delay(1000);
}
/* from http://forum.arduino.cc/index.php?topic=197633.0 */
byte randomDigit() {
unsigned long t = micros();
byte r = (t % 10) + 1;
for (byte i = 1; i <= 4; i++) {
t /= 10;
r *= ((t % 10) + 1);
r %= 11;
}
return (r - 1);
}
ทำการ compile และ upload sketch
2. นำ Arduino เชื่อมต่อกับ Raspberry Pi ด้วย USB Port แล้วเปิดการสื่อสารระหว่าง Wolfram กับ Arduino ผ่าน Serial Port ด้วยคำสั่ง DeviceOpen[]
ในกรณีที่ไม่การเชื่อมต่อไม่สำเร็จ ให้ปิดโปรแกรม Mathematica แล้วมาเรียกผ่าน command line ด้วยคำสั่ง
$ sudo mathematica
3. กำหนดตัวแปรเพื่อรับค่าจาก Device
4. รับค่าจาก Serial Port
การทำ Snap Shot ด้วย RaspiCamera
ทำได้สองกรณีคือ1. ใช้คำสั่ง Run[] เพื่อเรียกใช้คำสั่ง raspistill แล้วทำการ Import[] เข้ามาที่ Notebook
2. ใช้ DeviceOpen["RaspiCam"] และ DeviceRead["RaspiCam"]
ทั้งหมดที่เขียนมานี้เป็นการหยิบเอาเพียงส่วนเล็ก ๆ ปลีกย่อยให้ดูคร่าว ๆ พอเป็นตัวอย่างเท่านั้นเอง โดยตัวอย่างทั้งหมดก็เพียงแต่ดัดแปลง ตกแต่ง จากข้อมูลที่มีอยู่แล้วบนเว็บไซต์ของ Wolfram Mathematica ก็หวังว่าน่าจะเพียงพอที่จะได้เห็นความสามารถในภาพรวมของซอฟต์นี้ นะ ครับ
ปล. เว็บไซต์ที่เกี่ยวข้อง
http://www.atriumtech.com/ko/mathematica/
Sign up here with your email
ConversionConversion EmoticonEmoticon