หน้าเว็บ

วันพฤหัสบดีที่ 25 กันยายน พ.ศ. 2557

StringQueue กับบอร์ด Arduino

โจทย์ปัญหา 
  1. เขียนโค้ดสำหรับบอร์ด Arduino โดยสร้างเป็น C++ Class ดังต่อไปนี้ => Class StringQueue เป็นโครงสร้างข้อมูลแบบ Queue สำหรับเก็บ String objects สร้างคลาส StringQueue และทดสอบการทำงานโดยใช้โค้ดตัวอย่างต่อไปนี้ และทดสอบโดยใช้ฮาร์ดแวร์จริง (ใช้บอร์ด Arduino และแสดงผลผ่าน Serial Monitor ของ Arduino IDE)  
  2. ใช้คลาส StringQueue ในข้อแรก นำมาเขียนโค้ด Arduino เพื่อให้มีพฤติกรรมการทำงานดังนี้ กำหนดให้มีความจุเช่น 10 ข้อความ  
    1. บอร์ด Arduino มีวงจรปุ่มกด Get ทำงานแบบ Active-Low (ใช้ตัวต้านทานแบบ Pull-up, 10k)  
    2. ผู้ใช้สามารถส่งข้อความ (ภาษาอังกฤษ) ทีละบรรทัด (ไม่เกิน 16 ตัวอักขระต่อบรรทัด) จาก คอมพิวเตอร์ โดยส่งผ่าน Serial Monitor ของ Arduino IDE ไปยังบอร์ด Arduino ใช้ baudrate 115200  
    3. ข้อความแต่ละบรรทัดที่ถูกส่งไปยัง Arduino จะถูกจัดเก็บใน StringQueue ถ้าไม่เต็มความจุ แต่ถ้าเต็มความจุ ไม่สามารถเก็บข้อความใหม่ได้ Arduino จะต้องส่งข้อความ "Full" กลับมา และมี LED "Full" ติด  
    4.  เมื่อมีการกดปุ่ม Get แล้วปล่อยหนึ่งครั้ง ข้อความแรก (ถ้ามี) ของ StringQueue จะถูกดึงออกมาแล้วส่งผ่าน Serial Monitor ไปยังคอมพิวเตอร์ และนำไปแสดงผลบนจอ 16x2 LCD ที่ต่อกับบอร์ด Arduino ด้วย แต่ถ้าไม่ข้อความใดๆ Arduino จะต้องส่งข้อความ "Empty" กลับมา เมื่อกดปุ่มแล้วปล่อย และให้มี LED "Empty" ติด  
    5. บรรทัดแรกของ LCD แสดงข้อความที่ถูกอ่านออกมาล่าสุดจาก StringQueue บรรทัดที่สอง ให้แสดงจำนวนข้อความที่มีอยู่ใน StackQueue ในขณะนั้น  
    6. การเขียนโค้ดเพื่อใช้งาน LCD สามารถใช้ไลบรารี่ของ Arduino ได้

วันศุกร์ที่ 12 กันยายน พ.ศ. 2557

String Stack กับบอร์ด Arduino

