Tag Archives: arduino

PROJET : ATMEGA328 (ICSP) – Very simple Arduino

Ce projet est notre première réalisation de circuit imprimé, et nous espérons qu’il y en aura d’autres !

Il consiste en une variation la plus simple possible de l’Arduino et de la puce qui l’accompagne : ATMega328P-PU.

L’idée était de fabriquer un circuit simple et peu couteux pour des projets terminés, voir de pouvoir également se servir de cette board simplissime comme un outil de prototypage.

Le circuit reprend toutes les fonctions de l’Arduino UNO comme le bootloader, la possibilité de programmer avec l’Arduino IDE, une LED sur la pin 13 ou encore la possibilité d’avoir le Serial Monitor.

Le circuit s’insère dans une breadboard comme un Arduino NANO
arduinoICSP

 Comment la  programmer ?

L’ATMega est pré-programmée avec le bootloader de l’Arduino UNO, donc la solution la plus simple est de programmer la puce avec l’Arduino UNO en remplaçant les puces.

La solution privilégiée reste l’aquisition d’un programmeur tel que l’AVR ISP MkII d’ATMEL dont le fonctionnement a été expliqué dans un précédent article : ATELIER DIY #9 : ATTINY – SIMPLE ET EFFICACE

Serial Monitor / Moniteur Série 

L’Arduino UNO est équipé d’un convertisseur Série > USB (ATMega8u2) et d’un montage similaire à celui qu’offre le circuit imprimé que nous avons fabriqué.

Pour compléter notre montage nous utilisons le convertisseur série de l’Arduino UNO pour récupérer les informations de notre montage.

Pour cela, il nous faut un Arduino UNO dont la puce a été retiré, et nous allons brancher notre TX RX et GND dans les pins correspondants de la board.

Nous vendons ce circuit sur Tindie en tant que kit pour 9.50 € + frais de port
Ou assemblé pour 12 € – le circuit imprimé seul pour 4 €

Le kit contient :

  • 1x PCB avec une Led SMD jaune pré-soudée (0850)
  • 1x ATMEL ATMega328P-PU
  • 1 x Support de puce
  • 1 x Cristal 16Mhz
  • 2 x Condensateurs 33pF
  • 1 x  Resistance 220 Ohm (1%)
  • 25 x Header pin
  • 1 x 2 x3 Header pin

I sell on Tindie

ATELIER DIY #10 : Encre Conductrice [Concours]

Farnell_Conductive_Ink_Challenge

Le projet contenu dans cet article participe au Conductive ink Challenge organisé par Farnell / Element14

 

 

L’encre conductrice se trouve sous plusieurs formes, la plus commune est un stylo contenant une encre grise et épaisse qui sèche lentement, sur laquelle on peut « souder ». A l’origine cela permet de réparer les traces (les connexions entre les composants) sur des circuits endommagés, et théoriquement cela permet aussi de créer des circuits électroniques fonctionnels sur tous types de support.

Au multimètre, l’encre sèche ne semble pas offrir de résistance particulière, identique à celle d’un cable électrique. Sur une feuille de papier type imprimante, la résistance de l’encre à la torsion est faible, il semble difficile de faire un montage électronique de type « origami » avec cette encre.

Sur du carton un peu granuleux l’encre se comporte mieux mais est absorbé partiellement par le support, pour être sûr que le projet dure dans le temps il faut en mettre plusieurs couches ou pré-imprégner le carton avec un vernis ou une colle qui sèche rapidement, et permette d’assurer une accroche suffisante à l’encre.

Nous avons constaté une fragilité de l’encre à la friction, qui est probablement due aux particules de métal ou d’alliage qu’elle contient

Le Projet

cardboardProject-closeup

Matériel utilisé :  Stylo à encre conductrice : Circuitworks – CW2200MTP
L’ATMEGA328P-PU d’un Arduino UNO
Ecran LCD type Nokia 5110 (copie de chez DealExtreme)
Batterie LiPo 3,7 V 110 mAh
Carton recyclé
Super Glue

Librairies Arduino utilisés :  Keypad
Adafruit PCD8544

Le circuit se veut à l’origine entièrement réalisé en carton et encre conductrice, pour copier à l’identique ou presque un circuit imprimé.

Continue reading

Atelier DIY #9 : ATtiny – simple et efficace

4 ans après le premier Atelier DIY, consacré au Circuit Bending, nous revenons avec un 9e atelier consacré à la programmation des puces ATMEL ATtiny.

Ces puces ont l’avantage d’être petites par rapport à une ATMega, car elles ont moins d’entrées/sorties, ce qui peut être pratique pour pas mal de petits projets.

