Thứ Tư, 5 tháng 8, 2020

Arduino: Cài đặt hiển thì trên LCD với modul I2C LCD


I. Giới thiệu

 Một trò nhỏ nhưng đủ làm các bạn khác phải ngạc nhiên vì khả năng của bạn

II. Chuẩn bị
a. Màn hình LCD

b. Module giao tiếp I2C

Thông thường, để sử dụng màn hình LCD, bạn sẽ phải mất rất nhiều chân trên Arduino để điều khiển. Do vậy, để đơn giản hóa công việc, người ta đã tạo ra một loại mạch điều khiển màn hình LCD sử dụng giao tiếp I2C. Nói một cách đơn giản, bạn chỉ tốn ... 2 dây để điều khiển màn hình, thay vì 8 dây như cách thông thường.



Sau đó các bạn chỉ việc hàn mạch như thế này là xong. Bởi vì giao tiếp I2C được thiết kế riêng nhằm giúp LCD giao tiếp với Board xử lý một cách dễ dàng, nên rất dễ kết nối



2 chân SDA và SCL là 2 chân tín hiệu dùng cho giao tiếp I2C. Và để sử dụng được module giao tiếp i2C, các bạn phải Down thư viện hỗ trợ sử dụng LCD qua giao tiếp I2C tại đây

III. Bắt đầu
a. Kết nối



Các bạn kết nối như thế này nhé!!! Bởi vì thư viện bắt buộc dùng 2 chân A4, A5


b. Code

#include <Wire.h>;
#include <LiquidCrystal_I2C.h>;
LiquidCrystal_I2C lcd(0x27,16,2);
//0x27 là địa chỉ màn hình trong bus I2C. Phần này chúng ta không cần phải quá bận tâm vì hầu hết màn hình (20x4,...) đều như thế này!
//16 là số cột của màn hình (nếu dùng loại màn hình 20x4) thì thay bằng 20
//2 là số dòng của màn hình (nếu dùng loại màn hình 20x4) thì thay bằng 4
byte traitim[8]={
B01010,
B11111,
B11111,
B01110,
B00100,
B00000,
B00000,
B00000
}; // Cái này là tạo hình trái tim...đoạn này tham khảo của Thạc Sĩ Huỳnh Minh Phú đó các bạn
void setup(){
lcd.init(); //Khởi động màn hình. Bắt đầu cho phép Arduino sử dụng màn hình
lcd.backlight(); //Bật đèn nền
}
void loop()
{
lcd.setCursor(3,0);
lcd.print("Hello anh em"); //Viết dòng chữ Anh Yêu Em...Các bạn có thể thay bằng dòng khác như Minh Thich Ban...

delay(2000);
lcd.clear();//Xóa màn hình
delay(300);
}

Thứ Ba, 4 tháng 8, 2020

Arduino: Bật tắt máy bơm nước - Sử dụng module siêu âm


I. Sơ đồ

Sơ đồ mạch của mình tương tự bài viết Arduino: Bật tắt máy bơm nước - Sử dụng module siêu âm, các bạn tham khảo thêm nhé.
Mình chỉ thêm phần hiển thị mực nước bằng LED và nút bấm để bật tắt bằng tay.



II. Đấu nối


Mô phỏng trên Proteus 



III. Lập trình
const int trig = 8;     // chân trig của HC-SR04
const int echo = 7;     // chân echo của HC-SR04
const int relay = 13;   // chân máy bơm

byte ledPin[] = {A5,A4,A3,A2,A1,A0}; // Mảng lưu vị trí các chân đèn LED
byte pinCount; // Khai báo biến pinCount dùng cho việc lưu tổng số chân LED
byte muc_nuoc = 2;
int moc_tren = 780;  // Thay đổi theo thực tế
int moc_duoi = 330;  // Thay đổi theo thực tế
bool relay_status = 0;  // Trạng thái relay: 0 là tắt, 1 là bật
 
void setup()
{
  Serial.begin(9600);     // giao tiếp Serial với baudrate 9600
  pinMode(trig,OUTPUT);   // chân trig sẽ phát tín hiệu
  pinMode(echo,INPUT);    // chân echo sẽ nhận tín hiệu
  pinMode(relay,OUTPUT);
    
  pinCount = sizeof(ledPin);  // Lấy số lượng LED
  for (byte i=0;i<pinCount;i++) {
    pinMode(ledPin[i],OUTPUT);  //Các chân LED là OUTPUT
    digitalWrite(ledPin[i],LOW); //Mặc định các đèn LED sẽ tắt
  }
  
  pinMode(2,INPUT_PULLUP);  // Bật điện trở trong cho Pin 2, chân Button
  
// Khởi tạo ngắt để bật tắt relay bằng tay
  attachInterrupt(0, bat_tat_relay, FALLING); // gọi hàm battatled liên tục khi còn nhấn nút

}
 
