SunFounder RAB 5 in 1 Breadboard [B193]




* Specs

1) Compatibale with Raspberry Pi 3 Model B,2 Model B and 1 Model B+. 

2) For any Arduino board whose mounting holes are the same with For Arduino UNO and Mega 2560 can be fixed upon this Holder with screws. 

3) Be able to fix the 400 points and 800 points self-adhesive breadboard.

4) There are M3 fixing holes in the middle which can be used to fix the RAB Holder upon your experiment table.

5) Size:200*135mm ->7.87inch * 5.31inch.


- Technical Details Introduction

RAB Holder, also called Raspberry Pi, For Arduino and Breadboard Holder. Presumably you can know its function from the name. It can ensure the security of your demoboard and avoid placing the demoboard on the desk freely to cause short cut. The RAB Holder also simplifies your experiment when you are building a complex circuit. There are three zones on the RAB Holder and each has a name on it. We have made some slots in the zone that used to fix the Raspberry Pi to make the use more comfortable.

A screwdriver is provided for you to install the Raspberry Pi and for Arduino board onto the holder with screws. 


- Package Contents

2x M3*10 Screw 

4x M2.5*6 Screw 

6x M3*6 Screw 

1x RAB Holder

1 x Screwdriver


'4) Parts&Others' 카테고리의 다른 글

SunFounder RAB 5 in 1 Breadboard [B193]  (0) 2017.09.03
Posted by RD IoT RDIoT

댓글을 달아 주세요

9376 Motor Miniatura (9376) [D019]



https://www.youtube.com/watch?v=SpYVBLfMmfI


* GitHubhttps://github.com/rdiot/rdiot-d019.git



* Specs

 
VACIO
MÁXIMA EFICACIA
BLOQUEO
 
V.
R.P.M.
A.
R.P.M.
A.
Kg·cm.
Kg·cm.
A.
 340000.08531900.3417851.35
 685000.170000.54281783
 9123001.11106500.7302204.5
 12165000.125143000.836.52755.2

* Contents

- Connect

Red ----- D7

Black ----- GND

 

Buttton Module

S ----- D2

middle ----- 5V

- ----- GND


- Key Code

#include <Wire.h> 

#include <LiquidCrystal_I2C.h>

 

LiquidCrystal_I2C lcd(0x27,20,4);  // LCD2004

int R = 2;

byte lastButton = HIGH;

byte nowButton = HIGH;

int servo = 7;

 

void setup()

{

  lcd.init();  // initialize the lcd 

  lcd.backlight();

  lcd.print("start LCD2004");

  pinMode(R, INPUT);

  pinMode(servo, OUTPUT);

 

  digitalWrite(R, HIGH);

 

  digitalWrite(servo, LOW);

  

  delay(1000);

 

  lcd.clear();

}

 

void loop()

{

 

  lcd.setCursor(0,0);

  lcd.print("D019:9376 Motor");

 

  byte nowButton = digitalRead(R);

 

  lcd.setCursor(0,1);

  lcd.print("value="+(String)nowButton);

 

  if (HIGH == lastButton)

  {

    if (LOW == nowButton)

    {

     lcd.setCursor(0,2);

     lcd.print("running motor  ");

     digitalWrite(servo, HIGH);

    }

  }

  else

  {

    if (HIGH == nowButton)

    {

     lcd.setCursor(0,2);

     lcd.print("stopped motor  ");

    digitalWrite(servo, LOW);

 

    }

  }

 

 lastButton = digitalRead(R);

 delay(100);

 

}

Posted by RD IoT RDIoT

댓글을 달아 주세요

2.4 Inch TFT Touch LCD Shield (ST7781) [D001]



Loading Graphic : https://www.youtube.com/watch?v=GYCeGMsrbFA


Draw :  https://www.youtube.com/watch?v=PJ1l4Nn3UVw


* GitHub https://github.com/rdiot/rdiot-d001.git


* Specs

There’s no doubt Arduino has quickly become the world’s most popular do-it-yourself microcontroller board system, thanks to its simplicity, versatility and surprisingly low cost. But the key to that versatility is its Shield header that allows daughter boards or ‘shields’ to extend the Arduino’s functionality. In the last project, we built a digital clock project using the popular 1602 alphanumeric LCD shield and it’s hopefully had your mind ticking over with other ideas and possibilities. This month, we’re going a step further, introducing a new low-cost shield that incorporates a 320 x 240-pixel TFT LCD touchscreen.


The ST7781 is a single-chip controller/driver for 262K-color, graphic type TFT-LCD. It consists of 720 source line and

320 gate line driving circuits. This chip is capable of connecting directly to an external microprocessor, and accepts,

