Difference between revisions of "Sensor-Crash"

From Microduino Wiki
Jump to: navigation, search
(Revert back to early version for now until edits can be merged)
 
(56 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Language|Microduino-Crash Sensor}}
+
{{Language|Sensor-Crash Sensor}}
{| style="width: 800px;"
+
{| style="width: 80%;"
 
|-
 
|-
 
|
 
|
 
[[File: Microduino Crash-rect.jpg|400px|thumb|right| Microduino-Crash Sensor]]
 
[[File: Microduino Crash-rect.jpg|400px|thumb|right| Microduino-Crash Sensor]]
  
Microduino-Crash Sensor is a sensor which can perceive collision.
+
The product number of Sensor-Crash is: '''MSDS11'''
  
It is used to detect if there is collision or crash. Therefore, it can also be called crash signal sensor. Due to different collision position, it can classified as left-crash sensor or right-crash sensor. Crash switch can turn mechanical quantity to electricity. When this sensor collided with an object, it'll cause circuit switch close. So, the circuit loop will be opened, the LED will be lighten and the voltage between the two sides of the sensor will turn high level to low. Microduino-Crash judges collision by detecting the electrical level between its two side. It can used in limit and anti-collision such as 3D print motor limit switch and robot anti collision. 
+
Sensor-Crash is a crash sensor, which is used to detect whether a crash has happened.
  
  
  
  
 +
==Introduction of Sensor Pin==
 +
{{ST_Pinout
 +
|st_name=Crash Sensor
 +
|pin3=Digital Input
 +
}}
  
==Features==
+
=About=
*Left-crash and right-crash
 
*LED collision indicator
 
*Small and easy to install
 
  
 
==Specification==
 
==Specification==
 +
*Sensor voltage
 +
**3.3V~5V working voltage
  
 +
*Size of the sensor
 +
**Size of the board: 23.5mm*13mm
 +
**1.27mm-spacing 4Pin interface connected with sensorhub.
 +
**CAD drawing of the sensor: '''[[File:Sensor_CAD.zip]]'''
  
*Electrical specification
+
*Function description
**Operation voltage: 5V
+
**The static signal of the sensor is HIGH. After being pressed, the signal changes into LOW.
**Input device
 
*Tech parameters
 
**Pin description: GND, VCC, signal input and NC(Empty).  
 
**Digit input
 
  
*Size
+
*Connection
**Size of the Switch: 12mm*6mm,
+
**This sensor can be connected to the following interfaces of the core: '''D2~D13''','''A0~A7'''
**Size of the Board: 20mm*20mm
 
**1.27mm-pitch 4Pin interface connected with Sensorhub
 
*Connection method
 
**Include left-crash and right-crash 
 
  
[[file:mCookie-sensorhub_rule.JPG|thumb|800px|center]]
+
==Document==
[[File: Microduino-CRASH Sensor_rule1.jpg|600px|thumb|center]]
+
*Schematic diagram:
[[File: Microduino-CRASH Sensor_rule2.jpg|600px|thumb|center]]
+
*Main sensors:
 +
 
 +
==Usage==
 +
 
 +
===Basic Functionality===
 +
The Crash Sensor is a simple Single Pole Single Throw Switch (SPST). When the sensor is not press, the electrical path through it is "open" (electrons cannot flow through it). When the sensor is pressed, the electrical path through it is "closed" (electrons can flow through it). It is an input module which produces a HIGH or LOW voltage depending if pressed or not. A Core module can read the voltage value and determine the state of the Crash Sensor.
 +
{| class="wikitable"
 +
|+Crash Sensor State Table
 +
|-
 +
! State
 +
! Voltage Level
 +
|-
 +
|Sensor is not pressed
 +
|HIGH
 +
|-
 +
|Sensor is pressed
 +
|LOW
 +
|}
  
==Document==
+
===Programming===
*Principle: '''[[File: Microduino_Crash.Zip]]'''
+
<tab name="Arduino for Microduino" style="width:100%;">
 +
==Introduction==
 +
The Crash Sensor is used as a simple input pin. Therefore, the '''pinMode''' and '''digitalRead''' functions will be used.
 +
==Key Functions==
 +
*Required Libraries: None
 +
*Key Functions:
 +
** '''pinMode(pin_number, pin_mode)''' - sets the mode for the pin
 +
***'''pin_number''' - is the pin number that the sensor is connected to
 +
***'''pin_mode''' - is the mode to set the pin to. Either '''INPUT''' or '''OUTPUT'''
 +
** '''digitalRead(pin_number)''' - Reads the value of the pin
 +
***'''pin_number''' - is the pin number that the sensor is connected to
 +
 
 +
==Example==
 +
This is a simple example which outputs the state of the Crash Sensor to the serial port terminal.
 +
 
 +
'''Note''': Important lines of code are highlighted.
 +
 
 +
<syntaxhighlight lang="cpp" highlight="1,2,10,11,17,18">
 +
//Define the pin the sensor is connected to
 +
const int CRASH_SENSOR_PIN = 6;
 +
 
 +
void setup(){
 +
  // put your setup code here, to run once:
 +
 
 +
  //Initial serial communication port at 9600 baud
 +
  Serial.begin(9600);
 +
 
 +
  //Configure the pin into input mode
 +
  pinMode(CRASH_SENSOR_PIN, INPUT);
 +
}
 +
 
 +
void loop(){
 +
  // put your main code here, to run repeatedly:
 +
 
 +
  //Perform a digital read and store the value into pin_state variable
 +
  int pin_state = digitalRead(CRASH_SENSOR_PIN);
 +
 
 +
  //Check if the sensor's state is HIGH (not pressed)
 +
  if(pin_state == HIGH){
 +
    Serial.println("Crash sensor is not pressed!");
 +
  }
 +
  //Check if the sensor's state is LOW (pressed)
 +
  else if(pin_state == LOW){
 +
    Serial.println("Crash sensor is pressed!");
 +
  }
 +
  else{}
  
 +
  //delay 100ms between loops
 +
  delay(100);
 +
}
 +
</syntaxhighlight>
 +
Copy and paste the code above to the Arduino IDE or
  
==Development==
+
Download the above example: n/a
===Preparation===
 
*Make sure you build Microduino development environment. If not, please refer to: [[Microduino Getting started]]
 
*Choose the core module
 
**1. Adopt [[Microduino-CoreUSB]] or [[mCookie-CoreUSB]] as the core board.
 
**2.Adopt [[Microduino-Core]] or [[Microduino-Core+]] as the core board and you also need [[Microduino-USBTTL]] to work with the core for program download.
 
  
===Program===
+
*Open the Serial Monitor (magnifier glass on top right) and set 9600 baud. This will display the serial output.
 +
</tab>
  
*Open Arduino IDE, select File→Examples→Basics→DigitalReadSerial program example, select the right board, compile and download. 
+
===Program Download===
[[file:mCookie-crashCodeExample.JPG|thumb|800px|center]]
+
*Download and unzip the program '''[[File:Sensor_Crash_Test.zip]]'''
 +
*Or create a new sketch and copy & paste this code: '''https://gist.github.com/anonymous/d714e491f22fda1c42dd78f9e92b5eb4'''
  
*int pushButton = 6;  Define input pin as D6(Also can be defined by users.)
+
===Programming===
*pinMode(pushButton, INPUT);    Define pushButton as the input pin.
+
{{Upload
*int buttonState = digitalRead(pushButton);    Read values of pushButton.
+
|nameA=[[Microduino-Core]], [[Microduino-USBTTL]]
 +
|nameB=[[Microduino-USBTTL]]
 +
|boardName=Microduino/mCookie-Core(328p), Atmega328P@16M,5V
 +
|fileName=CrashTest.ino
 +
}}
  
*Open the serial monitor after download. When there is no collision, the input value is "1" and the input value is "0" under the opposite circumstance. So we can judge if there is collision by input values on the serial monitor.
+
===Hardware Setup===
 +
*Referring to the following diagram, connect the Sensor-Crash to digital port D6 of '''[[Microduino-Sensorhub]]'''.
 +
<br>
 +
[[file:Microduino-sensorhub_Crash.JPG|thumb|400px|left]]
 +
<br style="clear: left"/>
  
===Hardware Buildup===
+
===Result===
*Connect Microduino-Crash and the Sensorhub's digital port(D6) which is also the input pin of "pushButton".  
+
*After download, open the serial monitor.  
*For reference: [[Microduino-Sensorhub]]
+
*The static sensor signal is HIGH. After being pressed, it changes into LOW.
[[file:Microduino-sensorhub_6.JPG|thumb|400px|center]]
 
* For reference: [[mCookie-Hub]]
 
[[file:mCookie-sensorhub_6.JPG|thumb|400px|center]]
 
*Connect the core, Sensorhub and LED together to a computer with a USB cable.
 
*Choose the right board and COM port, compile and download. Please refer to: [[AVR Core:Getting started]]
 
[[file:upload.JPG|thumb|800px|center]]
 
*Open the serial communication after download and you'll see button input values.  
 
  
 
==Application==
 
==Application==
*Used as a switch
+
*Key switch
*Used as a crash sensor
+
*Limit switch
 
 
===Project===
 
* '''[[Music Box One—Key Version]]'''
 
  
==Purchase==
+
===Projects===
  
 
==History==
 
==History==
  
==Pictures==
+
==Gallery==
 
+
{| border="0" cellpadding="10" width="100%"
*Front
+
|-
[[file: Microduino-CRASH Sensor -b.JPG|thumb|600px|center|Microduino-Cube-Station Front]]
+
|width="50%" valign="top" align="left"|
*Back
+
[[file: MicroduinoCrash-F.JPG|thumb|480px|center|mCookie-Crash-Front]]
[[file: Microduino-CRASH Sensor-F.JPG|thumb|600px|center|Microduino-Cube-Station Back]]
+
|width="50%" valign="top" align="left"|
 +
[[file: Microduino-Crash-b.JPG|thumb|480px|center|mCookie-Crash-Back]]
 +
|}
 
|}
 
|}