void loop()
{
  unsigned long duration; // biến đo thời gian
  int distance;           // biến lưu khoảng cách
    
/* Phát xung từ chân trig */
  digitalWrite(trig,0);   // tắt chân trig
  delayMicroseconds(2);
  digitalWrite(trig,1);   // phát xung từ chân trig
  delayMicroseconds(5);   // xung có độ dài 5 microSeconds
  digitalWrite(trig,0);   // tắt chân trig
    
/* Tính toán thời gian */
// Đo độ rộng xung HIGH ở chân echo. 
  duration = pulseIn(echo,HIGH);  
// Tính khoảng cách đến vật.
  distance = int(duration/2/29.412);
    
// thiet lap muc nuoc su dung xuong moc_tren thi tu dong bat relay
  if (distance > moc_tren)
    {
      digitalWrite (relay, HIGH);
      relay_status = 1;
    }

// thiet lap muc nuoc len den moc_duoi thi tu dong tat relay
  if (distance < moc_duoi)
    {
      digitalWrite (relay, LOW);
      relay_status = 0;
    }

// Phần hiển thị mực nước bằng LED  
  tat_led();
  muc_nuoc = (moc_tren - distance)/((moc_tren - moc_duoi)/pinCount) + 1;
  
// Nếu gần hết nước thì nháy LED
  if (muc_nuoc < 3)  {
    delay(200);
  }
    
  bat_led();
    
/* In kết quả ra Serial Monitor */
  Serial.print(distance);
  Serial.println("cm");
  delay(200);
}

void tat_led()  {
  for (byte i = 0;i < pinCount; i++) {
    digitalWrite(ledPin[i],LOW); // Tắt đèn
  }
}

void bat_led()  {
  for (byte i=0; i < muc_nuoc; i++) {
    digitalWrite(ledPin[i],HIGH); //Bật đèn
  }
}

void bat_tat_relay()  {
  relay_status = !relay_status;  // Đảo trạng thái relay
  digitalWrite(relay,relay_status); // Xuất giá trị của relay
}

III. Thành quả

Hoạt động của Project như sau:
Khi hết nước tự động bơm, khi nước đầy tự động tắt bơm (về khoảng cách mình để trong mạch là theo mô phỏng trên Proteus nhé, các bạn căn chỉnh ở thực tế và đưa vào giá trị chính xác)
Trạng thái mực nước được chỉ thị theo 6 LED (có thể mở rộng thêm nhiều LED tùy ý)
Khi ở mực nước thấp (chỉ còn 2 LED đỏ chỉ thị), 2 đèn LED đỏ sẽ nhấp nháy để cảnh báo
Có thể dùng Button để Bật hay Tắt máy bơm bất kỳ lúc nào

Thứ Hai, 22 tháng 6, 2020

Share Hiệu Ứng Khói Lửa Cho Camtasia làm phim hành động

Hiệu ứng - effect - assets 




Đạn bắn vào cát
bom nổ
bụi bay
đạn bắn vào bê tông
khói sau khi nổ
khói
không khí
kính vỡ
lủa cháy
phun máu
nổ nhỏ
đạn bắn vào nước
phá hủy
tia lửa đạn
tia lửa đện
va chạm kim loại
đạn va chạm kim loai
đạn va chạm cực mạnh
vỏ đạn rơi


Download accessories to customize Camtasia to fit your needs - TechSmith Assets For Camtasia - library TechSmith - effect library



Link Download

Thứ Bảy, 25 tháng 4, 2020

Máy Real-time PCR là gì?

Máy Real-time PCR là gì, ưu điểm của HỆ THỐNG REAL-TIME PCR TỰ ĐỘNG của QIAGEN mà Phương Đông cung cấp?

Quy trình xét nghiệm sinh học phân tử thông thường gồm 3 bước
Tách chiết DNA/RNA từ mẫu (mô, tế bào, dịch cơ thể)
Thiết lập phản ứng chứa mẫu trước khi đưa vào máy Real-time PCR (RT-PCR)
Chạy và đọc kết quả trên máy RT-PCR
Mỗi bước này đều có thể được tự động hóa trên từng thiết bị, hoặc được tích hợp trên cùng thiết bị nhằm tự động hóa cả quy trình trên


