Showing posts with label library. Show all posts
Showing posts with label library. Show all posts

Thursday, December 3, 2015

AltSoftSerial Library for Arduino Boards

AltSoftSerial is a software emulated serial library for Arduino boards, using hardware timers for improved compatibility.


AltSoftSerial is particularly useful when simultaneous data flows are needed. It is capable of running up to 57600 baud on 16 MHz AVR with up to 9 µs interrupt latency from other libraries. Slower baud rates are recommended when other code may delay AltSoftSerial's interrupt response by more than 9 µs.

AltSoftSerial Library can be installed to Arduino IDE using Library Manager.

Monday, October 5, 2015

Arduino Uno + RFID-RC522, MFRC522 library example DumpInfo




This post show how Arduino Uno + RFID-RC522 (RFID reader) to dump info of RFID key and RFID card, using Arduino RFID Library for MFRC522.

Arduino library for MFRC522 and other RFID RC522 based modules (https://github.com/miguelbalboa/rfid) read and write different types of Radio-Frequency IDentification (RFID) cards on your Arduino using a RC522 based reader connected via the Serial Peripheral Interface (SPI) interface.

Install MFRC522 library to Arduino IDE:

You can download ZIP file from the library web page, and it to Arduino library, read the video below. After library added, it will be in the folder your_Documents\Arduino\libraries\,


and fritzing parts is in your_Documents\Arduino\libraries\rfid-master\doc\fritzing\.


Connect Arduino Uno and RFID-RF522 module:


In Arduino IDE, Open Example of DumpInfo in MFRC522:



/*
 * ----------------------------------------------------------------------------
 * This is a MFRC522 library example; see https://github.com/miguelbalboa/rfid
 * for further details and other examples.
 * 
 * NOTE: The library file MFRC522.h has a lot of useful info. Please read it.
 * 
 * Released into the public domain.
 * ----------------------------------------------------------------------------
 * Example sketch/program showing how to read data from a PICC (that is: a RFID
 * Tag or Card) using a MFRC522 based RFID Reader on the Arduino SPI interface.
 * 
 * When the Arduino and the MFRC522 module are connected (see the pin layout
 * below), load this sketch into Arduino IDE then verify/compile and upload it.
 * To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M).
 * When you present a PICC (that is: a RFID Tag or Card) at reading distance
 * of the MFRC522 Reader/PCD, the serial output will show the ID/UID, type and
 * any data blocks it can read. Note: you may see "Timeout in communication"
 * messages when removing the PICC from reading distance too early.
 * 
 * If your reader supports it, this sketch/program will read all the PICCs
 * presented (that is: multiple tag reading). So if you stack two or more
 * PICCs on top of each other and present them to the reader, it will first
 * output all details of the first and then the next PICC. Note that this
 * may take some time as all data blocks are dumped, so keep the PICCs at
 * reading distance until complete.
 * 
 * Typical pin layout used:
 * -----------------------------------------------------------------------------------------
 *             MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
 *             Reader/PCD   Uno           Mega      Nano v3    Leonardo/Micro   Pro Micro
 * Signal      Pin          Pin           Pin       Pin        Pin              Pin
 * -----------------------------------------------------------------------------------------
 * RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
 * SPI SS      SDA(SS)      10            53        D10        10               10
 * SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
 * SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
 * SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15
 */

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN     9       // 
#define SS_PIN      10      //

MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance

void setup() {
    Serial.begin(9600);     // Initialize serial communications with the PC
    while (!Serial);        // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
    SPI.begin();            // Init SPI bus
    mfrc522.PCD_Init();     // Init MFRC522
    ShowReaderDetails();    // Show details of PCD - MFRC522 Card Reader details
    Serial.println(F("Scan PICC to see UID, type, and data blocks..."));
}

void loop() {
    // Look for new cards
    if ( ! mfrc522.PICC_IsNewCardPresent()) {
        return;
    }

    // Select one of the cards
    if ( ! mfrc522.PICC_ReadCardSerial()) {
        return;
    }

    // Dump debug info about the card; PICC_HaltA() is automatically called
    mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}

void ShowReaderDetails() {
    // Get the MFRC522 software version
    byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
    Serial.print(F("MFRC522 Software Version: 0x"));
    Serial.print(v, HEX);
    if (v == 0x91)
        Serial.print(F(" = v1.0"));
    else if (v == 0x92)
        Serial.print(F(" = v2.0"));
    else
        Serial.print(F(" (unknown)"));
    Serial.println("");
    // When 0x00 or 0xFF is returned, communication probably failed
    if ((v == 0x00) || (v == 0xFF)) {
        Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?"));
    }
}



- Similarly example run on Android: Android NFC: readBlock() for MifareClassic, to dump data in RFID tag
Step-by-step to make MFRC522-python work on Raspberry Pi 2/raspbian Jessie, read RFID tags using RFID Reader, RFID-RC522.
Raspberry Pi 2 + MFRC522-python - Dump RFID Tag data using mxgxw/MFRC522-python

Tuesday, November 4, 2014

Use jSSC (Java Simple Serial Connector) on Windows 8.1

jSSC (Java Simple Serial Connector) is a library for working with serial ports from Java. jSSC support Win32(Win98-Win8), Win64, Linux(x86, x86-64, ARM), Solaris(x86, x86-64), Mac OS X 10.5 and higher(x86, x86-64, PPC.

My old post show how to Install and test java-simple-serial-connector with Arduino, running on Ubuntu and Netbeans IDE.

This video show how to use jSSC on Windows 8.1/Nerbeans IDE. Basically it is the same, with different COM port assignment.


The Java code is listed here. It send a message to Arduino Esplora via USB Serial port, COM3, using jSSC library.

package java_testjssc;
 
import jssc.SerialPort;
import jssc.SerialPortException;
 
public class Java_testjSSC {
 
    public static void main(String[] args) {
        SerialPort serialPort = new SerialPort("COM3");
        try {
            System.out.println("Port opened: " + serialPort.openPort());
            System.out.println("Params setted: " 
                + serialPort.setParams(9600, 8, 1, 0));
            System.out.println("\"Hello World!!!\" successfully writen to port: " 
                + serialPort.writeBytes("Hello World!!!".getBytes()));
            System.out.println("Port closed: " 
                + serialPort.closePort());
        }
        catch (SerialPortException ex){
            System.out.println(ex);
        }
    }
     
}

The Arduino side code, refer to the post "Serial communication between Arduino Esplora and PC".



Saturday, April 12, 2014

Example of using SimpleTimer Library for Arduino



This example show how to use the SimpleTimer Library for Arduino on Arduino Due to trigger a callback function in every 500ms, to toggle LED and send somethinf to Serial port. SimpleTimer is simple library to launch timed actions. Before you can use the library, you have to install it in your sketchbook/libraries folder, read Installation.

#include <SimpleTimer.h>

int led = 13;

SimpleTimer simpleTimer;
boolean ledon;
unsigned long lasttime;
unsigned long now;

void setup() {
    pinMode(led, OUTPUT);
    Serial.begin(9600);
    simpleTimer.setInterval(500, callback_SimpleTimer);
    lasttime = millis();
}

void loop() {
    simpleTimer.run();
}

void callback_SimpleTimer(){
    now = millis();
    digitalWrite(led, ledon = !ledon);
    Serial.println(now - lasttime);
    lasttime = now;
}

Monday, March 3, 2014

Install and test java-simple-serial-connector with Arduino, on Ubuntu

As the new Arduino 1.5.6 BETA replaced RXTX library with JSSC (https://code.google.com/p/java-simple-serial-connector/), this video show how to install JSSC and setup on Netbeans, build a Hello World run on Ubuntu Linux, to send data to Arduino Esplora board. Actually the setup steps and example code follow https://code.google.com/p/java-simple-serial-connector/wiki/jSSC_Start_Working.



In order to work on Ubuntu, modify the example code to change SerialPort to "/dev/ttyACM0".

package java_testjssc;

import jssc.SerialPort;
import jssc.SerialPortException;

public class Java_testjSSC {

    public static void main(String[] args) {
        SerialPort serialPort = new SerialPort("/dev/ttyACM0");
        try {
            System.out.println("Port opened: " + serialPort.openPort());
            System.out.println("Params setted: " + serialPort.setParams(9600, 8, 1, 0));
            System.out.println("\"Hello World!!!\" successfully writen to port: " + serialPort.writeBytes("Hello World!!!".getBytes()));
            System.out.println("Port closed: " + serialPort.closePort());
        }
        catch (SerialPortException ex){
            System.out.println(ex);
        }
    }
    
}

The Arduino side code, refer to the post "Serial communication between Arduino Esplora and PC".

Next: A simple Java application using java-simple-serial-connector library (jSSC) , with JavaFX user interface, send bytes to Arduino Esplora via USB.

Related: Use jSSC (Java Simple Serial Connector) on Windows 8.1

Friday, May 24, 2013

Arduino I2C Tutorials

I2C Communication: This Arduino tutorial covers using I2C to communicate with an EEPROM chip.



Arduino to Arduino I2C: Using I2C to communicate between two Arduinos.



Arduino Wire Library for I2C communication



The Wire Library allows developer to communicate with I2C / TWI devices. On the Arduino boards with the R3 layout (1.0 pinout), the SDA (data line) and SCL (clock line) are on the pin headers close to the AREF pin. The Arduino Due has two I2C / TWI interfaces SDA1 and SCL1 are near to the AREF pin and the additional one is on pins 20 and 21.

remark: TWI stands for Two Wire Interface and for most marts this bus is identical to I²C. The name TWI was introduced by Atmel and other companies to avoid conflicts with trademark issues related to I²C.

Thursday, March 28, 2013

Firmata: a generic communicating protocol between microcontrollers and host computer

Firmata is a generic protocol for communicating with microcontrollers from software on a host computer. It is intended to work with any host computer software package. Right now there is a matching object in a number of languages. It is easy to add objects for other software to use this protocol. Basically, this firmware establishes a protocol for talking to the Arduino from the host software. The aim is to allow people to completely control the Arduino from software on the host computer.

Firmata
Firmata

Remark: Currently Firmata library not included in Arduino IDE 1.5.1 yet ...

Link: