Tổng hợp hướng dẫn làm nút cảm biến chạm điều khiển Robot

Nút cảm biến chạm điều khiển Robot

Nút cảm biến chạm điều khiển Robot

Một trong những thành phần quan trọng hiện nay để tương tác điều khiển giữa người dùng và Robot là hệ thống phím điều khiển, trong phạm vi bài viết này chúng tôi sơ lược một vài kỹ thuật tự thiết kế bàn phím cảm ứng điện dung giúp tăng tính thẩm mỹ và thuận tiện cho việc điều khiển Robot của các bạn.
Hình ảnh về bàn phím cảm ứng tự tạo
hrough the plastic case!
  • proximity_2013_06_23_IMG_1973.jpg

Design your panel

You can draw it by hand, or with your favorite drawing tool and print it on some heavy card-stock.
  • proximity_2013_06_23_IMG_1975.jpg

Cut the touch-pads

Cut pads from copper tape. About 1/2" square is a good size for buttons on a touch-pad.
  • proximity_2013_06_23_IMG_1976-1024.jpg
  • proximity_2013_06_23_IMG_1976-1024.jpg
  • proximity_2013_06_22_IMG_1970-1024.jpg

Attach the touch-pads

Peel the release paper from the back of the copper tape and stick the touch-pads to be back of the panel so that they align with the buttons on the front.
  • proximity_2013_06_23_IMG_1980-1024.jpg
  • proximity_2013_06_23_IMG_1980-1024.jpg
  • proximity_2013_06_23_IMG_1982-1024.jpg
  • proximity_2013_06_23_IMG_1977-1024.jpg

Attach the Wires

Solder wires to the copper touch-pads. For this example, I used a 6-conductor 0.1" socket cable with one end cut off to simplify connections to the breakout.
  • proximity_2013_06_23_IMG_1979-1024.jpg

Adjust the Wires

Bend the wires away from the panel. The wires will be touch-sensitive too. To prevent accidental false touches, we want to keep them away from the panel surface.
  • proximity_2013_06_23_IMG_1985-1024.jpg
  • proximity_2013_06_23_IMG_1985-1024.jpg
  • proximity_2013_06_23_IMG_1986-1024.jpg
  • proximity_2013_06_23_IMG_1988-1024.jpg

Install the Panel

Tape the panel to the inside of the polycarbonate cover using clear packing tape.
  • proximity_2013_06_23_IMG_1993-1024.jpg
  • proximity_2013_06_23_IMG_1993-1024.jpg
  • proximity_2013_06_23_IMG_1994-1024.jpg
  • proximity_2013_06_23_IMG_1995-1024.jpg
  • proximity_2013_06_23_IMG_1996-1024.jpg
  • proximity_2013_06_23_IMG_1997-1024.jpg
Các bạn có thể thấy dễ dàng tạo bàn phím như thế nào rùi phải không :)
Video:  https://youtu.be/-dJNJ_oMzbk
 
Hệ thống đầu tiên có thể sử dụng các IC cảm ứng chuyên dụng:
 
Ví dụ: TTP223N SOP6 IC  là một IC chuyên dụng, sử dụng điện năng thấp, độ nhạy cao, có nhiều lựa chọn về phương thức chạm, duy trì sau chạm...

Mạch có thể được giao tiếp với bất kỳ vi điều khiển thông qua các tiêu đề J1 3-pin. Đề nghị VCC được quy định 5V, và đầu ra có sẵn (OUT) là hoạt động cao (H) trong trường hợp của một ngón tay chạm vào touch pad (TP). LED 1 (màu xanh) là công suất (PWR) chỉ số, và đèn LED 2 (màu đỏ) là một chỉ số tùy chọn trạng thái đầu ra (OUT). Chỉ cần nối JP1 nhảy hàn để cho phép các chỉ báo tình trạng đầu ra, nếu cần thiết.

Nguyên mẫu được xây dựng trên một bảng mạch nói chung mục đích sử dụng các thành phần truyền thống với TTP223 gắn trên một PCB SMD adapter (SOT-23 để nhúng bộ chuyển đổi) đã được thử nghiệm thành công bằng cách sử dụng (10mm x10mm) miếng đồng nhỏ như touch pad. Nếu bạn đang sử dụng phương pháp này, hãy cố gắng giữ cho chiều dài của dây nối từ touch pad để pin 1 của TTP223 càng ngắn càng tốt.

 

Trong một số mô-đun, một điện trở 1K được chèn vào giữa các pad cảm ứng và pin 3 của TTP223, nhưng cùng không được thử nghiệm vào lúc này. Lưu ý rằng tổng tải của kích thước touch pad và điện dung của kết nối đường dây trên bảng mạch có thể ảnh hưởng đến sự nhạy cảm. Vì vậy, việc điều chỉnh độ nhạy cảm phải theo các ứng dụng thực tế (lớn hơn và / hoặc mỏng hơn touch pad sẽ làm tăng độ nhạy tổng thể).

 
Sử dụng các Module chuyên dụng:
Module Cảm Ứng Chạm TTP223 Mini
 
Module Bàn Phím Cảm Ứng Chạm TTP229​
.... là các Module đã được tích hợp IC và thiết kế thẩm mỹ phù hợp với chức năng nút bấm đơn thuần.
 
Sử dụng các MicroControl hoạc các Kit thông dụng
Bạn có thể sử dụng AVR Kit hoặc Arduino là những kit phổ biến hiện nay

bàn phím cảm biến

Bàn phím cảm ứng backlit AVR
Sơ đồ nguyên lý tham khảo

open source

 

Arduino:

  • Arduino Board
  • 500K to 1M resistor
  • 220ohm resistor
  • Any colour LED
  • Foil
  • Jumper wire
  • Relay (optional)
  • Mains plug (male and female) (optional)

Step 5: Touch Controlled Light:- the Circuit

Touch Controlled Light:- the Circuit
image.jpg
image.jpg

Lưu ý rằng tôi đã sử dụng một Mega Arduino, nếu bạn đang sử dụng một Uno, kết nối LED với bất kỳ pin nào khác. Tuy nhiên bạn phải làm cho một sự thay đổi nhỏ trong code.

Thực hiện theo các hình ảnh cho các mạch.

  1. Kết nối các 220ohm trở pin 42 và GND.
  2. Sử dụng pin 4 là gửi và pin 2 là nhận trên Arduino.
  3. Có một điện trở 1M trên các chân này. Các lá cảm biến được kết nối với các pin nhận, tức là pin 2.

Mã này sử dụng thư viện CapSense (tải tại đây )

Mã này là đơn giản và dễ hiểu. Đơn giản chỉ cần sao chép đoạn mã này và dán nó aa Arduino wwindow trống. Thay đổi pin dẫn nếu cần thiết. Sau đó tải lên ...

#include < CapacitiveSensor .h> int dẫn = 42;                                          // thay đổi '42' với bất kỳ pin mong muốn ... dài thời gian = 0;int state = CAO ; boolean yes;boolean trước = false ; int debounce = 200; CapacitiveSensor    cs_4_2 = CapacitiveSensor (4,2);        // 10M điện trở giữa chân 4 & 2, pin 2 là pin cảm biến, thêm một dây và lá hoặc nếu muốn // Để thêm cảm biến ... // CapacitiveSensor cs_4_6 = CapacitiveSensor (4,6); // 10M điện trở giữa chân 4 & 6, pin 6 là pin cảm biến, thêm một dây và hoặc lá // CapacitiveSensor cs_4_8 = CapacitiveSensor (4,8); // 10M điện trở giữa chân 4 & 8, pin 8 là pin cảm biến, thêm một dây và lá hoặc khoảng trống thiết lập ()                     {    cs_4_2. set_CS_AutocaL_Millis (0xFFFFFFFF);  // Hiệu chỉnh cảm biến ... pinMode (dẫn, OUTPUT ); } Trống loop ()                     { dài total1 = cs_4_2. capacitiveSensor (30); nếu (total1> 60) {yes = true ;}     khác {yes = false ;}     // để chuyển đổi trạng thái của nhà nước nếu (có == true && trước == false && millis () - Thời gian> debounce) { nếu ( nhà nước == LOW ) {          state =  CAO ;        } Khác           state =  LOW ;          thời gian =  millis ();         } DigitalWrite (dẫn đầu, nhà nước);       trước = yes; Nối tiếp . println ( millis () -time);      chậm trễ (10); } 

Kiểm soát gia dụng điện áp cao ...

Kiểm soát gia dụng điện áp cao ...
image.jpg
image.jpg

Để kiểm soát các thiết bị điện áp cao, dùng Relay là bắt buộc. Thực hiện theo các hướng dẫn tương tự cho việc thiết lập các rơle như trong các dự án trước đây ... 