1. Hệ thống máy xét nghiệm sinh học phân tử gồm 3 máy: tách chiết tự động + thiết lập phản ứng tự động + máy RT-PCR.

  • Hệ thống máy tách chiết + thiết lập phản ứng công suất cao do Phương Đông cung cấp, model: QIAsymphony SP/AS, công suất 96 mẫu cùng lúc cho kết quả trong vòng 4 giờ, so với quy trình thủ công cần nhiều nhân lực có tay nghề cao làm trong nhiều giờ mới có được kết quả tương tự.
  • Máy xét nghiệm Real-time PCR của Qiagen là 1 hệ thống mở cho phép chạy được hóa chất chính hãng cũng như nhiều loại hóa chất của các hãng khác nhau, không như hệ thống đóng chỉ cho phép sử dụng hoá chất và tiêu hao chính hãng.
  • Hệ thống của Phương Đông không chỉ sử dụng tại mùa dịch mà còn được sử dụng để xét nghiệm rất nhiều bệnh:
  • Xét nghiệm các bệnh truyền nhiễm: HBV, HCV, HIV, CMV, BKV, CT/NG (lậu, giang mai), MTB (lao), HSV,…
  • Phân tích các gene đột biến liên quan đến ung thư: EGFR (ung thư phổi), KRAS, NRAS, ung thư não (MGMT, HID1/2), ung thư máu (JAK2, CALR, BCR-ABL …)
  • Các ứng dụng khác: khoa học hình sự, xét nghiệm huyết thống, giống cây trồng...


2. Hệ thống máy đóng, mở
  • Trong sinh học phân tử, máy đóng là các máy chỉ chạy được các bộ hóa chất được thiết kế sẵn cho máy đó. Các bộ hóa chất này được hãng sản xuất thiết kế, thử nghiệm và xác nhận trên hệ thống máy của mình.
  • Ngược lại, các hệ thống mở là các hệ thống cho phép chạy các bộ hóa chất của các hãng sản xuất khác.
3. Ứng dụng của hệ thống
  • Hệ thống máy tách chiết tự động của các hãng sản xuất đều là hệ đóng.
  • Máy xét nghiệm Realtime PCR của Qiagen là 1 hệ thống mở, có thể chạy được hóa chất chính hãng cung cấp cũng như nhiều loại hóa chất của các hãng khác nhau như: Việt Á, Nam Khoa, Thermo Fisher
  • Ngoài ứng dụng xét nghiệm chẩn đoán Covid-19, máy này còn ứng dụng được trong nhiều bệnh lý khác nhau như:
  • Xét nghiệm các bệnh truyền nhiễm: HBV, HCV, HIV, CMV, BKV,CT/NG (lậu, giang mai), MTB (lao), HSV,…
  • Phân tích các gene đột biến liên quan đến ung thư: EGFR (ung thư phổi), KRAS, NRAS, ung thư não (MGMT, HID1/2), ung thư máu (JAK2, CALR, BCR-ABL …) …
  • Các ứng dụng khác: khoa học hình sự, giống cây trồng...nhờ phân tích biểu hiện gen, giám định gen, định kiểu gen,…
  • Như vậy ngoài mục tiêu mua sắm trang thiết bị phòng chống dịch Covid-19, các đơn vị có thể sử dụng các thiết bị này cho nhiều nhu cầu khác

4. Giới thiệu về hãng Qiagen

Qiagen có hơn 500,000 khách hàng trên toàn cầu, hãng luôn cố gắng mang lại các giải pháp hoàn chỉnh từ việc lấy mẫu đến phân tích kết quả trong sinh học phân tử, nhằm đem lại các cải thiện trong cuộc sống. Qiagen có dải sản phẩm rộng, bao trùm hầu hết các loại xét nghiệm sinh học phân tử. Hãng là một trong các hãng hàng đầu thế giới về tách chiết, tinh sạch và ổn định DNA, RNA và protein từ mẫu sinh học.

Máy Real-time PCR Rotor-gene Q


Thứ Sáu, 24 tháng 4, 2020

Bí quyết chạy quảng cáo trăm đơn nhờ Facebook Pixel

Facebook Pixel là gì

Pixel là 1 đoạn mã Javascript mà Facebook cung cấp cho nhà quảng cáo để theo dõi, đo lường, tối ưu hóa và tạo đối tượng cho quảng cáo của họ.

Nếu ví website của bạn như là ngôi nhà thì Facebook Pixel giống như là camera vậy. Mọi động tĩnh trong nhà, ngoài sân đều được nó ghi lại đầy đủ.

Tất nhiên là bạn không cần cài Facebook Pixel nếu như bạn không có ý định quảng cáo trên Facebook.
Vậy Facebook Pixel để làm gì

Tối ưu hóa chuyển đổi

Giả sử bạn đã cài Facebook Pixel và đã lên camp thành công. Khi một ai đó thực hiện một hành động nào đó (ví dụ Mua hàng) thì Facebook Pixel sẽ được kích hoạt.

Khi ngày càng có nhiều lượt chuyển đổi diễn ra trên website của bạn, nhờ vào công nghệ Học máy (Machine Learning), Facebook sẽ phân phối hiệu quả hơn đến những người có nhiều khả năng mua hàng nhất.


Lúc mới tạo con Pixel xong, chắc hẳn nó cũng "ngáo ngơ" như lần đầu xuống núi. Gặp ai em nó cũng chào hàng.