8-bits/9-bits/16-bits/18-bits parallel interface. Display data can be stored in the on-chip display data RAM of 240x320x18

bits. It can perform display data RAM read/write operation with no external operation clock to minimize power

consumption. In addition, because of the integrated power supply circuits necessary to drive liquid crystal, it is possible to

make a display system with the fewest components. 


Driver Output:

- 720ch Source Outputs (240 X RGB)

- 320ch Gate Outputs

- Common Electrode Output 


Single Chip Display RAM:

-Capacity: 240x320x18 bit 


Support Display Color

- 65K Color

- 262K Color

- 8-color (Idle Mode) 


Supported LC Type Option

- MVA LC Type

- Transflective LC Type

- Transmissive LC Type 


Supported MCU Interface

- 8/9/16/18-bit Interface with 8080-Series MCU 


Display Features

- Partial Display Mode

- Resizing Function (x1/2, x1/4)


Build-in Circuit

- DC/DC Converter

- Adjustable VCOM Generation

- Oscillator for Display Clock Generation

- Timing Controller

- Non-volatile Memory for Factory Default Value

- Line Inversion, Frame Inversion 


Non-Volatile Memory

- 7-bits for ID Code

- 5-bits for VCOM Adjustment 


Supply Voltage Range

- Analog Supply Voltage (VDD) Range: 2.5V to 3.3V

- I/O Supply Voltage (VDDI) Range: 1.65V to 3.3V


Output Voltage Level

- GVDD – AGND: 3V to (AVDD-0.5) V

- AVDD – AGND: 4.5V to 5.6V

- VCL – AGND: -2.0V to -3.0V

- VCOMH – AGND: 3.0V to (AVDD-0.5) V

- VCOML – AGND: (VCL+0.5) V to 0.0V

- VGH – AGND: 10V to 16.5V

- VGL – AGND: -5V to -14V 


Lower Power Consumption

- CMOS Compatible Inputs

- Optimized Layout for COG Assembly

- Operate Temperature Range: -30 ℃ ~ +85℃



* Contents

- DataSheet : http://www.rockbox.org/wiki/pub/Main/SansaFuzePlus/ST7781.pdf

- Library1 : https://github.com/samuraijap/TFTLCD-Library  

- Library2 : https://github.com/adafruit/Adafruit-GFX-Library


- Tested Library : TFTLCD_Rack_Dongari_tftpaint_fixed.zip

modify 

ili9341(2.4inch 240x320)

#define TFTWIDTH   240

#define TFTHEIGHT  320

//#define TFTWIDTH   320

//#define TFTHEIGHT  480


identifier == 0x9325

uint16_t identifier = tft.readID();

TFT size is 240x320

Found ILI9325 LCD driver 


- Connect / Pin Map

A0 LCD_RD

A1 LCD_WR / TS_YP

A2 LCD_RS / TS_XM

A3 LCD_CS

A4 LCD_RST

D8 LCD_D0

D9 LCD_D1

D2 LCD_D2

D3 LCD_D3

D4 LCD_D4

D5 LCD_D5

D6 LCD_D6 / TS_XP

D7 LCD_D7 / TS_YM

D8 SD_SS

D9 SD_DI

D10 SD_DO

D11 SD_SCK

Posted by RD IoT RDIoT

댓글을 달아 주세요

Breadboard Power Supply Module 3.3V, 5V (MB-102) [B022]



https://www.youtube.com/watch?v=RhCuFxrJG2A


* Specs

- Feature

Breadboard power supply module, with 5 V, 3.3 V output voltages

Apply to MB102 Standard breadboard

Input voltage: 6.5-12 V (DC) or 5V USB power supply

Output voltage: 3.3V and 5V can switch over

Maximum output current: <700 ma

Input voltage ON/OFF switch

Independent control of upper and Lower Bread Board Power Rails. Can switch over to 0 V, 3.3 V, 5 V using jumpers on any rail.

On-board two groups of 3.3V, 5V DC output plug pin, convenient external lead use.

- Connection

1x Barrel 5mm Connector (center +ve) for Input Power

1x USB connector for 5V input or 5V output

4x 2Pin Headers pointing downward for 3.3V or 5V output

1x 2×4 Header for 3.3V and 5V output

2x 1×4 selection jumper for 3.3V/OFF/5V



Posted by RD IoT RDIoT

댓글을 달아 주세요

HC Serial Bluetooth Module (HC-06) [S018]




HC Serial Bluetooth Module (HC-06) Phone to Slave [S018] 

https://www.youtube.com/watch?v=RuOHfPNCc4I


