Google+
Showing posts with label creating. Show all posts
Showing posts with label creating. Show all posts

Wednesday, 2 April 2014

NFC Computer Unlocker


Quit pulling your hair out over incorrect passwords. Using an Arduino Leonardo and Adafruit's NFC shield, you can unlock your computer with an NFC card. The Arduino reads the NFC card's unique identifier and once it receives the correct one, it uses the Arduino Leonardo's keyboard emulation feature to type a password. 

Step 1: Parts Needed

You will need the following parts for this build:
Arduino Leonardo
Adafruit's NFC Shield
NFC Tag (included with shield)
A Small Piece of Hookup Wire
You will optionally need:
More NFC Tags (available from Adafruit)
Tools Needed:
Sharp Knife
Soldering Iron
Wire Cutters and Strippers
Computer
Micro USB Cable

Step 2: Hardware

You will need to solder the header pins to the shield and retrace the jumper for this project to work.
Step One:
Solder the header pins to the shield. The easiest way is to insert the header pins into the Arduino and place the shield on top of the header pins. Solder the header pins on the top of the shield.
Step Two:
Cut the jumper between the IRQ pin and Pin 2 using a sharp knife. We need to do this because the NFC shield doesn't communicate with the Arduino Leonardo at Pin 2.  Use a multimeter to check continuity between the two pins.
Step Three:
Strip about 1/2" of insulation off of each end of a small piece of wire. Then solder this wire between IRQ and pin 6 on the Arduino.
Once all of that is done, the NFC shield is ready to communicate with the Arduino.

Step 3: Software

The software that needs to be uploaded to the Arduino is below. Make sure that you have the Adafruit NFC Library installed. Learn more about that here.

#include <Wire.h>
#include <Adafruit_NFCShield_I2C.h>


#define IRQ 6 // this trace must be cut and rewired!
#define RESET 8

Adafruit_NFCShield_I2C nfc(IRQ, RESET);

//////////////////////////////////// SETUP

void setup() {
  // set up Serial library at 9600 bps
  Serial.begin(9600);

  // find Adafruit RFID/NFC shield
  nfc.begin();

  uint32_t versiondata = nfc.getFirmwareVersion();
  if (! versiondata) {
    Serial.print("Didn't find PN53x board");
    while (1); // halt
  }
  // Got ok data, print it out!
  Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX);
  Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC);
  Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);

  // configure board to read RFID tags
  nfc.SAMConfig();
Keyboard.begin(); //initiate the Keyboard
}

/////////////////////////////////// LOOP

unsigned digit = 0;

void loop() {
  uint8_t success;
  uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // Buffer to store the returned UID
  uint8_t uidLength; // Length of the UID (4 or 7 bytes depending on ISO14443A card type)

  // wait for RFID card to show up!
  Serial.println("Waiting for an ISO14443A Card ...");

  
  // Wait for an ISO14443A type cards (Mifare, etc.). When one is found
  // 'uid' will be populated with the UID, and uidLength will indicate
  // if the uid is 4 bytes (Mifare Classic) or 7 bytes (Mifare Ultralight)
  success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);

  uint32_t cardidentifier = 0;

  if (success) {
    // Found a card!

    Serial.print("Card detected #");
    // turn the four byte UID of a mifare classic into a single variable #
    cardidentifier = uid[3];
    cardidentifier <<= 8; cardidentifier |= uid[2];
    cardidentifier <<= 8; cardidentifier |= uid[1];
    cardidentifier <<= 8; cardidentifier |= uid[0];
    Serial.println(cardidentifier);


    if (cardidentifier == 606061173) {
      Keyboard.write('m');
      Keyboard.write('y');
       Keyboard.write('p');
        Keyboard.write('a');
         Keyboard.write('s');
          Keyboard.write('s');
           Keyboard.write('w');
            Keyboard.write('o');
             Keyboard.write('r');
              Keyboard.write('d');
              delay(5000); //makes sure the password isn't repeated
    }
  }
}


Once the code is uploaded, open the serial monitor set at 9600 baud. Place the NFC tag on the shield for a second and then remove it. The serial monitor should say, "Card detected #card number." Copy the unique card number and paste it in the cardidentifier == 606061173 statement in the code. The card number will replace 606061173. Then change the keyboard.write statements to spell out your password one letter at a time. Reupload the code and whenever the NFC tag is placed on the shield it will type your password for you. 

Step 4: 3D Printing

You can optionally 3D print an enclosure to house the Arduino and to mount it onto a desk. The .stl file is on this page. The two screw holes on the case allow a long screw to pass through. This is meant to be mounted underneath a desk. The NFC signal should work as long as the table is thinner than 5cm. 


Read More


Wednesday, 12 February 2014

Single digit numitron clock

Numitrons are neat display devices similar to nixie tubes but designed for much lower voltages. Numitrons are basically incandescent displays in which filaments create the segments.
They have a retro look that i liked so much. I bought 6x IV-9 russian numitrons in ebay, they were about 3$ each, they're pretty cheap!
At that time i didn't know what to do with them, but then i thought about a clock. Using software from a single LED display clock i made this impressive numitron clock.

Step 1: Program the PIC