Il y a déjà beaucoup de sources sur internet sur ce sujet, mais il s’avère qu’en réalité il faut aller piocher diverses informations ici et là et finalement on se perd un peu dans ce labyrinthe d’informations.

Cet atelier ne sera que le récit de nos expérimentations.

D’abord, par souci de simplicité et parce que l’AVR ISP mkII est le programmateur fabriqué par Atmel, tous les « dumps » de données (bootloader ou code) ont été fait avec, via l’Arduino IDE.

AVRISP_mkII

Sachez que le programmateur est totalement pris en charge sur Mac (sur Windows, il doit falloir installer un driver) le logiciel Arduino le reconnait immédiatement, ne perdez pas votre temps à lire les sujets sur internet, si vous avez la dernière version du programme Arduino vous n’aurez normalement aucun problème.

Tout le long des tests nous avons utilisé l’emplacement de la puce ATMega 328 d’une board Arduino UNO comme « breadboard ».

Continue reading

Drawdio, Drawdino : Faire « bip bip » avec un crayon papier, et un Arduino

Le Drawdio est un crayon fort énervant, qui fait bip bip quand on écrit avec.

Fait étonnant, le MIT (Massachusetts Institute of Technology) a participé au développement du projet

A l’origine, le montage se fait avec la fameuse NE555 (petit timer très pratique avec lequel on peut quasiment tout faire), puis est arrivé sous la forme d’un Kit une version avec la TLC551 (cousine de la NE555, à la différence que celle-ci est moins gourmande et ne nécessite que 1.5 Volts pour fonctionner, contre 4.5 Volts pour la NE555) où l’ensemble du circuit, pile comprise, tient sur un stylo (La version actuelle disponible chez Ladyada est au passage très bien conçue, tout tient sur le crayon et l’ensemble est de qualité) .

Pour ceux qui sont en région Parisienne, nous allons faire des ateliers de construction de Drawdio (avec les Kits de Ladyada), à la Médiathèque des Ulis pour leur Festival les Fabriques Numériques, les :

29 Février 2012
03 Mars 2012
07 Mars 2012
10 Mars 2012

Pour l’atelier du 18 Février à la Maison Populaire (Montreuil), consacré aux Drawdio et à ses différentes versions et réflexions, nous avons du adapter le Drawdio pour l’Arduino, sans code à rallonge trop complexe.

La version disponible sur Internet : http://www.semageek.com/drawduino-fabriquer-le-drawdio-de-celestin-avec-un-arduino/ nous a un peu laissé sur notre fin, dans le sens où le programme est complexe à comprendre, fait appel à des librairies tierces de l’Arduino et le son trop loin de l’esprit original du projet.
On a donc voulu retrouver l’esprit du Drawdio, retrouver ce bruit énervant, cette onde carré qui tape sur les nerfs, et surtout être capable de faire passer l’électricité dans notre corps comme avec le Drawdio original.

Nous sommes arrivés à un premier résultat, en modifiant (à peine) un des exemples du logiciel de l’Arduino

 

void setup() {
Serial.begin(9600);
}

void loop() {
int sensorReading = analogRead(A0);
Serial.println(sensorReading);
}

int thisPitch = map(sensorReading, 20, 60, 220, 350);
if (sensorReading>=1) {tone(9, thisPitch, 10 );
}

Téléchargez le code complet du Drawdino Simple

Puis, nous avons voulu trouver le moyen de faire passer l’électricité dans notre corps, et pourquoi pas avoir la possibilité de modifier avec un interrupteur les sonorités possibles, qui a donné ceci :

const int buttonPin = 2;

int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the button
int duration = 0;

void setup() {

pinMode(buttonPin, INPUT);

Serial.begin(9600);
}

void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
buttonPushCounter++;

Serial.println(« on »);
Serial.print(« number of button pushes: « );
Serial.println(buttonPushCounter);
}
else {
Serial.println(« off »);
}
}

lastButtonState = buttonState;

if(buttonPushCounter==3) {
(duration = 10);
}
else if(buttonPushCounter==4) {
(duration=100);
}
else if (buttonPushCounter==5) {
(duration=200);
}
else{(duration = buttonPushCounter+1);}

if (buttonPushCounter > 5) {(buttonPushCounter=0);}
int sensorReading = analogRead(A0);

int thisPitch = map(sensorReading, 300, 400, 600, 800);
if (sensorReading>=200) {tone(9, thisPitch, duration);
}
Serial.println(duration);

}

Télécharger le code complet du Body Drawdino

Le résultat est au final proche de la version « analogique » et si vous savez utiliser Pure Data ou Max MSP vous pouvez vous amuser à contrôler du son ou des vidéos.

C’était notre premier essai sur Arduino, et avec un peu de recherche et quelques tatonnements nous y sommes arrivés, alors pourquoi pas vous !