HC Serial Bluetooth Module (HC-06) Mster to Slave [S018]

https://www.youtube.com/watch?v=y8-W5BIm6xU


*GitHub : https://github.com/rdiot/rdiot-s018.git


* Specs

Serial port bluetooth, Drop-in replacement for wired serial connections, transparent usage. You can use it simply for a serial port replacement to establish connection between MCU and GPS, PC to your embedded project and etc.

And now, we provide HC-05 and HC-06. HC-05 could be setting to Master or Slave by user. HC-06 has be designed Master or Slave when the factory, user couldn't change the role.


Feature :

Bluetooth protocal:  Bluetooth Specification v2.0+EDR

Frequency:  2.4GHz ISM band

Modulation:  GFSK(Gaussian Frequency Shift Keying)

Emission power:  ≤4dBm, Class 2

Sensitivity:  ≤-84dBm at 0.1% BER

Speed: Asynchronous:  2.1Mbps(Max) / 160 kbps, Synchronous: 1Mbps/1Mbps

Security:  Authentication and encryption

Profiles:  Bluetooth serial port

Power supply: +3.3VDC 50mA

Working temperature: -20 ~ +75 Centigrade

Dimension: 26.9mm x 13mm x 2.2 mm


Default : Slave, 9600 baud rate, N, 8, 1. Pincode 1234


* Contents

- Connect

WAKEUP

VCC(3.6~6V) ----- 5V

GND ----- GND

TXD ----- RX

RXD ----- TX

STATE 


- Master Setup

AT

AT+ROLE=M

Arduino Reboot

AT+PIN1234

AT+BAUD4


- Slave Setup

AT

AT+ROLE=S

Arduino Reboot

AT+PIN1234

AT+BAUD4

AT+NAMEbtSlave


- Key Code

@Setup Master or Slave 

#include <SoftwareSerial.h>

 

SoftwareSerial BTSerial(2, 3);

 

void setup()  

{

  Serial.begin(9600);

  BTSerial.begin(9600);

}

void loop()

{

  if (BTSerial.available())

    Serial.write(BTSerial.read());

  if (Serial.available())

    BTSerial.write(Serial.read());

}  


@ Slave Test Source (Phone Master -> Slave)

#include "U8glib.h"

#include <SoftwareSerial.h>

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);

SoftwareSerial BTSerial(2, 3);

 

char data=NULL;

String str="";

int ledPin = 9;

 

void setup() {

 pinMode(ledPin,OUTPUT);

  Serial.begin(9600);

  BTSerial.begin(9600);

}

 

void loop(void) {

 

  if (BTSerial.available()) 

  {

   //Serial.write(BTSerial.read()); 

    data = (char)BTSerial.read();

   

    if(data == '1') {

      digitalWrite(ledPin,HIGH);

      str = "ON";

    } else if(data == '0') {

      digitalWrite(ledPin,LOW);

      str = "OFF";

    }

   }

 

  // picture loop

  u8g.firstPage();  

  do {

    draw();

  } while( u8g.nextPage() );

  

  // rebuild the picture after some delay

  delay(100);

 

}

 

void draw(void) {

  u8g.setFont(u8g_font_9x15B);

  u8g.setPrintPos(0, 12); 

  u8g.println("HC-06");

 

  u8g.setFont(u8g_font_helvB14);

  u8g.setPrintPos(0,40);

 

  u8g.print("data="+(String)data);

 

  u8g.setFont(u8g_font_helvB14);

  u8g.setPrintPos(0,60);

 

  u8g.print("cmd="+(String)str);

}

 


@ Master HC-06 <-> Slave HC-06 Test Source

#include <SoftwareSerial.h>

SoftwareSerial BT_Serial(2,3); //RX, TX

 

void setup()

{

  Serial.begin(9600);

  BT_Serial.begin(9600); // connect bluetooth

}

 

void loop()

{

  if(BT_Serial.available())

    Serial.write(BT_Serial.read()); // bluetooth read

    

  if(Serial.available())

    BT_Serial.write(Serial.read()); // bluetooth write  

}

Posted by RD IoT RDIoT

댓글을 달아 주세요

ADXL335 3-axis Accelerometer (GY-61) [S057]



https://www.youtube.com/watch?v=VhsJ0hoZzxo


*GitHubhttps://github.com/rdiot/rdiot-s057.git


* Specs

This is a very low cost break out module for the ADXL335 tripple axis accelerometer. This module includes optional header pins and provides easy access to the X, Y and Z axis analogue outputs from the accelerometer. 

It is capable of sensing forces up to 3g in all axis. A 3.3V on-board regulator is also provided allowing the module to be powered from a 3.3 to 5V power supply source.