The original purpose of the software was to drive a single common-anode LED display rather than a numitron, but either way works.
The software was modified to flash the digits so the HHMM LEDs wouldn't be necessary. Also the software was modified so if the tens of hours is 0 then it is not displayed.
Moreover, the software does not check the input values so entering the wrong time such as 67:85 would be accepted, but eventually the clock will start resetting the digits correctly.
The clock operates off a PIC 16F84A using a program written by David Tait (software is further down this page). The crystal oscillator for the clock is a 4MHz crystal.
I think another microcontroller such as PIC16F628A could also work fine.

Step 2: The circuit

After testing on the breadboard,  the clock works fine, with the current crystal the clock comes forward a minute each 3 days, with a precision one it can be solved, but it's good enough for me; because setting time is easy.
You can see the test video below and download the eagle schematic to modify it.

Since numitron displays are just complex bulbs, it could be a problem to drive them from the processor, but in this case, it's not a problem:
The PIC16F84A can source or sink 25mA per I/O pin.

But each port has a limit:

Maximum current sunk by PORTA-80 mA
Maximum current sourced by PORTA-50 mA

Maximum current sunk by PORTB-150 mA
Maximum current sourced by PORTB-100 mA

With IV-9/IV-16 each segment draws 20mA, but be careful if you choose another numitron!

Step 3: PCB design

The board measures about 4x3cm (1.6x1.2inches).
it could be way smaller with all components in smd version and onto a double-layer board; but the design i made is the easier/cheaper one.

The board i made the clock with was later modified and optimized.
I used 4 resistors for the HHMM LEDs when a common resistor would do the trick.
I also used a header jumper to switch on or off the numitron, but it turned out that the microcontroller sank the current through ''off'' pins, dimly lighting up some segments.

You can use the PDF to make the circuit with the toner transfer method (see http://www.instructables.com/id/PCB-making-guide/)
Or order it with the .BRD file.

Step 4: Populating the PCB

After drilling the holes and tinning the pads, it's time to populate The PCB.

You'll need the following components:
-PIC16F84A microcontroller (or compatible)
-18 pin DIL socket
-IV-9 or IV-16 numitron (or one of your choice, but check pinout!)
-4 LEDs (just check if they fit)
-4MHz crystal
-2x 470ohm 1206 SMD resistors
-1x 1K5 1206 SMD resistor
-2x male header, or the power input you want
-An SMD capacitor, just for filtering, no matter the value.

First solder the wire jumpers and the SMD components, then the rest. Do it as shown in the diagram (the .BRD file)
Solder just the socket without the PIC in!

If you're using IV-9 or IV-16 numitron, bend the leads as shown in the picture. If you use another numitron, see the datacheet and check if it is pin-compatible, if not, you can edit the PCB or bed the leads as needed.

Step 5: Ready to use

After plugging it, it should display 12:00, set the time by pressing the button when the digit you want to change  is being displayed.
If you press the button during power on, it will enter in test mode.

I can't wait to see how you've done.
If you have any problem or doubt, feel free t ask me.
If someone wants the clock in the video, i would accept 20$.

If you've liked this instructable, please vote me for the Supercharged, 123D Circuits and Spring's Coming contests.

Read More


Jar Lantern



The Jar Lantern is a contemporary take on the traditional gas lantern. It was inspired by seeing sunlight refract through my glass water bottle one afternoon, and thinking to myself that it was a bit like carrying a jar full of light. This brief moment of illumination sparked something in my mind that made me wonder how I could capture this experience more permanently. While trying to bottle light may be a fool's task, I could at least try to recreate the sense of magic I had briefly experienced. After mulling over various methods of accomplishing this, I decided to make a jar with an illuminated floating light bulb. The beauty of this seemingly impossible object is that the light bulb has no clear power source, yet it seems so natural and familiar. The Jar Lantern tends to leave people both taken and dumbfounded by its simplicity.

Step 1: Go Get Stuff

You will need:
(x1) Jar
(x1) CFL Bulb
(x1) Disposable camera
(x1) AA battery holder
(x1) Switch
(x1) Roll of magnet wire

Step 2: Open the Disposable Camera

Open up the disposable camera case. Be mindful not to rouch the large capacitor which could potentially give you a nice jolt.

Step 3: Cut Away the Capacitor and Flash

Discharge the capacitor by bridging the leads with a long screwdriver that you don't care much for. Be careful not to be touching the metal part of the screwdriver while doing this.
Also, cut the flash tube away from the circuit board.

Step 4: Hack a CFL

Use a pair of diagonal cutting pliers to make a hole in the plastic body of a CFL bulb.
Next, use this hole to insert a screwdriver and gently pry the the base apart from the glass tube.
Finally, unwind the CFL tube's wires from the posts on the circuit board.

Step 5: Bridge the Switch

Remove the push tab atop the flash charge switch.
Solder the switch's terminals together.

Step 6: Prep the CFL Bulb

Scrape the coating off the wires coming out of the CFL bulb using a razor blade.
Twist the wires together and tin them with solder.
Read More


Join Us

//go.ad2up.com/afu.php?id=25365

© Copyright 2012, Design by Lord HTML.
​