โจทย์ปัญหา ข้อ 1
  1. เขียนโค้ดสำหรับบอร์ด Arduino โดยสร้างเป็น C++ Class ดังต่อไปนี้
  • Class StringStack เป็นโครงสร้างข้อมูลแบบ Stack (กองซ้อน) สำหรับเก็บ String objects (http://arduino.cc/en/Reference/StringObject) และกำหนด API สำหรับคลาสดังกล่าว เป็นดังนี้

วันศุกร์ที่ 29 สิงหาคม พ.ศ. 2557

[Warm-up] การใช้ภาษา C++ เพื่อควบ RGB LED ผ่านบอร์ด Arduino


        
           สำหรับในตอนนี้นั้น เราจะมาเขียนโค้ดภาษา C++ เพื่อใช้งานบอร์ด Arduino ในการควบคุม RGB LED โดยโปรแกรมและวงจรที่เราจะสร้างขึ้นมานั้นมีคุณสมบัติดังนี้

วันเสาร์ที่ 23 สิงหาคม พ.ศ. 2557

บอร์ด Raspberry Pi

         
ภาพจาก: https://learn.adafruit.com/assets/16384

        บอร์ด Raspberry Pi เป็นบอร์ดคอมพิวเตอร์ 32 บิต ขนาดเล็กเท่ากับบัตรเครดิต รองรับระบบปฏิบัติการ Linux ที่พัฒนาโดย Raspberry Pi Foundation ที่ช่วงแรกหวังว่าจะใช้เป็นสื่อการเรียนการสอน การเขียนโปรแกรมคอมพิวเตอร์สำหรับเด็กๆ แต่ด้วยเป็นบอร์ดที่มีราคาไม่แพงมาก ใช้งานง่ายเมื่อเทียบกับบอร์ดอื่น เหมาะสำหรับผู้เริ่มต้น ทำให้เป็นที่นิยมแพร่หลายสู่บุคคลทั่วไปอย่างรวดเร็ว

วันศุกร์ที่ 22 สิงหาคม พ.ศ. 2557

บอร์ด Arduino Yún

ภาพจาก: http://arduino.cc/en/Main/ArduinoBoardYun
ภาพจาก: http://arduino.cc/en/Main/ArduinoBoardYun


       "Arduino Yún" เป็นบอร์ด microcontroller ซึ่งเกิดจากการรวมกันของ  ATmega32u4 (datasheet) และ Atheros AR9331  โดยที่ ATmega32u4 จะมีหน้าที่เกี่ยวข้องกับการใช้งานทรัพยากรของ Arduino และ Atheros AR9331 มีหน้าที่เกี่ยวข้องกับการใช้งานทรัพยากรของ Linux ทำให้สามารถใช้งาน Wifi, Ethernet, USB Port และ SD card  ซึ่งจะมี Bridge library ช่วยอำนวยความสะดวกในการติดต่อสื่อสารกันระหว่างทั้งสอง processor


วันพฤหัสบดีที่ 21 สิงหาคม พ.ศ. 2557

เปรียบเทียบข้อมูลเชิงเทคนิคระหว่าง Arduino Yún กับ Raspberry Pi

    ในตอนนี้เราจะทำการเปรียบเทียบคุณสมบัติต่างๆ ระหว่าง บอร์ด Aduino Yún กับ บอร์ด Raspberry Pi

Aduino Yún Raspberry Pi
รูปภาพ
รูปภาพจาก :  https://learn.adafruit.com/assets/16381
รูปภาพจาก :  https://learn.adafruit.com/assets/16384
SoC Atheros AR9331 Broadcom BCM2835
CPU MIPS32 24K และ ATmega32U4 ARM1176
Architecture สถาปัตยกรรม MIPS และ AVR ARMv6
ความเร็ว CPU 400MHz (AR9331) และ 16MHz (ATmega) 700MHz
Memory หน่วยความจำ 64MB (AR9331) และ 2.5KB (ATmega) 256MB (model A) และ 512MB (model B)
FPU None (Software) Hardware
GPU None Broadcom VideoCore IV
Internal Storage หน่วยความจำภายใน 16MB (AR9331) และ 32KB (ATmega) None
External Storage หน่วยความจำภายนอก MicroSD (AR9331) SD card
Networking 10/100Mbit ethernet และ 802.11b/g/n WiFi None (model A) และ 10/100Mbit ethernet (model B)
Power Source 5V from USB micro B connector, หรือ header pin 5V from USB micro B connector, หรือ header pin
Dimensions ขนาด 2.7in x 2.1in (68.6mm x 53.3mm) 3.4in x 2.2in (85.6mm x 56mm)
Weight น้ำหนัก 1.4oz (41g) 1.6oz (45g)
Approximate Price ราคาโดยประมาณ $75 หรือประมาณ 2,396.30 บาท $25 (model A) 798.77 บาท, $35 (model B) 1,118.27 บาท
Digital I/O Pins 20 17
Digital I/O Power 5V 3.3V
Analog Input 12 with 10-bit ADC, 0-5V (supports external reference) None
PWM Output 7 1
UART 2 (1 wired to AR9331) 1
SPI 1 2
I2C 1 1
USB Host 1 standard A connector (AR9331) 1 (Model A) และ 2 (Model B) standard A connector
USB Client 1 micro B connector (ATmega) None
Video Output None HDMI, Composite RCA, DSI
Video Input None CSI (camera)
Audio Output None HDMI, 3.5mm jack
Power Output 3.3V up to 50mA, 5V 3.3V up to 50mA, 5V up to 300-500mA

แหล่งอ้างอิง:
    http://arduino.cc/en/Main/ArduinoBoardYun 
    http://en.wikipedia.org/wiki/Raspberry_Pi
    http://elinux.org/RPi_Hardware
    https://learn.adafruit.com/embedded-linux-board-comparison/overview