Vật liệu cần có:

  • Arduino Kit
    • 5.6M điện trở
    • 220ohm điện trở
    • Bất kỳ LED nào
    • Relay (tùy chọn)

Các mạch là đơn giản, nó chỉ là một biến thể của "Light Touch control". Trong thực tế, điều duy nhất bạn phải thay đổi là một điện trở; thời gian này, bạn phải sử dụng một điện trở ~ 5M trên chân 2 và 4 của Arduino.

Sao chép mã này và dán nó vào cửa sổ Arduino ....

#include  int dẫn = 42; // thay đổi '42' với bất kỳ pin mong muốn ... thời gian dài = 0; int state = CAO; boolean yes; boolean trước = false; int debounce = 200; CapacitiveSensor cs_4_2 = CapacitiveSensor (4,2); // 10M điện trở giữa chân 4 & 2, pin 2 là pin cảm biến, thêm một dây và lá hoặc nếu muốn // Để thêm cảm biến ... // CapacitiveSensor cs_4_6 = CapacitiveSensor (4,6); // 10M điện trở giữa chân 4 & 6, pin 6 là pin cảm biến, thêm một dây và hoặc lá // CapacitiveSensor cs_4_8 = CapacitiveSensor (4,8); // 10M điện trở giữa chân 4 & 8, pin 8 là pin cảm biến, thêm một dây và lá hoặc khoảng trống  cài đặt  ()                     {    cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // Hiệu chỉnh cảm biến ...    pinMode (dẫn, OUTPUT); } Trống  vòng  ()                     {     total1 dài = cs_4_2.capacitiveSensor (30);         if (total1> 60) {yes = true;}     else {yes = false;}             // để chuyển đổi trạng thái của nhà nước     nếu (có == true && trước == false && millis () - Thời gian> debounce) {              if ( nhà nước == LOW) {          state = CAO;        }        Khác          state = LOW;          thời gian = millis ();                }                 DigitalWrite (dẫn đầu, nhà nước);       trước = yes;        nối  .println (millis () - thời gian);       sự chậm trễ (10);  

}

Touchless 3D điều khiển 3 chiều


 

 

Touchless điều khiển 3D
 
image.jpg
rgb.jpg

điều khiển 3D này sẽ theo dõi vị trí của bàn tay của bạn trong 3 chiều. Video: https://vimeo.com/1383359

DIY 3D Interface: Tic Tac Toe from Kyle McDonald on Vimeo

Materials

Materials
 
 
 
 
 
 
 
 
2690118127_ae3d9c2d2c.jpg

 

    Materials
  • (3) 270k resistors
  • (3) 10k resistors
  • Solder
  • Wire
  • Aluminum foil
  • Cardboard

Vật liệu cần có:

  • Lá nhôm
  • Arduino Board (Tôi khuyên bạn nên Uno)
  • 10k ohm điện trở x3
  • 220kohm điện trở x3
  • 220 điện trở ohm x3
  • Dây điện
  • RGB LED

cần ba phần riêng biệt của lá, với kích thước khoảng 8 * 8 inch. Một mảnh lá bị mắc kẹt trên một Styrofoam (thermocol) cơ sở dày. Khe hở được thực hiện trên xốp trên 2 mặt giáp của lá nhôm.

Mạch...

image.jpg
fritccc.png

Kết nối dây tới từng bộ cảm biến liên lạc với băng cách điện. Sau đó lắp ráp các mạch trên breadboard.

Đo đạc các cảm biến cảm ứng ..

Sau khi tải lên các mã, mở Serial Monitor, với Arduino vẫn còn kết nối. Bạn sẽ thấy nhiều dòng giá trị lăn trong, với mỗi dòng có 3 giá trị đại diện cho mỗi cảm biến cảm ứng. Chạm vào bất kỳ một bộ cảm biến cảm ứng (bạn phải biết cái nào bạn cảm động), và thấy được giá trị tương ứng của nó trên màn hình nối tiếp.

