Skip to main content

Le OG presse citron

1. Introduction

codeDans bmele +cadre neopixelde l’Unité d’Enseignement de prototypage, nous avons réalisé un projet de conception assistée par ordinateur visant à modéliser un objet du quotidien : un presse-citron.

L’objectif de ce projet était de mobiliser les compétences acquises en modélisation 3D, notamment la création d’esquisses paramétriques, l’extrusion de volumes, l’enlèvement de matière ainsi que l’utilisation d’outils de répétition géométrique. Le modèle a été conçu à l’aide du logiciel Autodesk Fusion.

2. Analyse fonctionnelle du produit

Le presse-citron conçu doit répondre aux fonctions principales suivantes :

  • Extraire efficacement le jus d’un agrume

  • Permettre la rĂ©cupĂ©ration du jus dans arduinoun rĂ©cipient intĂ©grĂ©

  • ĂŠtre stable et ergonomique

  • ĂŠtre compatible avec une fabrication par impression 3D

Le produit se compose de deux parties principales :

  1. Un récipient cylindrique servant de collecteur de jus

  2. Un presseur central permettant l’extraction

3. Démarche de conception et modélisation

3.1 Création du récipient

La première étape a consisté à modéliser le corps principal du presse-citron.

  • CrĂ©ation d’une esquisse circulaire sur un plan horizontal

  • Diamètre dĂ©fini : 100 mm (10 cm)

  • Extrusion sur une hauteur de 20 mm (2 cm)

Cette opération a permis d’obtenir un cylindre plein constituant la base du récipient.

Dans un second temps :

  • Une opĂ©ration d’enlèvement de matière a Ă©tĂ© rĂ©alisĂ©e afin de creuser l’intĂ©rieur du cylindre et former le contenant

  • Les arĂŞtes supĂ©rieures ont Ă©tĂ© adoucies afin d’amĂ©liorer l’ergonomie et l’esthĂ©tique du produit

3.2 Conception du presseur central

Le presseur a été modélisé au centre du récipient.

  • CrĂ©ation d’un cylindre centrĂ©

  • Hauteur approximative : 40 mm (4 cm)

Ce volume constitue la base du cône d’extraction.

3.3 Création des rainures d’extraction

Afin de permettre l’écoulement du jus et d’améliorer l’efficacité du pressage, des rainures ont été intégrées au presseur.

Étapes réalisées :

  1. Création d’une esquisse en forme d’arc sur la surface du presseur

  2. Extrusion en enlèvement de matière pour creuser la forme

  3. Utilisation de l’outil Réseau circulaire

  4. Répétition du motif 6 fois autour de l’axe central

Cette opération assure une répartition homogène des rainures autour du presseur.

3.4 Ajout de la pointe supérieure

Pour finaliser la géométrie :

  • Une petite esquisse a Ă©tĂ© créée au sommet du presseur

  • Une extrusion a permis d’obtenir une pointe centrale

Cette pointe améliore la pénétration dans l’agrume et optimise l’extraction du jus.

4. Résultat final

Le modèle final comprend :

  • Un rĂ©cipient cylindrique creusĂ©

  • Un presseur central rainurĂ©

  • Une pointe supĂ©rieure

  • Des arĂŞtes arrondies pour un rendu plus ergonomique

press.PNG

/***************************************************************************

8. Fabrication Thispar isimpression 3D

Notre modèle a libraryĂ©tĂ© forfabriquĂ© theĂ  BME280l’aide humidity,de temperaturel’imprimante &3D pressureRaise3D. sensor


  Designed specifically to work with the Adafruit BME280 Breakout
  ----> http://www.adafruit.com/products/2652

  These sensors use I2C or SPI to communicate, 2 or 4 pins are required
  to interface. The device'Après I2Cexportation addressdu isfichier eitherau 0x76format orSTL, 0x77.

  Adafruit invests time and resources providing this open source code,
  please support Adafruit andopen-source hardware by purchasing products
  from Adafruit!

  Written by Limor Fried & Kevin Townsend for Adafruit Industries.
  BSD license, all text above must be included in any redistribution
  See the LICENSE file for details.
 ***************************************************************************/

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <Adafruit_NeoPixel.h>

#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10

#define SEALEVELPRESSURE_HPA (1013.25)
#define NUMPIXELS 1

Adafruit_BME280 bme; // I2C
Adafruit_NeoPixel pixels(NUMPIXELS, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800);
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI

unsigned long delayTime;
void pixel_on(int r, int g, int b){
  pixels.clear();
  pixels.setPixelColor(0, pixels.Color(0, 150, 0));
  pixels.show();
}

void setup() {
    Serial.begin(9600);
    while(!Serial);    // time to get serial running
    Serial.println(F("BME280 test"));

    unsigned status;
   
    // default settings
    status = bme.begin();  
    // You can also pass incelui-ci a WireĂ©tĂ© libraryprĂ©parĂ© objectdans likele &Wire2
logiciel
de   // status = bme.begin(0x76, &Wire2)
    iftranchage (!status)slicing) {
afin
de définir Serial.println("Couldles notparamètres findd’impression tels que la hauteur de couche, le taux de remplissage et la génération éventuelle de supports. L’utilisation de l’imprimante Raise3D nous a validpermis BME280d’obtenir sensor,un checkprototype wiring,physique address,fidèle sensorau ID!");
modèle
numérique, facilitant Serial.print("SensorIDainsi was:la 0x");vérification Serial.println(bme.sensorID(),16);
des
dimensions, de Serial.print("la IDstabilité ofet 0xFFde probablyl’ergonomie meansdu presse-citron. Cette étape a badété address,essentielle apour BMPvalider 180la orconception BMPet 085\n");
identifier
d’éventuelles améliorations Serial.print("avant IDune ofproduction 0x56-0x58finale.

represents a BMP 280,\n");
        Serial.print("        ID of 0x60 represents a BME 280.\n");
        Serial.print("        ID of 0x61 represents a BME 680.\n");
        while (1) delay(10);
    }
 
    Serial.println("-- Default Test --");
    delayTime = 1000;

    Serial.println();
}


void loop() {
    printValues();
    if(bme.readTemperature()<30){
      pixel_on(0,150,0);
    }
    else{
      pixel_on(150,0,0);
    }
    delay(delayTime);
}


void printValues() {
    Serial.print("Temperature = ");
    Serial.print(bme.readTemperature());
    Serial.println(" °C");

    Serial.print("Pressure = ");

    Serial.print(bme.readPressure() / 100.0F);
    Serial.println(" hPa");

    Serial.print("Approx. Altitude = ");
    Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
    Serial.println(" m");

    Serial.print("Humidity = ");
    Serial.print(bme.readHumidity());
    Serial.println(" %");

    Serial.println();
}