[Résolu] IDE Arduino 1.0 (voire 1.01) ou 023

Bonjour à tous,

Je vous demande conseil, car je me pose quelques questions, et je pense que cela peut intéresser d'autres quasi débutants comme moi :

J'utilise actuellement l'IDE version 023, j'ai écrit quelques programmes .pde .
Or de plus en plus souvent les derniers exemples donnés (par exemple Webduino) sont en .ino

J'ai essayé de passer un programme .pde en .ino en modifiant #include "WProgram.h" en #include "Arduino.h"
mais j'ai des erreurs de compilation apparemment liés à l'utilisation de la librairie onWire.

Du coup, je suis resté sur la version 023 de l'IDE pour l'instant.

Ma première question :
Existe-il un petit tuto pour la passage de IDE 023 en 1.0 (voire 1.01)?
Mais peut-être n'est ce pas nécessaire si l'upgrade est vraiment simple, et si je me suis pris les pieds dans le tapis lors de mon upgrade.

Ma seconde question :
J'ai lu quelque part que dans la dernière version (1.01) le type byte n'existait plus.
Cela ne pose t-il pas un problème par exemple pour traiter des données dans un tableau, en faisant une opération booléenne sur chaque octet (masque ou forçage de certains bits) ?

Ma première question :
Existe-il un petit tuto pour la passage de IDE 023 en 1.0 (voire 1.01)?

ça m'étonnerai fort même si il serais bien de rassembler en un topic toute les différences qu'il y a au passage d'une version à l'autre

Ma seconde question :
J'ai lu quelque part que dans la dernière version (1.01) le type byte n'existait plus.
Cela ne pose t-il pas un problème par exemple pour traiter des données dans un tableau, en faisant une opération booléenne sur chaque octet (masque ou forçage de certains bits) ?

Je n'ai pas entendu parler de la disparition du type byte qui m'étonnerai fort mais même au cas ou ce serais vrai, un char a la même taille qu'un byte donc c'est la même chose hormis le nom donc ne t’inquiète pas tu pourra toujours faire des masquage décalage etc même sur un char.

Skizo !

Au cas ou, il suffirait d'ajouter cette ligne dans les programmes.

typedef uint8_t byte;

Salut,

Toutes ces informations sont dans les releases notes. Sinon Barbudor a créé un sujet fort intéressant ici sur le passage de la v1.0 à la v1.0.1.

++

oui ça reviens au même, du coup en sois c'est pas vraiment un problème si il le supprime.

Merci pour vos infos

Salut,

C'est confirmé cette histoire de byte qui existe plus ?
(La flemme d'installer 1.0.1, 1.0 + patch 0023 + teensyduino ça me suffit largement)

Si c'est confirmé bonjour la boulette ... 3/4 des sketch dispo sur internet utilisent byte ...
Bon aprés il reste la solution de remettre le typedef dans Arduino.h mais ça fait bête quand même ...

skywodd:
C'est confirmé cette histoire de byte qui existe plus ?

Je commence à avoir des doutes, je ne sais plus où j'ai lu ça ! Je me suis peut être trompé.

skywodd:
1.0 + patch 0023 + teensyduino ça me suffit largement

Il y a un patch 0023 ?

qu'est ce que teensyduino ?

A priori le type byte existe toujours, il est encore dans le fichier d'entête Arduino.h.

Par contre le mot clé BYTE n'est plus pris en argument par la méthode Serial.print() :

The behavior of Serial.print() on a byte has been changed to align it
with the other numeric data types. In particular, it will now print
the digits of its argument as separate ASCII digits (e.g. '1', '2', '3')
rather than a single byte. The BYTE keyword has been removed. To send a
single byte of data, use Serial.write() (which is present in Arduino 0022
as well).

Brisebee:
Je commence à avoir des doutes, je ne sais plus où j'ai lu ça ! Je me suis peut être trompé.

Ça me semble bien bizarre quand même cette histoire ...
Une solution simple : qui a 1.0.1 ? Un 'chti test svp ? :slight_smile:

Brisebee:
Il y a un patch 0023 ?

Le patch "made in skywodd en mode grosse brute" : ajouter un fichier WProgram.h incluant Arduino.h et ajoutant les divers define supprimer entre 0023 et 1.0.

  • le patch PJRC de la lib wire pour avoir .send() et .receive() en plus de .read() et .write().
    C'est une technique de brute mais ça marche dans la plupart des cas (les libs qui hérite de print ne compile pas pour autant, donc obliger de gardé 0023 de coté si besoin).

Brisebee:
qu'est ce que teensyduino ?

Un plugin pour l'ide arduino qui ajoute le support des cartes arduino teensy (carte avec usb intégré).

SesechXP:
A priori le type byte existe toujours, il est encore dans le fichier d'entête Arduino.h.

Par contre le mot clé BYTE n'est plus pris en argument par la méthode Serial.print() :

D'accord ... c'est fait depuis longtemps ça déja :slight_smile:
Je me disait bien aussi que c'était pas nette cette histoire :slight_smile:

xxx.print(yyy, BYTE) doit être remplacer par xxx.write(yyy) depuis arduino 0023 (il me semble).

Ok merci à tous, j'avais mal lu !

C'est vrai qu'il y a eu plusieurs changements dans l'API tels que des send/receive qui deviennent des write/read (Wire) ou effectivement print() plutot que write() dans les API d'affichage (Serial, SoftwareSerial, etc... qui dérivent de Print)

Mais je pense que c'est assez minime et qu'on est tous capables d'aller ouvrir le fichier H correspondant pour voir ce qu'ils ont changé.

Donc sans être un forcené de l'upgrade (j'utilise toujours XP sur certains PC) je pense que le saut 0023 à 1.0 est un petit mal nécessaire car c'est sur cette version maintenant que le support et la maintenance est faite. Il y a des bugs dans les libs et en restant en arrière vous ne pourrez pas profiter des mises à jour.

