The 8 Best Drones to Buy in 2017

Drones have literally taken off in the last few years. But when it comes to buying one, there's a lot to consider.

SONY Headphones

Explore our extensive range of noise cancelling headphones, including Bluetooth And wireless, designed to help you enjoy your favorite music on the go.

Nexus & Google Pixel!

An experience made by Google. Seamless glass-aluminum body With smooth surfaces and easy-to-grip curved edges. Unlock fast with Pixel Imprint. Vivid, cinematic display A brilliant AMOLED screen, with true blacks and 16.77 million colors. Battery lasts all day, charges fast. Get up to 7 hours of battery life in just 15 minutes.

Alienware

Alienware, with its industry leading innovation, manufactures the best gaming PCs that provide their users with immersive and exhilarating gaming experience.

The world’s first smartphone with a 4K HDR display

When you compare 4K HDR with ordinary screens, the difference is vividly clear Using Sony´s Bravia TV technology, the Xperia XZ Premium plays 4K HDR content that’s so clear and lifelike, it takes your breath away. Watch the video to learn more about the immersive experience of this breakthrough technology.

Scripts


Build Your Amazon Alexa - Artificial Intelligence



Building a DIY Amazon Echo is super easy. The entire system is obviously for DIY fans but because it’s completely open source you can build out based on the base offering. It’s a surprisingly cool piece of kit and I, for one, welcome our voice activated Raspberry Pi-powered robotic overlords.

Refrence: 



https://github.com/alexa/alexa-avs-sample-app/
https://www.raspberrypi.org/blog/amazon-echo-homebrew-version/
http://lifehacker.com/how-to-build-your-own-amazon-echo-with-a-raspberry-pi-1787726931/


Video Tutorial:



This is what we made:







Make Obstacle Avoiding Robot using Arduino



  • Tutorial On Arduino Robot

    By: Utsav Sapkota
    Easy
    Arduino uno
    Sharp GP2D12
    Plastic gear motors
    Arduino
    4AA batteries9V PP3 battery

Need to get started with robotics ? Here's a step by step tutorial on how to make your first robot using arduino, an open source development platform.
P.S :The method used for chassis construction is just an example and a quick way for making a robot.You can use any design for the robot and also any materials for mounting the parts.Your imagination is the limit.
Now lets get started

Materials needed


1 x Arduino uno/duemilanove.

The Arduino Uno is a microcontroller board based on the ATmega328.

1 x Standard servo

Servos are basically Dc motors with position feedback that means you can tell the microcontroller through your code to move the servo to the desired position.In arduino a standard servo can be moved between 0 to 180 degree and 90 is the servo center(makes sense).Most of the hobby servos run happily between 4.8V to 6V.Supplying more than 6V may damage your servo. 
Servo has three wires i.e.Brown,Red,Yellow or the color maybe Black,Red,White.
Brown or black wire is to be connected to ground of the microcontroller.
Red wire is to be connected to Vcc(4.8V to 6V).
Yellow or white wire is to be connected to the digital output of the microcontroller and is called signal wire.

1 x Breadboard

Half sized breadboard is enough for this robot

Gauge wires or male to male jumper wires

For making connections on the breadboard you will need either gauge wire or  male to male jumper wires.
Your best deal would be gauge wire as it is available in local electronics/hobby shop. Male to male jumper wires are sometimes hard to find.

1 x L293D motor driver

L293D is a 16 pin chip and is a popular motor driver which can be used for small motors that have low output current.

2 X Plastic gear motors

