Aller au contenu


thermo_nono

Inscrit(e) (le) 16 mai 2012
Déconnecté Dernière activité nov. 28 2019 06:38
-----

Sujets que j'ai initiés

pb installation slic3r sur raspbian

20 août 2019 - 01:16

Salut les makers, 
Je souhaite installer un logiciel de tranchage pour impression 3D sur un raspberry pi 3 sous raspbian (je n'utilise pas octoprint). 
Malheureusement, je viens de faire deux tentatives en suivant deux tutos (un avec octoprint et un autre avec uniquement slic3r, je n'ai plus les liens vu que je suit les tutos sur le r-pi et que je repart d'un raspian propre à chaque foirade d'installation), mais les deux se sont soldés par un échec. 
Connaissez-vous un tuto qui permet d'installer slic3r sur raspbian ?.. (ou un autre logiciel de tranchage)
merci d'avance. 

 


MOORE (Mobile-Open-Omnidirectional-Robot-Experience)

24 juin 2019 - 12:46

Salut, j'ai fait la structure principale de mon futur robot... et je ne résiste pas à l'envie de vous montrer ce que ça donne... 
bon, il manque encore toute l'électronique mais on commence à voir à quoi ça pourrait ressembler. 
Fichier joint  robot001.jpg   169,85 Ko   54 téléchargement(s)
:-)

 


Communication I²C entre R-pi et Arduino

20 juin 2019 - 10:14

Salut les makers, 
J'ai une petite question sur la communication I²C.. 
Je dispose d'un R-pi que j'ai connecté en I²C avec un arduino (UNO pour le moment, mais ce seront bientôt des NANOS qui y seront connectés). 
La connection fonctionne bien, malheureusement le bout de code fourni en exemple ne me permet d'envoyer qu'une instruction à la fois à l'arduino, celà ne me gênait pas trop lorsque je n'avais qu'un moteur par arduino à commander, mais ces arduinos devront aussi recevoir des instructions pour commander des servo-moteurs afin d'orienter la cam du R-pi. 
Du coup, je souhaiterais pouvoir envoyer plusieurs instructions vers les arduinos (la première instruction pour définir la vitesse de la roue, la seconde instruction pour indiquer l'angle du servomoteur...)

voici l'exemple sur lequel je me suis basé ( https://www.pihomese...ux-via-bus-i2c/ ) :  

code côté arduino : 

#include <Wire.h>

#define SLAVE_ADDRESS 0x12
int dataReceived = 0;

void setup() {
    Serial.begin(9600);
    Wire.begin(SLAVE_ADDRESS);
    Wire.onReceive(receiveData);
    Wire.onRequest(sendData);
}

void loop() {
    delay(100);
}

void receiveData(int byteCount){
    while(Wire.available()) {
        dataReceived = Wire.read();
        Serial.print("Donnee recue : ");
        Serial.println(dataReceived);
    }
}

void sendData(){
    int envoi = dataReceived + 1;
    Wire.write(envoi);
}

et voici le code côté R-pi (notez l'affreux "time.sleep" que j'aimerai voir disparaître car pour les 4 arduinos envisagés on arrive à 4 secondes de perdues ce qui fait beaucoup trop à mon goût ^^)

import smbus
import time

# Remplacer 0 par 1 si nouveau Raspberry
bus = smbus.SMBus(0)
address = 0x12

print "Envoi de la valeur 3"
bus.write_byte(address, 3)
# Pause de 1 seconde pour laisser le temps au traitement de se faire
time.sleep(1)
reponse = bus.read_byte(address)
print "La reponse de l'arduino : ", reponse

Merci d'avance pour vos réponses. 
 

 

 


"if" ou "switch case" ?

11 juin 2019 - 12:45

Salut, afin d'optimiser mes instructions I²C entre mon R-pi3 et des arduinos, j'ai recouru à une bidouille qui m'oblige, côté arduino à effectuer un traitement sur l'instruction reçue. 
Ce traitement utilise des instructions "if" et "else if"... je pourrai aussi utiliser l'instruction "switch... case" pour un résultat identique. 
Laquelle de ces deux instructions est la plus rapide ? 
je met le bout de code en question au cas ou ça serait utile pour la réponse... 
 

void loop() {
  int vitesseM1;
  int vitesseM2;  
  if (dataReceived){
    if(dataReceived < 32) {
      vitesseM1 = map(dataReceived, 0, 31, -60, -255);
    }
    else if(dataReceived == 32) {
      vitesseM1 = 0;
    }    
    else if(dataReceived > 32 and dataReceived < 64) {
      vitesseM1 = map(dataReceived, 32, 63, 60, 255);
    }
    else if(dataReceived > 63 and dataReceived < 96) {
      vitesseM2 = map(dataReceived, 64, 95, -60, -255); 
    }
    else if(dataReceived == 96) {
      vitesseM2 = 0;
    }    
    else if(dataReceived > 96 and dataReceived <= 127) {
      vitesseM2 = map(dataReceived, 97, 127, 60, 255);  
    }    
    setVitesseMoteur1(vitesseM1); // definir une vitesse entre -255 et 255 pour le moteur 1
    setVitesseMoteur2(vitesseM2); // definir une vitesse entre -255 et 255 pour le moteur 2    
  }
}

merci d'avance pour vos réponses. 

PS : je pense réduire le nombre de conditions en ne gardant qu'un moteur par arduino afin de résoudre le problème dû au manque de pins autorisant l'interruption hardware (PID).

 

 


Un petit lien vers des techniques d'assemblage de pièces imprimées en 3D

10 septembre 2018 - 11:52

Salut les makers, 
voici un petit lien vers quelques techniques permettant d'assembler des pièces imprimées en 3D.. 
https://www.filimpri...-impressions-3d