Latest revision as of 20:30, 1 December 2017

Language: English  • 中文
Microduino-Crash Sensor

The product number of Sensor-Crash is: MSDS11

Sensor-Crash is a crash sensor, which is used to detect whether a crash has happened.



Introduction of Sensor Pin

Sensor backpin.png

Crash Sensor
General Pin Out Sensor / Trinket's Pin Out
PIN1 (GND) GND
PIN2 (VCC) VCC
PIN3 (SIGNAL-A) Digital Input
PIN4 (SIGNAL-B) Not Connected
  • General Pin Out is the standard pin out of a Sensor / Trinket connector.
  • Sensor / Trinket's Pin Out is this specific Sensor / Trinket's wiring in relation to the General Pin Out.
  • SIGNAL-A / SIGNAL-B are signals that could be digital input, digital output, analog input or analog output. Or special signals such as serial communication (SoftwareSerial, IIC (I2C), etc) or other special signals.
  • Not Connected refers to the Pin not being used for this particular Sensor / Trinket.
  • Read more about the hub module.

About

Specification

  • Sensor voltage
    • 3.3V~5V working voltage
  • Size of the sensor
    • Size of the board: 23.5mm*13mm
    • 1.27mm-spacing 4Pin interface connected with sensorhub.
    • CAD drawing of the sensor: File:Sensor CAD.zip
  • Function description
    • The static signal of the sensor is HIGH. After being pressed, the signal changes into LOW.
  • Connection
    • This sensor can be connected to the following interfaces of the core: D2~D13,A0~A7