Perso, j'ai dezippé dans des répertoires différentes. j'ai gardé au cas ou un arduino-0023, un arduino-1.0 et arduino qui est mon environnement par défaut maintenant en 1.0.1.

Mais franchement je n'ai jamais utilisé la 0023 sauf pour tester un truc en rapport avec le forum et quelqu’un qui avait cette version (je suis trop jeune arduinaute pour avoir réellement connu la 0023).

skywodd:

SesechXP:
A priori le type byte existe toujours, il est encore dans le fichier d'entête Arduino.h.

Par contre le mot clé BYTE n'est plus pris en argument par la méthode Serial.print() :

D'accord ... c'est fait depuis longtemps ça déja :slight_smile:
Je me disait bien aussi que c'était pas nette cette histoire :slight_smile:

xxx.print(yyy, BYTE) doit être remplacer par xxx.write(yyy) depuis arduino 0023 (il me semble).

D'après les releases notes c'est depuis la v1.0.

J'ai réussi à compiler et exécuter mon programme .pde en .ino
Le principal problème venait de la librairie OneWire => j'ai téléchargé une nouvelle version à jour.

La version venant avec l'IDE 1.0/1.0.1 n'est-elle pas à jour ?
Où as tu récupéré cette version ?

Il s'agit de 1.01

La librairie oneWire n'est pas fournie:

elle vient d'ici Arduino Playground - OneWire

Confondu avec Wire :wink:
Désolé.
Merci.

Ma seconde question :
J'ai lu quelque part que dans la dernière version (1.01) le type byte n'existait plus.
Cela ne pose t-il pas un problème par exemple pour traiter des données dans un tableau, en faisant une opération booléenne sur chaque octet (masque ou forçage de certains bits) ?

Dans la version 1.0.1 le type byte existe toujours et en prime, il fonctionne.
@+

Bonjour à tous!
Je suis un" vieux " nouveau débutant...
J'essaie un peu tous les programmes qui passent et suis actuellement sur le thème oscilloscope.
Le téléversement d'un programme pose un problème car un code d'erreur est affiché: "Le mot-clé "BYTE" n'est plus supporté"
Que fait-on dans ce cas quand on débute, car suis loin d'avoir vos connaissances?
Y a -t-il une solution simple ou mieux vaut-il abandonner ce programme?
Version: 1.05-r2

Voici:
// The Arduino code.

#define ANALOG_IN 0

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

void loop() {
int val = analogRead(ANALOG_IN);
Serial.print( 0xff, BYTE);
Serial.print( (val >> 8) & 0xff, BYTE);
Serial.print( val & 0xff, BYTE);
}

Question susidiaire: est ce normal de devoir assez souvent tripoter dans l'affectation des ports vu que , pour on ne sait quel motif le port sur lequel l'Arduino est reconnu, ne l'est plus tou à coup...? (Windows VISTA)

AUtre: Pourquoi PROCESSING cherche systématiquement le COM 3 (du moins dans mon cas) ?
Bon, c'est du questionnement en vrac et probablement pas admis sur ce blog...
Mettez moi au pas si nécessaire.
Merci à vous.