Model number: HCMODU0070

Supply Range: 3V ~ 5V

3 Axis sensing

Full scale range: +/-3g

Sensitivity: 300mV/g (Typ)

Pinout, schematic and datasheet available after purchase.


* Contents

- Connect

Arduino Uno 

3.3V ----- VCC 

      ----- AREF

ADXL335 

VCC ----- 3.3V 

X-OUT ----- A0 

Y-OUT ----- A1 

Z-OUT ----- A2 

GND ----- GND


- Key Code

#include <Wire.h> 

#include <LiquidCrystal_I2C.h>

 

LiquidCrystal_I2C lcd(0x27,20,4);  // LCD2004

const int xpin = A0;                  // x-axis of the accelerometer

const int ypin = A1;                  // y-axis

const int zpin = A2;                  // z-axis (only on 3-axis models)

 

void setup()

{

  lcd.init();  // initialize the lcd 

  lcd.backlight();

  lcd.print("start LCD2004");

 

  analogReference(EXTERNAL);

  pinMode(xpin, INPUT);

  pinMode(ypin, INPUT);

  pinMode(zpin, INPUT);

 

  delay(1000);

 

  lcd.clear();

}

 

void loop()

{

 

  lcd.setCursor(0,0);

  lcd.print("S057:ADXL335 3axisA");

 

  int x = analogRead(xpin);

    delay(1);

  int y = analogRead(ypin);

    delay(1);

  int z = analogRead(zpin);

  //zero_G is the reading we expect from the sensor when it detects

  //no acceleration.  Subtract this value from the sensor reading to

  //get a shifted sensor reading.

  float zero_G = 512.0;

  

  //scale is the number of units we expect the sensor reading to

  //change when the acceleration along an axis changes by 1G.

  //Divide the shifted sensor reading by scale to get acceleration in Gs.

  float scale = 102.3;

 

  float xp = ((float)x - zero_G)/scale;

  float yp = ((float)y - zero_G)/scale;

  float zp = ((float)z - zero_G)/scale;

 

  lcd.setCursor(0,1);

  lcd.print("ax="+ (String)x +" x=" + (String)xp);

 

  lcd.setCursor(0,2);

  lcd.print("ay="+ (String)y +" y=" + (String)yp);

 

  lcd.setCursor(0,3);

  lcd.print("az="+ (String)z +" z=" + (String)zp);

 

  delay(500); 

}

'2) Sensor > Accelerometer' 카테고리의 다른 글

ADXL335 3-axis Accelerometer (GY-61) [S057]  (0) 2016.09.17
Posted by RD IoT RDIoT

댓글을 달아 주세요

ENC28J60 Ethernet Module (ENC28J60) [S058]





https://www.youtube.com/watch?v=CQpMqNqUW_8


*GitHubhttps://github.com/rdiot/rdiot-s058.git


* Specs

The ENC28J60 Ethernet Module utilizes the new Microchip ENC28J60 Stand-Alone Ethernet Controller IC featuring a host of features to handle most of the network protocol requirements. The board connects directly to most microcontrollers with a standard SPI interface with a transfer speed of up to 20MHz.

ENC28J60 Ethernet chips, SOP28 package

SPI Interface

2X5 connector, can be easily mounted with the MCU

Power indicator

Single Supply: +3.3 V

PCB size: 55x36 mm


* Contents

- Connect (Uno)

VCC -   3.3V

SCK - Pin 13

SO  - Pin 12

SI  - Pin 11

CS  - Pin  8 # Selectable with the ether.begin() function

GND - GND


- Connect (Mega)

VCC -   3.3V

GND -    GND

SCK - Pin 52

SO  - Pin 50

SI  - Pin 51

CS  - Pin 53 # Selectable with the ether.begin() function

# The default CS pin defaults to 8, so you have to set it on a mega:

ether.begin(sizeof Ethernet::buffer, mymac, 53)


- Library : https://github.com/ice3x2/ethercard

- Library Download : https://github.com/jcw/ethercard/archive/master.zip


- Key Code

#include <EtherCard.h>

#define REQUEST_RATE 5000 // milliseconds


// ethernet interface mac address

static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

// remote website name

const char website[] PROGMEM = "sports.news.naver.com";


byte Ethernet::buffer[700];

static long timer;


  if (!ether.dhcpSetup())

    Serial.println("DHCP failed");

  

  ether.printIp("My IP: ", ether.myip);

  // ether.printIp("Netmask: ", ether.mymask);

  ether.printIp("GW IP: ", ether.gwip);

  ether.printIp("DNS IP: ", ether.dnsip);


  timer = - REQUEST_RATE; // start timing out right away


