ในบทความที่แล้ว เราทำความรู้จักกับ Neo Pixel WS2813 กันไปแล้ว วันนี้ผมจะมาแนะนำเรื่อง การนำ Raspberry Pi2 มาควบคุม Neo Pixel WS2812B
อุปกรณ์ที่ต้องใช้
เมื่อเตรียมอุปกรณ์เสร็จแล้วให้คุณต่อสายตามนี้ครับ
ตําแหน่ง ขา ของ Raspberry Pi2
รูปการต่ออุปกรณ์
เมื่อต่อสายเสร็จเรียบร้อย ให้ Download Source code ที่
github.com/thitiblog/ws2812b-raspberry-pi2.git
และไฟล์ต่วอย่างการใช้งาน ดังนี้
หลังจากนั้นให้เปิดไฟล์ neo-test.cpp ขึ้นมาจะมีเนื้อหาตามนี้
#include "ws2812b.h"
int main(int argc, char **argv){
ws2812b *_ws2812b = new ws2812b(1); //1 pixel LED
_ws2812b->initHardware();
_ws2812b->clearLEDBuffer();
int tmp;
for(;;){
//RGB Blink.
_ws2812b->setPixelColor(0, 255, 0, 0);
_ws2812b->show();
usleep(1000*1000);
_ws2812b->setPixelColor(0, 0, 255, 0);
_ws2812b->show();
usleep(1000*1000);
_ws2812b->setPixelColor(0, 0, 0, 255);
_ws2812b->show();
usleep(1000*1000);
//Rainbow
for( int i=0 ; i<=255 ; i++){
if( i < 85 ){
_ws2812b->setPixelColor(0, i*3, 255-i*3, 0);
_ws2812b->show();
}else if( i < 170 ){
tmp = i-85;
_ws2812b->setPixelColor(0, 255-tmp*3, 0, tmp*3);
_ws2812b->show();
}else{
tmp = i-170;
_ws2812b->setPixelColor(0, 0, tmp*3, 255-tmp*3);
_ws2812b->show();
}
usleep(1000);
}
usleep(1000*1000);
}
delete _ws2812b;
return 0;
}
ผมจะอธิบายการใช้งาน library จากตัวอย่าง Code ด้านบนเลยนะครับ
ขั้นตอนเมื้อกี้คือขั้นตอนแรกก่อนจะเริ่มสั่งให้ NeoPixel ทํางาน ขั้นตอนต่อไปให้เราดูที่ 2 method นี้
รายละเอียดของ parameter
เสร็จแล้ว Compile ให้เรียบร้อยครับ
จบเพียงเท่านี้ครับ ผิดพลาดตรงไหนขออภัยด้วยนะครับ :)
ข้อมูลจาก element14
สวัสดีครับ ในบทความนี้ก็เป็น EP.3 แล้วนะครับ โดยเนื้อหาจะเป็นเรื่องเกี่ยวกับ Go packages ว่าคืออะไร ใช้ทําอะไร และมีประโยชน์อย่างไรสําหรับท่านใดที่ยังไม่ได้อ่าน EP.2 ท่านสามารถกลับไปอ่านก่อนได้นะครับที่นี่ Go EP.2 ทําความรู้จักกับ Go module
PWM ย่อมจาก Pulse Width Modulation คือการนําสัญญาณสามเหลี่ยม และสัญญาณที่ต้องการปรับความกว้างของพัลซ์มาเปรียบเทียบกัน ตัวย่างเช่น ถ้านําสัญญาณสามเหลี่ยมมาเปรียบเทียบกับสัญญานไฟฟ้ากระแสตรง จะได้ความกว่างของพัลซ์คงที่ และความกว้างของพัลซ์นั้นจะขึ้นอยู่กับแอมพลิจูดของสัญญาณไฟฟ้ากระแสตรงดังรูป
BASE64 คืออะไรBASE64 คือ วิธีการเข้ารหัสข้อมูลรูปแบบหนึ่ง ที่จะเปลี่ยนข้อความ หรือข้อมูลต้นฉบับไปเป็นข้อความ หรือข้อมูลชุดใหม่ ที่ไม่สามารถอ่าน หรือรู้ว่าข้อมูลชุดนี้คืออะไร ซึ่งการเข้ารหัสชนิดนี้จะแทนที่ข้อมูลด้วยตัวอักษร 64 ตัว นั่นคือที่มาของ BASE64 ตามตารางImageวิธีการเข้ารหัส BASE64ยกตัวอย่างที่ต้องการเข้ารหัสข้อความนี้ "abcd" จะมีขั้นตอนคือ1.นําข้อมูลที่ต้องการเข้ารหัสมาแปลงเป็นเลขฐานสอง 8 bita = 01100001b = 01100010c = 01100011d = 011001002.นําเลขฐานสองที่ได้มาเรียงต่อกันตามลําดับดังนี้01100001 01100010 01100011 011001003.แบ่งเลขฐานสองออกเป็นชุด ชุดละ 6 bit กรณีที่ชุดสุดท้ายไม่ครบ ให้เติม 0 ไปจนครบ 6 bit จะได้ดังนี้01100001 01100010 01100011 01100100 00004. นําเลขฐานสองที่แบ่งไว้มาแปลงเป็นตัวอักษรตามตาราง BASE64 (ตามรูปด้านบน) โดยใน BASE64 จะนับ bit ที่ถูกเติมเข้าไปที่เป็น 00 แทนด้วย "="011000 = "Y"010110 = "W"001001 = "J"100011 = "j"011001 = "Z"000000 = "A=="** bit ที่ถูกเติมเข้าไปที่เป็น 00 แทนด้วย "=" 5.นําตัวอักษรมาเรียงต่อกันตามลําดับ YWJjZA==วิธีการถอดรหัส BASE64วิธีการถอดรหัส BASE64 ก็ไม่ยาก ทําย้อนกลับครับให้นําข้อมูลมาแปลงเป็นฐานสอง 6 bit มาเรียงต่อกันก่อน แล้วนํามาจัดกลุ่ม กลุ่มละ 8 bit โดย bit สุดท้ายที่เหลือไม่ครบ 8 bit ให้ตัดทิ้ง หลังจากนั้นก็แปลงเลขฐานสอง 8 bit แต่ละชุดเป็นข้อมูล ASCII เท่านี้ก็จะได้ข้อมูลต้นฉบับแล้วครับ