Document

  • Schematic diagram:
  • Main sensors:

Usage

Basic Functionality

The Crash Sensor is a simple Single Pole Single Throw Switch (SPST). When the sensor is not press, the electrical path through it is "open" (electrons cannot flow through it). When the sensor is pressed, the electrical path through it is "closed" (electrons can flow through it). It is an input module which produces a HIGH or LOW voltage depending if pressed or not. A Core module can read the voltage value and determine the state of the Crash Sensor.

Crash Sensor State Table
State Voltage Level
Sensor is not pressed HIGH
Sensor is pressed LOW

Programming

Introduction

The Crash Sensor is used as a simple input pin. Therefore, the pinMode and digitalRead functions will be used.

Key Functions

  • Required Libraries: None
  • Key Functions:
    • pinMode(pin_number, pin_mode) - sets the mode for the pin
      • pin_number - is the pin number that the sensor is connected to
      • pin_mode - is the mode to set the pin to. Either INPUT or OUTPUT
    • digitalRead(pin_number) - Reads the value of the pin
      • pin_number - is the pin number that the sensor is connected to

Example

This is a simple example which outputs the state of the Crash Sensor to the serial port terminal.

Note: Important lines of code are highlighted.

//Define the pin the sensor is connected to
const int CRASH_SENSOR_PIN = 6;

void setup(){
  // put your setup code here, to run once:

  //Initial serial communication port at 9600 baud
  Serial.begin(9600);

  //Configure the pin into input mode
  pinMode(CRASH_SENSOR_PIN, INPUT);
}

void loop(){
  // put your main code here, to run repeatedly:

  //Perform a digital read and store the value into pin_state variable
  int pin_state = digitalRead(CRASH_SENSOR_PIN);

  //Check if the sensor's state is HIGH (not pressed)
  if(pin_state == HIGH){
    Serial.println("Crash sensor is not pressed!");
  }
  //Check if the sensor's state is LOW (pressed)
  else if(pin_state == LOW){
    Serial.println("Crash sensor is pressed!");
  }
  else{}

  //delay 100ms between loops
  delay(100);
}

Copy and paste the code above to the Arduino IDE or

Download the above example: n/a

  • Open the Serial Monitor (magnifier glass on top right) and set 9600 baud. This will display the serial output.

Program Download

Programming

  • Follow the Software Getting Started Guide.
  • Select the Board, Processor and Port.
  • Click [File]->[Open], browse to the project program address, and click "CrashTest.ino" to open the program.
  • After confirming all these items are correct, click "→" to download the program to the development board.

Hardware Setup

  • Referring to the following diagram, connect the Sensor-Crash to digital port D6 of Microduino-Sensorhub.


Microduino-sensorhub Crash.JPG


Result

  • After download, open the serial monitor.
  • The static sensor signal is HIGH. After being pressed, it changes into LOW.

Application

  • Key switch
  • Limit switch

Projects

History

Gallery

File:MicroduinoCrash-F.JPG
mCookie-Crash-Front
File:Microduino-Crash-b.JPG
mCookie-Crash-Back
Retrieved from "https://wiki.microduinoinc.com/index.php?title=Sensor-Crash&oldid=21717"