// called when the client request is complete

static void my_result_cb (byte status, word off, word len) {

  Serial.print("<<< reply ");

  int val = millis() - timer;

  Serial.print(val);

  Serial.println(" ms");

  Serial.println((const char*) Ethernet::buffer + off);


  lcd.setCursor(0,3);

  lcd.print("reply=" + (String)val + " ms   ");

}

'2) Sensor > Ethernet' 카테고리의 다른 글

ENC28J60 Ethernet Module (ENC28J60) [S058]  (0) 2016.09.17
Posted by RD IoT RDIoT

댓글을 달아 주세요

Finger Heartbeat Detection Sensor Module (KY-039) [S033]




https://www.youtube.com/watch?v=PlpGS6BdtK4


*GitHubhttps://github.com/rdiot/rdiot-s033.git


* Specs

KY-039 Finger Detector Heartbeat Detection Sensor Module For Arduino

Specification:

Working voltage: 5V

Use IR LED and optical transistor to detect pulsation in fingers

Used for synthesized teaching experiment

Dimensions: 25 x 22 x 17mm

Weight: 2g


* Contents 



- Connect

S ----- A0

Middle ----- 5V

- ----- GND


Schematic



- Key Code

#include <Wire.h> 

#include <LiquidCrystal_I2C.h>

#define HBDEBUG(i)

 

LiquidCrystal_I2C lcd(0x27,20,4);  // LCD2004

 

int sensorPin = A0;

double alpha = 0.75;

int period = 100;

double change = 0.0;

double minval = 0.0;

const int delayMsec = 60; // 100msec per sample


void setup()

{

  lcd.init();  // initialize the lcd 

  lcd.backlight();

  lcd.print("start LCD2004");

  Serial.begin(9600);

  delay(1000);

 

  lcd.clear();

}

 

void loop()

{

 

  lcd.setCursor(0,0);

  lcd.print("S033:KY-039");

 

 

  static double oldValue = 0;

  static double oldChange = 0;

  int rawValue = analogRead (sensorPin);

  double value = alpha * oldValue + (1 - alpha) * rawValue;

 

  lcd.setCursor(0,1);

  lcd.print("rawValue=" + (String)rawValue + "   ");

 

  oldValue = value;

 

 

  static int beatMsec = 0;

  int heartRateBPM = 0;

  

  if (heartbeatDetected(sensorPin, delayMsec)) {

    heartRateBPM = 60000 / beatMsec;

    //digitalWrite(ledPin,1);

 

    // Print msec/beat and instantaneous heart rate in BPM

    //Serial.print(beatMsec);

    

    lcd.setCursor(0,2);

    lcd.print("beatMsec=" + (String)beatMsec + "    ");

 

 

    lcd.setCursor(0,3); 

     lcd.print("BPM=" + (String)heartRateBPM + "    ");

 

    beatMsec = 0;

  } else {

    //digitalWrite(ledPin,0);

  }


  delay(delayMsec);

  beatMsec += delayMsec;

 

 

  //delay (period);

}

 

bool heartbeatDetected(int IRSensorPin, int delay)

{

  static int maxValue = 0;

  static bool isPeak = false;

  int rawValue;

  bool result = false;

    

  rawValue = analogRead(IRSensorPin);

  // Separated because analogRead() may not return an int

  rawValue *= (1000/delay);

  HBDEBUG(Serial.print(isPeak); Serial.print("p, "));

  HBDEBUG(Serial.print(rawValue); Serial.print("r, "));

  HBDEBUG(Serial.print(maxValue); Serial.print("m, "));

 

  // If sensor shifts, then max is out of whack.

  // Just reset max to a new baseline.

  if (rawValue * 4L < maxValue) {

    maxValue = rawValue * 0.8;

    HBDEBUG(Serial.print("RESET, "));

  }

  

  // Detect new peak

  if (rawValue > maxValue - (1000/delay)) {

    if (rawValue > maxValue) {

      maxValue = rawValue;

    }

    // Only return true once per peak.

    if (isPeak == false) {

      result = true;

      Serial.print(result); Serial.print(",  *");

    }

    isPeak = true;

  } else if (rawValue < maxValue - (3000/delay)) {

    isPeak = false;

    maxValue-=(1000/delay);

 }

  HBDEBUG(Serial.print("\n"));

  return result;

}

'2) Sensor > Heartbeat_Pulse' 카테고리의 다른 글

Finger Heartbeat Detection Sensor Module (KY-039) [S033]  (0) 2016.09.17
Pulse Sensor [S032]  (0) 2016.09.17
Posted by RD IoT RDIoT

댓글을 달아 주세요