Posts | Comments

Planet Arduino

rubix cube solver

[Matt] recently learned both how to solve a Rubik’s cube and the basics of an Arduino. Putting the two together, he decided to try his hand at making an automatic Rubik’s Cube solver!

We’ve seen this done quite a few times using LEGO Mindstorms, but we’re much more impressed with [Matt's] clever use of popsicle sticks and mechanical linkages…. The device uses just two servos. One to rotate the base, and the second to flip the cube over.

He’s using an Arduino UNO (R3) with 2 Hitec HS-311 hobby servos, some popsicle sticks, hot glue, a paper towel roll, and a bit of plywood. He wrote the code to solve the cube himself, and has shared it on GitHub — but he didn’t stop there and decided to create a GUI to go with it using Python.

It’s not that fast, but it’ll solve a cube in about 20 minutes — stick around after the break to see it in action!


Filed under: Arduino Hacks

rubix cube solver

[Matt] recently learned both how to solve a Rubik’s cube and the basics of an Arduino. Putting the two together, he decided to try his hand at making an automatic Rubik’s Cube solver!

We’ve seen this done quite a few times using LEGO Mindstorms, but we’re much more impressed with [Matt's] clever use of popsicle sticks and mechanical linkages…. The device uses just two servos. One to rotate the base, and the second to flip the cube over.

He’s using an Arduino UNO (R3) with 2 Hitec HS-311 hobby servos, some popsicle sticks, hot glue, a paper towel roll, and a bit of plywood. He wrote the code to solve the cube himself, and has shared it on GitHub — but he didn’t stop there and decided to create a GUI to go with it using Python.

It’s not that fast, but it’ll solve a cube in about 20 minutes — stick around after the break to see it in action!


Filed under: Arduino Hacks

Bass Master 3000

We’ve all been there. You are having fun walking around the carnival when you suddenly find yourself walking past the carnival games. The people working the booths are taunting you, trying to get you to play their games. You know the truth, though. Those games are rigged. You don’t know how they do it. You just know that they do… somehow.

Now you can put your worries to rest and build your own carnival game! [John] built his own “Bass Master 3000” style carnival game and posted an Instructable so you can make one too.

The game is pretty straightforward. You have a giant fish-shaped target with a wide open mouth. You take hold of a small fishing reel with a rubber ball on the end. Your goal is to cast the ball out and hit the fish in its big mouth. If you hit the mouth, you get to hear a loud buzzer and see some flashing lights. The system also uses a webcam to take a candid photo of the winner. A computer screen shows all of the winners of the day.

The brain of the system is an Arduino Yún. The Yún is similar to an Uno but it also has some extra features. Some good examples are an Ethernet port, a wireless adapter, and an SD card slot. The mouth sensors are just two piezo elements. Each sensor is hooked up to the Arduino through a small trim pot. This allows you to dial in the sensitivity of each sensor. The lights and the buzzer are controlled via a relay, triggered by a 5V digital pin on the Arduino.

The Yún actually has a small on-board Linux computer that you can communicate with from inside the Arduino environment. This allows [John] to use the Yún to actually take photos directly from a web cam, store them on the local SD card, and display them on a local web server. The web server runs a simple script that displays a slide show of all of the photos stored on the card.

The final piece of the game is the physical target itself. The target is painted using acrylic paint onto a small tarp. The tarp is then attached to a square frame made from PVC pipe. The mouth of the fish is cut out of the tarp. A large piece of felt is then placed behind the hole with the piezo sensors attached. A short length of copper pipe helps to weigh down the bottom of the felt and keep it in place. The important thing is to make sure the felt isn’t touching the tarp. If it touches, it might be overly sensitive and trigger even when a player misses.

Now you know how to build your own Bass Master 3000 carnival game. Whether you rig the game or not is up to you. Also, be sure to check out a video of the system working below.


Filed under: Arduino Hacks

A SI5351 clock generator chip and an Arduino

If you’re dealing with RF, you’ll probably have the need to generate a variety of clock signals. Fortunately, [Jason] has applied his knowledge to build a SI5351 library for the Arduino and a breakout board for the chip.

The SI5351 is a programmable clock generator. It can output up to eight unique frequencies at 8 kHz to 133 MHz. This makes it a handy tool for building up RF projects. [Jason]‘s breakout board provides 3 isolated clock outputs on SMA connectors. A header connects to an Arduino, which provides power and control over I2C.

If you’re looking for an application, [Jason]‘s prototype single-sideband radio shows the chip in action. This radio uses two of the SI5351 clocks: one for the VFO and one for the BFO. This reduces the part count, and could make this design quite cheap.

The Arduino library is available on Github, and you can order a SI5351 breakout board from OSHPark.


Filed under: Arduino Hacks, radio hacks

Bonjour à tous,

J’ai reçu quelques capteurs intéressants, dont un capteur infrarouge (permettant par exemple de détecter une source de chaleur), on va donc reprendre un tuto avec ce capteur et un arduino (et un bonus en deuxième partie de tutoriel).

Le matériel

Pour ce tutoriel il nous faudra :

  • Un arduino (ici un Uno)
  • Un capteur HC SR-501
  • 3 fils
  • Une led 5mm

Et c’est tout. Minimaliste comme montage non ?

Le principe

Un capteur infrarouge permet de détecter un mouvement dans son champ de vision en se basant sur l’infrarouge. On parle aussi de capteur pyroélectrique ou PIR. Le PIR sont capable de détecter une variation des ondes infrarouges, ce qui génère un courant électrique. Dans le cas de notre capteur, il est en fait divisé en deux partie différente reliées ensemble afin de détecter une variation lors qu’une des moitiés capte plus qu’une autre. On a ainsi un relevé d’une différence, et non plus d’une valeur simple.

Lors d’un mouvement, la variation des deux moitiés vont varier, et on va donc capter cette variation positive.

Principe de fonctionnement

Principe de fonctionnement

Le capteur

Le capteur lui même ressemble à ça :

Le capteur

Le capteur

Et l’intérieur fonctionne de la manière suivante :

PIR_interneLes spécifications techniques sont les suivantes :

  • Entrée : Courant continue de 4.5 à 20V
  • Sortie : High 3.3 V / Low 0V (Détection ou non)
  • Angle : <100 °
  • Dimension : 32 mm * 24 mm
  • Délai : de 5 à 200 secondes (ajustable)
  • Portée : de 3 à 7 mètres (ajustable).
  • Au repos : 50 microampères.

Le montage

Au vu des éléments nécessaires, vous allez voir, c’est plutôt simple !

Branchement du PIR sur l'arduino Uno

Branchement du PIR sur l’arduino Uno

On branche donc :

  • Le VCC du Pir  sur le 5V de l’arduino
  • Le GRD du PIR sur le GRD de l’arduino
  • La dernière branche sur le pin 2 de l’arduino
  • On ajoute une led de contrôle entre le pin 13 et un GRD de l’arduino

Mais attention : D’un PIR à l’autre, les branchements sont inversés ! J’avais 2 types de PIR, et j’ai grillé 2 PIR avant de me rendre compte que le branchement + et – était différent entre les 2 types de capteurs. BIEN SE RENSEIGNER AUPRÈS DU REVENDEUR !

Le code

Il est enfin temps de faire fonctionner tout ça ! Rien de bien compliqué non plus. On va commencer par laisser 30 secondes au PIR pour se calibrer, puis un fois cela fait, on va en boucle relever la valeur que nous renvoi le capteur : 0 ou 1. 0 signifiant pas de signal et 1 signifiant qu’il détecte une variation infrarouge.

Le code en lui même est disponible sur mon dépôt github : ici.

Si vous n’êtes pas à l’aise avec github, je vous le reproduis ci dessous :

//the time we give the sensor to calibrate (10-60 secs according to the datasheet)
int calibrationTime = 30;

int ledPin = 13;                // choose the pin for the LED
int inputPin = 2;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status

void setup() {
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(inputPin, INPUT);     // declare sensor as input
  Serial.begin(9600);

  Serial.print("calibrating sensor ");
  for(int i = 0; i < calibrationTime; i++){
    Serial.print(".");
    delay(1000);
  }
}

void loop(){
  val = digitalRead(inputPin);  // read input value
  Serial.println(val);
  if (val == HIGH) { // check if the input is HIGH
    digitalWrite(ledPin, HIGH);  // turn LED ON
    delay(150);

    if (pirState == LOW) {
      // we have just turned on
      Serial.println("Motion detected!");
      // We only want to print on the output change, not state
      pirState = HIGH;
    }
  } else {
    digitalWrite(ledPin, LOW); // turn LED OFF
    delay(300);
    if (pirState == HIGH){
      // we have just turned of
      Serial.println("Motion ended!");
      // We only want to print on the output change, not state
      pirState = LOW;
    }
  }
}

On commence donc par initialiser les pins dans leur état d’entrée ou de sortie, puis on calibre le capteur.

Puis dans le loop, on relève la valeur renvoyée par le capteur et on agit en conséquence. Quand vous lancez le moniteur, vous avez alors un retour comme ceci :

Ce que le moniteur nous ressort

Ce que le moniteur nous ressort

 

Bonus : Créer une lampe qui s’allume automatiquement

On va profiter de ce capteur pour l’utiliser dans un cas pratique ! Nous allons le coupler avec un relai, qui va nous permettre de contrôler du courant (du 220V par exemple) pour allumer ou éteindre une lampe lorsque l’on détecte un mouvement. Cette deuxième partie est donc un cas pratique d’utilisation de notre capteur de mouvement.

Le matériel nécessaire, en plus est le suivant :

Pour la lampe, j’ai acheté une lampe à LED chez Castorama à 12€. Vu qu’il faut couper le câble d’alimentation pour le montage, évitez de sacrifier une lampe de qualité (ça vaut mieux pour la paix des ménages).

Un relais, ou relais électromagnétique est, selon wikipedia un organe électrique permettant de dissocier la partie puissance de la partie commande, autrement dit,  Il permet l’ouverture / la fermeture d’un circuit électrique par un second circuit totalement isolé. Ici, nous allons donc contrôler l’ouverture ou la fermeture du circuit en 220V (enfin 12V sur ma lampe de test) avec un second circuit en 5V contrôlé par la carte Arduino.

Voila à quoi va désormais ressembler notre montage :

Schéma du montage PIR et relais

Schéma du montage PIR et relais

Comme vous pouvez le voir, le montage du PIR ne varie pas, on le connecte toujours aux mêmes bornes.

Pour le relais, il faut faire 2 choses : Connecter GND à la masse commune du montage (pir et relais doivent avoir la même masse), connecter le VCC au 5V fourni par l’arduino, et connecter le pin de données au port 3 de l’arduino.

De l’autre côté du relais, il va falloir couper votre câble d’alimentation de la lampe.  On va donc avoir quelque chose qui ressemble à ça :

Contrôle de l'alimentation de la lampe grâce au module relais

Contrôle de l’alimentation de la lampe grâce au module relais

Le montage dans son ensemble

Le montage dans son ensemble

Avant de vous donner le code, voici une petite vidéo qui vous montre comment tout cela fonctionne :

Passons au code désormais. Comme vous pouvez vous en douter, on va utiliser le code de la première partie du tutoriel que l’on va enrichir pour prendre en compte le contrôle du module relais.

Vous trouverez le code sur mon dépôt github, ici.

Si vous êtes githubophobe, vous trouverez le code ci dessous :

//the time we give the sensor to calibrate (10-60 secs according to the datasheet)
int calibrationTime = 30;  
// The time the device will stay on
int delayTime = 5000;

int ledPin = 13;                // choose the pin for the LED
int inputPin = 2;               // choose the input pin (for PIR sensor)
int relayPin = 3;
int pirState = LOW;             // we start, assuming no motion detected
int stateRelay = HIGH;
int val = 0;                    // variable for reading the pin status

void setup() {
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(relayPin, OUTPUT);
  pinMode(inputPin, INPUT);     // declare sensor as input
  Serial.begin(9600);
  digitalWrite(relayPin, stateRelay);
  //give the sensor some time to calibrate
  Serial.print("calibrating sensor ");
  for(int i = 0; i < calibrationTime; i++){
    Serial.print(".");
    delay(1000);
  }
  Serial.println("SENSOR ACTIVE");
  delay(50);
}

void loop(){
  val = digitalRead(inputPin);  // read input value
  //Serial.println(val);
  if (val == HIGH) { // check if the input is HIGH
    digitalWrite(ledPin, HIGH);  // turn LED ON
    delay(150);    

    if (pirState == LOW) {
      // we have just turned on
      Serial.println("Motion detected!");
      // We only want to print on the output change, not state
      pirState = HIGH;
    }
  } else {
    digitalWrite(ledPin, LOW); // turn LED OFF
    delay(300);    
      if (pirState == HIGH){
      // we have just turned of
      Serial.println("Motion ended!");
      // We only want to print on the output change, not state
      pirState = LOW;
    }
  }

  Serial.println(pirState);
  if(pirState == HIGH){
     digitalWrite(relayPin, LOW);
     delay(delayTime);
  } else {
     digitalWrite(relayPin, HIGH);
  }
}

Comme vous pouvez le voir, rien de bien compliqué ! Comme dans le premier montage, on contrôle si on détecte un mouvement, et si oui, dans ce cas on va activer le module relais pour allumer la lampe.

Et voila, c’est fini pour ce tutoriel.

Précaution importante

Ce montage est assez simpliste et n’est en soit pas sécurisé pour l’arduino. En effet, le fait d’ouvrir ou fermer un relai va générer des surtensions. Si vous souhaitez utiliser ce montage de manière régulière, il va donc être IMPÉRATIF de protéger votre circuit. Heureusement, c’est assez simple.

Je vous invite à lire ce tuto pour en savoir plus et protéger votre circuit. L’idée est d’utiliser une diode pour protéger notre arduino des retours potentiels du relais. Il se peut aussi que votre module relais possède déjà cette sécurité, donc à vous de vérifier en fonction du module que vous avez acheté !

Voila, c’est enfin tout pour ce tutoriel. Si vous avez des questions, n’hésitez pas !

 

A bright task light + customizable ambient lightAmanda Williams is a talented designer and now adds manufacturing experience to her skills, a potent combination.

Read more on MAKE

TricopterMaker Hangar Is back with two new aircraft builds this season, a tricopter and another airplane! In this episode, I talk about what a tricopter is and some of its advantages over other multicopters. We also take a look into the kits that are being sold for this year. If you […]

Read more on MAKE

penales

It’s FIFA World Cup time and we have a project for makers who prefer to be active instead of only watching the others play. The exciting penalty shoot-out we’ve always enjoyed in video games was implemented by  as an electro-mechanical game where you save goals using a control device and kick the ball with your fingers:

It is an interactive game situated between electronics and the real world making you part of the game. The more players the better (we have played 8 people!). The video below shows the construction phase of the project and several sample penalty kicks. The project involves a variety of electronic components such as the Arduino Uno, servos, LEDs, push buttons, a potentiometer, a switch, a piezo buzzer, a gearmotor, and the ATtiny85, among others (great for a first Arduino project, isn’t it?).

 

Kid's Room SpacecraftI built a spaceship for my four-year-old's room. It has a control panel full of interesting displays and whiz-bang space sounds. A joystick controls lights and sounds for the engine and thrusters. The payload bay has a motorized hatch and and contains a robot arm for deploying payloads like toy satellites. Headsets provide an audio link between the spacecraft and the Mission Control desk in the other son's room.

Read more on MAKE

giu
26

Bonjour,

Lors de ma visite au Maker Faire 2014, j’ai eut la possibilité de découvrir un nouveau magazine francophone dédié à la bidouille : Hackable Magazine. Intéressé par le concept, j’ai décidé de m’acheter le premier numéro dont le gros titre était : Rejoignez la révolution Arduino.

Hackable magazine : premier numéro

Hackable magazine : premier numéro

Tout un programme !

Je l’ai reçu très rapidement (3 jours après l’avoir commandé), et je l’ai dévoré de bout en bout. Un très bon premier jet !

Au sommaire de ce premier numéro vous trouverez :

  • La station de soudage, votre amie pour la vie
  • Un arduino de la taille d’une cacahouète
  • L’arduino starter kit : découverte
  • Arduino : un projet, une révolution et une gamme de cartes
  • Découvrir et apprendre le langage arduino
  • Loi d’Ohm : toute résistance est futile
  • Votre Raspberry Pi toujours à l’heure
  • L’ardu-sonnette intelligente : est-on passé en votre absence ?
  • L’ardu-sonnette intelligente : ajoutons un écran
  • E-Cigarette : rien de magique, que du technique
  • Comprendre la PWM

Voila pour ce premier numéro. Bien qu’étant habitué à l’arduino, j’ai tout de même fait l’effort de lire les articles (même si j’avoue avoir sauté quelques parties basiques), et c’était plutôt intéressant. Les articles sont plutôt bien écrit, et j’ai été agréablement surpris par le dossier sur la E-Cigarette.

Je me suis abonné pour 6 numéros pour 39 € livraison comprise, si ils sont tous aussi bien fait que celui là, je ne vais pas être déçu. Je vous invite à découvrir ce magazine fait pour les makers en herbe ou expérimentés.

Vous l’avez lu ? Qu’en avez vous pensé ?

 



  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • PlanetArduino is powered by WordPress. Design by Jasone.it. Valid XHTML   •   Valid CSS
    54 queries. 0,653 seconds.