Plastic gear motors are very lightweight,small in size and easy to mount.The motors are available in many RPM(revolutions per minute).You can buy the motor between 60 to 100 RPM for this robot.The lower the RPM ,the greater will be the torque(doesn't matter much for this robot).

2 x Wheels compatible with plastic gear motors 

You will get two screws with these wheels.Those two screws are used for attaching the wheels to the plastic gear motors.

 

1 x Castor wheel

 

1 X Sharp GP2D12 analog distance sensor.


The sensor consists of two eyes.One eye sends the infrared light and the other eye sees the reflection of that infrared light and measures the distance which is then sent to the microcontroller through analog input to perform further operations based on the distance(the operations should be defined in the code).
It is possible that you may not get GP2D12 model.Another option is Sharp GP2Y0A02YK.
The only difference between both the model is the range of distance measurement.
GP2D12 measures distance from 10cm to 80 cm.
GP2Y0A02YK measures distance from 20cm to 150cm.
There is also GP2D120 (i think it is discontinued) which measure distance from 4cm to 30cm
Make sure you get a JST 3-pin connector with these sensors for easy interfacing.
There are three wires coming from the sensor.i.e.Red,Black adn White or it can be Red,Brown and Yellow.
Red is connected to 5V of arduino.
Black or brown to Ground of arduino.
White or yellow to analog input pin of arduino i.e. in this case to analog pin 0.

Batteries

Arduino itself needs 9V(recommended).So it is better to use two different battery packs.
1 x 9V PP3 battery for arduino and 4 AA batteries i.e. 6V for motors and servo.
Make sure you buy good quality batteries like Duracell or so.

1 x 4 AA Battery Holder


2 x Battery connector

One battery connector should have a DC plug at the end so that it can be directly plugged in to the dc jack of arduino.The Dc plug can be bought at any local electronics shop easily.

1 x Acrylic sheet

This acrylic sheet will be used as the robot base.It is not necessary that you have to use a acrylic sheet.You can use plywood,aluminium,etc.But try to use acrylic as it is easy to cut.Use a hack - saw to cut the acrylic plate.
I used a big acrylic sheet for the robot base because of the breadboard i.e for ease of placing parts.

1 x USB cord

The sketch(code) will be downloaded to the arduino with this USB cord from the PC.

1 x double sided tape

We wont be using any screws or nuts for mounting the components.We will just stick the components on the acrylic plate using double sided tape.

Soldering Iron

A standard soldering iron

So got all the materials ? Now lets start with the robot
First solder the wires to the motor leads.In my case,i have cut the male to male jumpers in half and soldered them to the motor leads.It helps in easy connections on the breadboard.


Now mount the wheels to the motor shaft with the help of screw that you got with the wheels.

After that mount the castor wheel on the bottom front and center(roughly) of the robot using double sided tape.The castor wheel usually comes with holes in it for easy mounting using small nuts and bolts but if you dont want to drill holes on the acrylic sheet(robot base) then you can simply stick it with double sided tape as i did.

Now place the two motors on the acrylic sheet with the help of double sided tape as shown in the below image.It would be better if you add some superglue or hotglue as the double sided tape sometimes may not be able to handle the robot weight.Another option would be to use clamps which are available on hobby webshops but again you will have to drill holes for that.I applied hot glue for mounting the motors
The distance between the front castor wheel and the rear wheels should be as less as possible.

Place a servo in the front using double sided tape.The servo should come above(roughly) the castor wheel.
The front of the robot will be  where servo is.

Place arduino and breadboard on the base as shown in below image(use double sided tape).

Okay  now place a 9V battery with the connector(with dc plug) and 4 AA batteries with the connector(without the dc plug) on the robot base.

The sensor will be on the servo but dont mount the sensor yet. Because before mounting the sensor on the servo,the servo should be in its center position i.e . 90

Now comes the most important part of the robot building.
Thoroughly view the circuit and make connections accordingly. After making the connections check twice or maybe thrice before powering the robot otherwise you may damage any component if there are any mistakes in the connection.





High resolution image of the circuit can be found here


The power distribution in this circuit is as follows:
The sensor and both the enable pins of L293D motor driver are powered through 5V regulated supply from the arduino board.The arduino uses 9V power and regulates it to 5V with the help of onboard voltage regulator.
The motors and servo are powered by 6V(4 AA batteries).

From the circuit:
The signal wire(white or yellow) of the sharp sensor is connected to analog pin 0 of the arduino,Vcc(red) to 5V and ground(black or brown) to ground of arduino.Color of the wires may vary.
The signal wire(white or yellow) of servo is connected to digital pin 8 of arduino,Vcc(red) to 6V and ground(black or brown) to ground of arduino.(the ground of the 6V battery pack and arduino should be combined).Color of the wires may vary.
The motors are driven by digital pins 4,5,6 and 7 and are powered by 6V.

Programming

The first thing you need to do is install arduino IDE and setup your arduino.
The arduino IDE can be downloaded from here and the step by step instructions on how to connect your arduino board to the computer can be found here
Okay, so you got your arduino board ready ? Now lets start with the programming.
Remember we didn't mount the sensor on the servo yet.First we will do that.
Make sure you have connected both the power supply as per the circuit diagram.
Open your arduino IDE and copy paste the below code and then click on upload button and then you should get a message "Done uploading".

#include <Servo.h>    // includes the servo library
Servo myservo;                                 // creates a servo object
 
void setup()
{
  myservo.attach(8);                       // attaches the servo to digital pin 8
}
void loop()
{
  myservo.write(90);                     // moves the servo to 90 degree.
  delay(700);                               // wait for the servo to finish its rotation
}

The above code will move the servo to center position i.e. 90.Now mount the sensor facing forward on the servo horn using clamp or double sided tape.
After the sensor is mounted ,you can now play with your servo by moving it left or right by using values between 0 and 180 instead of 90.
Now type in or copy paste this code.

int sensorpin = 0;                 // analog pin used to connect the sharp sensor
int val = 0;                 // variable to store the values from sensor(initially zero)

void setup()
{
  Serial.begin(9600);               // starts the serial monitor
}
 
void loop()
{
  val = analogRead(sensorpin);       // reads the value of the sharp sensor
  Serial.println(val);               // prints the value of the sensor to the serial monitor
}

This code is for the sharp analog sensor.After succesfully uploading this code open the serial monitor in arduino IDE and you will see some values changing rapidly.Yes those are the readings(can say distance) coming from the sensor.
Keep your hand or anything infront of the sensor and you  see the change in the readings on the serial monitor.The analog values are in the range of 0 to 1023.
IMPORTANT : Lower the analog sensor value greater is the distance and vice versa.

Now making the motors rotate.Copy paste or type the below code in the arduino IDE.

int motor_pin1 = 4;                 //define the pins to which motor wires are connected
int motor_pin2 = 5;
void setup ()
{
  pinMode(motor_pin1,OUTPUT);            // set the motor pins as output
  pinMode(motor_pin2,OUTPUT);
}

void loop()
{
  digitalWrite(motor_pin1,HIGH);
  digitalWrite(motor_pin2,LOW);
}

This will make one of your motor turn in one direction.The direction can be forward or backward.
If it turns backward then use this code and your motor will turn forward.

int motor_pin1 = 4;             //define the pins to which motor wires are connected
int motor_pin2 = 5;
void setup ()
{
  pinMode(motor_pin1,OUTPUT);           // set the motor pins as output
  pinMode(motor_pin2,OUTPUT);
}

void loop()
{
  digitalWrite(motor_pin1,LOW);
  digitalWrite(motor_pin2,HIGH);
}

Note in this code we used LOW for motor_pin1 and HIGH for motor_pin2 i.e opposite to the previous code.
Hence the motor moves in opposite direction.
For the second motor, type or copy paste this code in the arduino IDE

int motor_pin3 = 6;                  //define the pins to which motor wires are connected
int motor_pin4 = 7;

void setup ()
{
  pinMode(motor_pin3,OUTPUT);                   // set the motor pins as output
  pinMode(motor_pin4,OUTPUT);
}

void loop()
{
  digitalWrite(motor_pin3,HIGH);
  digitalWrite(motor_pin4,LOW);
}

This will turn the  second motor in one direction.It can be forward or backward.
If it is moving backwards then use the same logic as for the previous motor to move the second motor forward.
For stopping all the motors make all the motor pins LOW.
Make sure you write down the combinations for forward and backward of each motor somewhere as it will be needed in the final code.

You might have a question in your mind that how will the robot turn left or right.
Heres the answer : We will be using skid steering method for turning the robot.In this method ,the robot skids while turning and hence the name skid steering.
It goes like this
For turning the robot to left:The right motor rotates forward and the left motor rotates backwards.
For turning the robot to right:The left motor rotates forward and the right motor rotates backwards.
For moving forward: Both the motors rotates forward.
For moving backward: Both the motors rotates backward.

Completed robot! I have uploaded the video. Do watch.

And here is a simple code for avoiding obtacles. Just copy and paste this code in the arduino IDE and click on upload and your robot is ALIVE !!

#include <Servo.h>                                  //includes the servo library

int motor_pin1 = 4;
int motor_pin2 = 5;
int motor_pin3 = 6;
int motor_pin4 = 7;
int servopin = 8;
int sensorpin = 0;
int dist = 0;
int leftdist = 0;
int rightdist = 0;
int object = 500;             //distance at which the robot should look for another route                           

Servo myservo;

void setup ()
{
  pinMode(motor_pin1,OUTPUT);
  pinMode(motor_pin2,OUTPUT);
  pinMode(motor_pin3,OUTPUT);
  pinMode(motor_pin4,OUTPUT);
  myservo.attach(servopin);
  myservo.write(90);
  delay(700);
}
void loop()
{
  dist = analogRead(sensorpin);               //reads the sensor
 
  if(dist < object) {                         //if distance is less than 550
   forward();                                  //then move forward
  }
  if(dist >= object) {               //if distance is greater than or equal to 550
    findroute();
  }
}
 
void forward() {                            // use combination which works for you
   digitalWrite(motor_pin1,HIGH);
   digitalWrite(motor_pin2,LOW);
   digitalWrite(motor_pin3,HIGH);
   digitalWrite(motor_pin4,LOW);
   return;
 }
 
void findroute() {
  halt();                                             // stop
  backward();                                       //go backwards
  lookleft();                                      //go to subroutine lookleft
  lookright();                                   //go to subroutine lookright
                                      
  if ( leftdist < rightdist )
  {
    turnleft();
  }
 else
 {
   turnright ();
 }
}

void backward() {
  digitalWrite(motor_pin1,LOW);
  digitalWrite(motor_pin2,HIGH);
  digitalWrite(motor_pin3,LOW);
  digitalWrite(motor_pin4,HIGH);
  delay(500);
  halt();
  return;
}

void halt () {
  digitalWrite(motor_pin1,LOW);
  digitalWrite(motor_pin2,LOW);
  digitalWrite(motor_pin3,LOW);
  digitalWrite(motor_pin4,LOW);
  delay(500);                          //wait after stopping
  return;
}
 
void lookleft() {
  myservo.write(150);
  delay(700);                                //wait for the servo to get there
  leftdist = analogRead(sensorpin);
  myservo.write(90);
  delay(700);                                 //wait for the servo to get there
  return;
}

void lookright () {
  myservo.write(30);
  delay(700);                           //wait for the servo to get there
  rightdist = analogRead(sensorpin);
  myservo.write(90);                                  
  delay(700);                        //wait for the servo to get there
  return;
}

void turnleft () {
  digitalWrite(motor_pin1,HIGH);       //use the combination which works for you
  digitalWrite(motor_pin2,LOW);      //right motor rotates forward and left motor backward
  digitalWrite(motor_pin3,LOW);
  digitalWrite(motor_pin4,HIGH);
  delay(1000);                     // wait for the robot to make the turn
  halt();
  return;
}

void turnright () {
  digitalWrite(motor_pin1,LOW);       //use the combination which works for you
  digitalWrite(motor_pin2,HIGH);    //left motor rotates forward and right motor backward
  digitalWrite(motor_pin3,HIGH);
  digitalWrite(motor_pin4,LOW);
  delay(1000);                              // wait for the robot to make the turn
  halt();
  return;
}

Here's what this code will do.
The robot will move forward if the sensor has reading less than 500.It means that the robot will consider that it has no object in front of it if sensor reading is less than 500.You can set this as per your needs.
If the sensor gets reading greater than or equal to 500 then it will look for another way in the following steps.
First the robot will stop completely, move little backwards, again the robot stops, the servo will move left and sensor will take reading and after that the servo will move right and the sensor will again take reading.The left and right readings are compared.The robot turns towards the direction where the reading is more less(lesser the analog reading greater is the distance) and stops.Now again the same code or cycle repeats till you switch off the  power supply.
Congrats you have built your first robot.
Enjoy !!

Important points to remember:
  1. If you find that the micro-controller is resetting when the motors start rotating,connect a 10uF capacitor across the 6v power supply.The long lead of the capacitor is +ve and the short lead is -ve.
  2. The delay used in the turnleft, turnright,halt subroutines in  the code should be according to the size of your robot.Smaller the size, smaller should be the delay and greater the size ,greater should be the delay.
  3. In this code, the left of the servo is on the degree greater than 90 and right on the degree less than 90.For you it may be opposite as it depends on how you placed the servo.Adjust the servo degrees accordingly
  4. Always combine the ground of arduino,servo and external battery.
  5. The distance between the front castor wheel and the rear wheels should be as less as possible.Reduce the distance if you find that your robot is not turning properly.
  6. Remember to solder male header pins or gauge wires at the end of the component cables so that they can be easily stacked on the breadboard.
  7. Please check the connections thoroughly before powering the robot.
  8. Do not supply more than 6V for the plastic gear motors and servo.
  9. The sensor should be powered with not more than 5V
if you have any problems or questions regarding this robot then please post it in the comment.

Capturing WPA Passwords by Targeting Users with a Fluxion Attack



With tools such as Reaver becoming less and less viable options for penetration testers as ISPs replace vulnerable routers, there becomes fewer certainties about which tools will work against a particular target. If you don't have time to crack the WPA password, or it is unusually strong, it can be hard to figure out your next step. Luckily, nearly all systems have one common vulnerability you can count on—users!
Social engineering goes beyond hardware and attacks the most vulnerable part of any system, and one tool that makes this super easy is Fluxion. Even the most antisocial hacker can hide behind a well-crafted login page, and Fluxion automates the process of creating a fake access point to capture WPA passwords.

Picking the Weakest Links to Attack

Users are almost always the weakest link of a system, and so attacks against them are often preferred because they are cheap and effective. Hardware concerns can often be ignored if the users are sufficiently inexperienced with technology to fall for a social engineering attack. While social engineering attacks may raise flags within more tech-savvy organizations, phishing and spoofing attacks against users are the tool of first choice for both nation states and criminal hackers.
One of the most vulnerable targets to this kind of attack is a small- or medium-sized business focused on an industry other than technology. These businesses usually have many vulnerable or unpatched systems with default credentials that are easy to exploit over their wireless network, and are not likely to know what an attack looks like.

How Fluxion Works Its Magic

Fluxion is the future—a blend of technical and social engineering automation that trick a user into handing over the Wi-Fi password in a matter of keystrokes. Specifically, it's a social engineering framework using an evil twin access point (AP), integrated jamming, and handshake capture functions to ignore hardware and focus on the "wetware." Tools such as Wifiphisher execute similar attacks, but lack the ability to verify the WPA passwords supplied.

Fluxion evolved from an advanced social engineering attack named Lindset, where the original tool was written mostly in Spanish and suffered from a number of bugs. Fluxion is a rewritten attack to trick inexperienced users into divulging the password/passphrase of the network.
Fluxion is a unique tool in its use of a WPA handshake to not only control the behavior of the login page, but the behavior of the entire script. It jams the original network and creates a clone with the same name, enticing the disconnected user to join. This presents a fake login page indicating the router needs to restart or load firmware and requests the network password to proceed. Simple as that.
The tool uses a captured handshake to check the password entered and continues to jam the target AP until the correct password is entered. Fluxion uses Aircrack-ng to verify the results live as they are entered, and a successful result means the password is ours.
Checking WPA password capture confirming through Aircrack-ng.
Tactically, this attack is only as good as the fake login screen. Many have been added to Fluxion since it was created, and it is possible to create other screens with some research. In general, running this attack with default login screens will immediately call attention from a more experienced user or tech-savvy organization. This attack is most effective when targeted at whoever is the oldest or least tech-savvy in an organization. Sensitive APs with intrusion detection systems may detect and attempt to defend against this attack by blocking your IP in response to the integrated jamming.

System Compatibility & Requirements

Fluxion works on Kali Linux. Just make sure that you are fully updated, or that you're running Kali Rolling, to ensure system and dependencies are current. You may run it on your dedicated Kali install, in a virtual machine. If you're looking for a cheap, handy platform to get started on, check out our Kali Linux Raspberry Pi build using the $35 Raspberry Pi.
A perfect beginner Wi-Fi hacking kit.

This tool will not work over SSH since it relies on opening other windows.
For this to work, we'll need to use a compatible wireless network adapter. Check out our 2017 list of Kali Linux and Backtrack compatible wireless network adapters in the link above, or you can grab our most popular adapter for beginners here.
Check out list of Kali Linux compatible wireless network adapters.
Make sure that your wireless adapter capable of monitor mode is plugged in and recognized by Kali and seen when iwconfig or ifconfig is entered.

How to Capture WPA Passwords with Fluxion

Our goal in this article will be to target an organization via its WPA encrypted Wi-Fi connection. We will launch an attack against users attached to the access point "Probe," capture a handshake, set up a cloned (evil twin) AP, jam the target AP, set up a fake login page, and confirm the captured password against the handshake.

Step 1Install Fluxion

To get Fluxion running on our Kali Linux system, clone the git repository with:
Note: The developer of Fluxion shut down the product recently, but you can get an older version of it using the command above instead (not the URL you see in the image below).
Then, let's check for missing dependencies by navigating to the folder and starting it up for the first time.
cd fluxion
sudo ./fluxion
You'll likely see the following, where some dependencies will be needed.
Run the installer to fetch dependencies and set your board to green with:
sudo ./Installer.sh
A window will open to handle installing the missing packages. Be patient and let it finish installing dependencies.
After all the dependencies are met, our board is green and we can proceed to the attack interface. Run the Fluxion command again with sudo ./fluxion to get hacking.

Step 2Scan Wi-Fi Hotspots

The first option is to select the language. Select your language by typing the number next to it and press enter to proceed to the target identification stage. Then, if the channel of the network you wish to attack is known, you may enter 2 to narrow the scan to the desired channel. Otherwise, select 1 to scan all channels and allow the scan to collect wireless data for at least 20 seconds.
A window will open while this occurs. Press CTRL+C to stop the capture process whenever you spot the wireless network that you want. It is important to let the attack run for at least 30 seconds to reasonably verify if a client is connected to the network.

Step 3Choose Your Target AP

Select a target with active clients for the attack to run on by entering the number next to it. Unless you intend to wait for a client to connect (possibly for a long time), this attack will not work on a network without any clients. Without anyone connected to the network, who would we trick into giving us the password?

Step 4Select Your Attack

Once you've typed the number of the target network, press enter to load the network profile into the attack selector. For our purpose, we will use option 1 to make a "FakeAP" using Hostapd. This will create a fake hotspot using the captured information to clone the target access point. Type 1 and press enter.

Step 5Get a Handshake

In order to verify that the password we receive is working, we will check it against a captured handshake. If we have a handshake, we can enter it at the next screen. If not, we can press enter to force the network to provide a handshake in the next step.
Using the Aircrack-ng method by selecting option 1 ("aircrack-ng"), Fluxion will send deauthentication packets to the target AP as the client and listen in on the resulting WPA handshake. When you see the handshake appear, as it does in the top right of the screenshot below, you have captured the handshake. Type 1 (for "Check handshake") and enter to load the handshake into our attack configuration.

Step 6Create the Fake Login Page

Select option 1, "Web Interface," to use the social engineering tool.
You will be presented with a menu of different fake login pages you can present to the user. These are customizable with some work, but should match the device and language. The defaults should be tested before use, as some are not very convincing.
I chose an English language Netgear attack. This is the final step to arm the attack; At this point, you are ready to fire, so press enter to launch the attack. The attack spawns multiple windows to create a cloned version of their wireless network while simultaneously jamming the normal access point, enticing the user to join the identically named, but unencrypted, network.

Step 7Capture the Password

The user is directed to a fake login page, which is either convincing or not, depending on which you chose.
Perhaps not the most elegant deception, but these files are configurable.
Entering the wrong password will fail the handshake verification, and the user is prompted to try again. Upon entering the correct password, Aircrack-ng verifies and saves the password to a text file while displaying it on the screen. The user is directed to a "thank you" screen as the jamming ceases and the fake access point shuts down.
You can verify your success by checking the readout of the Aircrack-ng screen.
Key captured and verified. The network is ours!
Congratulations, you've succeeded in obtaining and verifying a password, supplied by targeting the "wetware." We've tricked a user into entering the password rather than relying on a preexisting flaw with the security.

Warning: This Technique Could Be Illegal Without Permission

Legally, Fluxion combines scanning, cloning, creating a fake AP, creating a phishing login screen, and using the Aircrack-ng script to obtain and crack WPA handshakes. As such, it leaves signatures in router logs consistent with using these techniques. Most of these practices are illegal and unwelcome on any system you don't have permission to audit.