Sau một vài đơn hàng thành công, nó bắt đầu "học": À thì ra những người như thế này, thế kia mới quan tâm đến sản phẩm nè!

Do đó, nó chỉ phân phối đến những người như vậy. Sau 50 - 100 đơn hàng thành công, nó đã trở nên "lão luyện", nhìn mặt là biết ai có nhu cầu mua hàng hay không.

Nhờ đó bạn sẽ bán được nhiều hàng hơn với cùng mức chi phí dẫn đến ROI cũng tăng theo.

Vì suy cho cùng thì phần lớn doanh thu của Facebook đến từ quảng cáo.

Nếu Facebook không làm cho nhà quảng cáo bán được hàng thì không ai còn quảng cáo trên Facebook nữa.

Tạo Custom Audience để remarketing

Có những KH đã xem qua sản phẩm trên website của bạn. Thậm chí là đã bỏ vào giỏ hàng mà chưa mua hàng vì 1 lý do nào đó. Sau đó họ lướt Facebook.

Lúc này con Facebook Pixel sẽ có nhiệm vụ gợi nhớ cho họ về những sản phẩm mà họ vừa xem trên website của bạn bằng cách hiển thị nó trên quảng cáo Facebook.


Đây chính là remarketing hay tiếp thị lại.

Đặc biệt Facebook cũng có Dynamic Ads giống như tiếp thị lại động dành cho Google Shopping.

Ví dụ, mùa Covid đói quá nên mình lên Tiki tìm mua cuốn sách này.



Sau đó lướt Facebook thì được Tiki đập vào mặt quảng cáo sau. Đúng như những gì mà mình đã xem 5' trước đó.




Hay mình lên Google tìm mua 1 cái thắt lưng nam:




Và sau đó mình vô Facebook cũng thấy cả chục quảng cáo thắt lưng đến từ các shop khác:



Cài đặt Facebook Pixel

Trước khi cài đặt, bạn cần có 1 website với quyền quản trị và 1 BM. Bạn cũng có thể cài Facebook Pixel của Facebook cá nhân nhưng rất khó để tối ưu.


1 Đầu tiên bạn vào Trình quản lý doanh nghiệp > chọn Pixel trong cột Đo lường & Báo cáo


2 Sau đó nhấn Tạo pixel. Đặt tên cho Pixel tùy ý => Tiếp tục


3 Tiếp theo, chọn cách để thêm code Pixel vào trang web của bạn.

8 Nếu sử dụng WordPress thì bạn chọn cài đặt mã thủ công nhé:


Nhấn vào đoạn mã để sao chép sau đó gắn mã Facebook Pixel vào web của bạn, ngay phía trước thẻ đóng </head>

Nếu bạn chưa rành thì có thể xem qua 3 cách chèn code vào website thật đơn giản.


Note: Nếu bạn để ý trong đoạn mã này có dãy 15 số, đó chính là Facebook Pixel ID của bạn. Bạn copy dãy số này vào dán trong AdFlex hay KTcity nếu bạn kiếm tiền online trên những nền tảng này.

Như vậy là xong rồi đó. Bạn có thể thiết lập thêm Sự kiện nếu muốn.
Cách test xem Facebook Pixel đã cài đúng chưa

1 Đầu tiên hãy cài extension có tên là Facebook Pixel Helper lên trình duyệt của bạn.

2 Sau đó trên thanh trình duyệt, hãy nhấn vòa biểu tượng code. Nếu báo đúng với Facebook Pixel ID như trên là được.


Các vấn đề liên quan đến Facebook Pixel

Tài khoản Facebook cá nhân có tạo được Pixel không?

Có. Nhưng chỉ được 1 con.

BM tạo được bao nhiêu Pixel?

Tối đa là 100 con.

1 con Pixel gắn được bao nhiêu website?

Bao nhiêu cũng được. Và ngược lại, 1 website cũng có thể gắn nhiều con Pixel.

Có share Pixel cho BM khác được không?

Được nhưng chỉ có BM mới share cho nhau được. Facebook Pixel trên tài khoản cá nhân thì không.

Nuôi Pixel là gì?

Đây là quá trình làm cho con Pixel "khôn lên" bằng cách tạo ra càng nhiều chuyển đổi càng tốt.

Note: KHÔNG bao giờ nên lấy con BM cầm Pixel gốc mà chạy quảng cáo. Vì lỡ như BM bị vô hiệu hóa thì Pixel cũng "chết" luôn.

Thay vào đó hãy share sang BM khác chạy ads. Ngoài ra còn phải nuôi thêm 1 con Pixel dự phòng.

Như vậy là mình vừa đi qua Facebook Pixel là gì cũng như cách cài Facebook Pixel lên website của bạn.

Chúc bạn thành công!
DBS M05479
Quang Cao