Bạn sẽ thấy dòng này trong mã trước hàm  setup () {

int maxval = 20;

Thay đổi từ 20 đến giá trị mà bạn có sau khi chạm vào một trong các cảm biến.

Sau đó tải lên các mã một lần nữa. Di chuyển bàn tay của bạn bên trong bộ điều khiển 3D sẽ sản xuất một loạt các màu sắc.

Lưu ý quan trọng: Các mã dưới đây chỉ hoạt động cho Arduino Uno (và có thể cả Leonardo).

Tóm tắt: Upload mã, điều chỉnh biến "maxval" và tải lên Kit. Sử dụng một Arduino Uno hoặc giống vậy.
 

 Video tổng hợp: https://youtu.be/stejKa03tdw

Các mạch khác:

4 con transistor a1015
Rơ le 5 chân - 5volt hoặc 12 volt 
Diot 4148 cần 3 hoặc 4 con

Điện trở 4M7
trans thì bn quay mặt chữ vào hướng mình thứ tự chân là E C B, còn ký hiệu nó thì bn coi trên google cho rõ PNP (chân có mũi tên là chân E, chân B ở giữa , còn Thyristor là diot nên nó cũng giống giống diot nhưng có thêm chân phụ (chân đưa ra ngoài ) là G, chân có hình tam giác là A, chân còn lại là K, RL1 là rờ le 5 chân, 2 chân nguồn), có thể thay Relay bằng opto pc817.
Thư viện code tham khảo:

 

https://github.com/cpldcpu/TinyTouchLib

TinyTouchLib

This library provides functions for touch-button sensing on ATtiny microcontrollers with integrated ADC. It implements a charge sharing approach similar to Atmels Qtouch ADC that does not require additonal external components. The library performs automatic bias adjustment to the touch button capacitance and should therefore be immune to drift.

You can find an example app here.

Supported Devices

Device Support No Support Comment
ATtiny 4/9   X No ADC
ATtiny 5/10 X    
ATtiny 13A X    
ATtiny 25/45/85 X    
ATtiny 24/44/84   X may be supported later
ATtiny 261/461/861   X may be supported later

Library Functions

initialization

void  tinytouch_init(void);

Call this once to initialize the library functions and the ADC converter.

Sensing

uint8_t tinytouch_sense(void);Possible return values are:  tt_off=0    No touch sensed  tt_on       Touch button is active and touch is sensed.  tt_push     Touch button is pushed. Use this to initiate one time events.  tt_release  Touch button is released. Use this to initiate one time events.  tt_timeout  Touch button has been active too long and internal bias was   reset. 

This function performs touch pad sensing and internal housekeeping. It should be called at least 30 times per second. Please note that each call performs 32 analog to digital conversions with active waiting. This may take several ms.

Library Configuration

////////////////////////////////////////////////////////////////////////////// User definable settings////////////////////////////////////////////////////////////////////////////// Define upper and lower threshold for the touch sensing. You may have to// change these depending on the geometry of your touch button.// Setting the "on" value lower will make the touch button more sensitive.// Setting the "off" value higher will make the touch button less likely// to be "stuck". Too high values can lead to oscillations.#define touch_threshold_on 60#define touch_threshold_off 20// If the touch button is pressed, the bias value is not updated// to prevent detection of multiple touches. In some cases this may// lead to a "stuck button" situation. Therefore an update of the bias// is forced after a certain time unless this function is deactivated.//// The value of timeout corresponds to the number of calls to tinytouch_sense().// The maximum is 255. // Setting timeout to 0 will turn the functionality off.#define touch_timeout 255//#define touch_timeout 0   // turn off timeout functionality// Define pins to use for the reference input and the touch button// The reference pin is used to charge or discharge the internal// sample&hold capacitor. This pin is used in output mode and should// not be shorted to VCC or GND externally.// The sense pin is connected to the touch-button. To improve noise immunity// a series resistor can be used.// The pin number must match the corresponding analog input number ADCx. // Default port is PORTB. (ATtiny 5/10/13/25/45/85)#define tt_refpin 2     // Use PB2 as reference pin#define tt_refadc 1     // Use ADC1 as reference ADC input#define tt_sensepin 3   // Use PB3 as sense pin#define tt_senseadc 3   // Use ADC3 as sense ADC input

Example

This example implements a touch button on PB3 to toggle a LED connected to PB4.

#include #include #include "tinytouchlib.h"int main(void){  CLKPR=_BV(CLKPCE);    CLKPR=0;            // set clock prescaler to 1 (attiny 25/45/85/24/44/84/13/13A)           DDRB=_BV(PB4);      // Enable LED output pin    tinytouch_init();    while(1) {        if (tinytouch_sense()==tt_push) {PORTB^=_BV(PB4);}  // Toggle LED on touch event                _delay_ms(10);      }   }
 
 
 
 
 
Touchless điều khiển 3D
 
image.jpg
rgb.jpg