1 013
modifications
Modifications
aucun résumé de modification
{{Projet
|status=Prototype
|status_pub=BrouillonPublié|image=29856081 1827286557336729 554850370 n.png
|description=Projet réalisé ds le cadre d'un workshop de l'Ecole de design Nantes Atlantique
|license=CC-by-sa-3.0 - Creative Commons Attribution CC-by-sa-3.0 France
|contributeurs=Marc Launay, Lisa mouen, Valentine Milliand, Maëva Hemon,
|inspiration=Post Tumblr & StartUp nation
|machines=Laser-Smoothignstech,
}}
== Contraintes ==
Cube de 20cm * 20cm <br />
Utilisation de capteurs pour recceuillir recueillir des données <br />
Dialogue entre la carte éléctronique et une interface web <br />
== Concept ==
Cube permettant à l'utilisateur de trouver une idée pour un futur projet de Startup.
A travers une série de tests improbables le cube va définir un concept de startup personnalisé.
L'utilisateur recevra son idée de Startup sur un ticket qu'il pourra garder avec lui.<br />
Le principe réside dans l'absurdité de la proposition finale sur le ticket qui se compose de phrases crées à partir de variables aléatoires. On se retrouve alors avec une Startup définie par des "buzzwords", des termes tendances qui en eux même ne veulent pas dire grand chose.
== Réalisation ==
'''Réalisation d'une pré-maquette pour valider le positionnement des modules interactifs.'''<br />
[[File:20180328_190350(0).jpg|700px]]
'''Création de la maquette finale découpée au laser avec un système d’emboitement par encoches.'''<br />
[[File:Sans titre-1.jpg|700px]]
[[Fichier:Montage|vignette]]
== Fonctionnement ==
'''6 étapes réparties sur 5 faces du cube:'''<br />
1) (LANCEMENT du programme) <br /h4>2) Défis d'AUDACE <br /h4><h4>3) Défis d'EFFICACITE <br /h4><h4>4) Défis d'INVESTISSEMENT <br /h4><h4>5) Test de PERSONNALITE <br /h4>6)(IMPRESSION du ticket) <h3>Code processing random pour la production du ticket:<br /h3>int irole, iconcept, istartup, iqualificatif, icible, idestiny ; String role[] = { "Idea Shaper", "CEO", "DRH", "Happiness officer", "Disruptive Cofounder", "Digital Storyteller", "Head of Talent", "Disruptive Coach", "Ninja Consultant", "Assistante Marketing", "Software Engineer", "Team Leader", "Digital Influencer", "Talent Hunter", "Growthhacker", "Blockchain Guru", "Scrum Master", "Agile Specialist", "Collective Intelligence Booster", "Design Thinker", "Marketing Philosopher", "Super Weapon", "Emotion Creator", "Experience Designer", "Cosmic Dataminer", "Robot Pilot", "Trader de deals", "VR Architect", "Data Scientist", "Virtual Sociologist", "Community Manager", "Lead Brainstormer", "Data Analyst", "Digital Creator" };String concept[] = { "Tinder", "Uber", "Deliveroo", "Bracelet connecte", "Activity tracker", "Fablab", "Incubateur", "Facebook", "Poele connectee", "Frigo connectee", "Robot", "Bitcoin", "Casque VR", "Imprimante 3D", "Crypto-monnaie", "Cigarette electronique", "Messagerie instantanee", "Airbnb", "Espace de coworking", "Hackathon", "Intelligence artificielle", "Paiement sans contact", "Blockchain", "Linkedin", "SmartTV", "Objet connecte", "Wearable", "Lunette de realite augmentee", "Brosse a dents connectee", "Serious game", "Plateforme de e-learning", "Outil de brainstorming", "Drone", "Chatbot" };String startup[] = { "disruptif(ve)", "diabolique", "innovant(e)", "inspirant(e)", "sexy", "illegal(e)", "immersif(ve)", "malveillant(e)", "gamifie(e)", "viral(e)", "toxique", "ingenieux(se)", "virtuel(le)", "agressif(ve)", "agile", "tyrannique", "sonore", "dynamique", "hardcore", "violent(e)", "emouvant(e)", "geant(e)", "mignon(ne)", "vocal(e)", "en bluetooth", "auto-destructeur(ice)", "seduisant(e)", "polyvalent(e)", "genant(e)", "sportif(ve)", "social(e)", "gamifie(e)", "personnalise(e)", "emotionnel(le)" };String cible[] = { "millenials", "animaux de compagnie", "la generation Y", "employes d usine", "enfants", "commerciaux", "directeurs d entreprises", "nouveaux-nes", "nourissons", "alcooliques", "collegiens", "professeurs", "depressifs", "orphelins", "ministres", "stagiaires sous-payes", "graphistes", "animaux en voie d extinction", "policiers", "macronistes", "gauchistes", "CRS", "secretaires", "lyceens", "enthousiastes du crossfit", "influenceurs Linkedin", "intermittents du spectacle", "enfants en bas age", "personnes agees", "fans de Johnny Hallyday", "Nazis", "Heterosexuels", "Robots", "Les 2000"};String destiny[] = { "vous êtes rachete par Google car votre idee est trop innovante", "vous êtes rachete par Facebook car votre idee est trop innovante", "vous manquez de financements : votre startup coule", "vos fonds sont épuises : vous n'avez pas prevu assez large", "les investisseurs vous lachent : votre projet prend fin brutalement ", "le public n'etait pas pret pour autant d'innovation : personne n'achete votre produit", "la France n'etait pas prete pour votre innovation : votre startup rencontre un echec cuisant", "votre innovation tue un utilisateur : vous etes contraint de fermer boutique", "vous n'avez pas respecte le Code du Travail : votre startup croule sous les procès", "vos employes portent plainte contre vous pour exploitation abusive", "vous etes accuses de plagiat et perdez le proces", "vous avez trop de concurrence : impossible de vendre votre concept", "le prix que vous avez fixe est trop haut : personne n'achete votre produit", "vous vous disputez avec votre associe et il quitte la startup", "votre concept est inutile : votre startup coule", "votre concept est trop dangereux et nocif pour ses utilisateurs : votre startup fait faillite", "vos utilisateurs ne sont pas à la hauteur de votre concept : votre startup coule", "votre concept releve du genie mais vous etes incompris", "l'incubateur qui vous heberge vous vire des locaux", "le stagiaire de votre startup efface la sauvegarde du cloud qui contenait tous vos fichiers d'entreprise", "le community manager a supprime la page Linkedin de votre startup : vous n'existez plus", "le scrumboard est tombe sur vos collaborateurs : vous perdez 80% de votre effectif et etes contraint de fermer votre startup", "vous mourrez ecrase par votre livraison mensuelle de post-its : sans CEO, votre startup ne peut pas survivre", "un brief avec vos investisseurs tourne mal : vous projetez vos photos de vacances au lieu de votre powerpoint convaincant", "votre business model n'est pas rentable : vous faites faillite", "vous n’etes ni passionne, ni passionant : votre startup tombe à l'eau", "votre concept est totalement illegal : vous êtes arrete par la police, vous et vos collaborateurs", "vous perdez un proces contre votre ancien stagiaire qui vous accuse de l'avoir exploite", "vous etes invites au CES mais votre concept est moque par toutes les autres startups : vous perdez en credibilite et faites faillite", "votre scrum master vous lache : plus personne ne travaille et votre startup coule", "vous vendez des donnees confidentielles sur vos utilisateurs a d'autres entreprises mais un lanceur d'alerte vous denonce : votre reputation est ruinee", "vous avez besoin de designers mais aucun d'eux n'accepte d'être paye en influence et en experience : votre projet ne peut pas avancer", "votre community manager poste accidentellement des photos compromettantes de vous sur le compte Twitter de la startup : vous perdez en credibilite", "vous procrastinez trop et le projet finit par ne jamais voir le jour" };String text1, text2, text3, text4; void setup() {noLoop();} void draw() { //entiers aléatoires int entier1 = int(random(0, 34)); int entier2 = int(random(0, 34)); int entier3 = int(random(0, 34)); int entier4 = int(random(0, 34)); int entier5 = int(random(0, 34)); int entier6 = int(random(0, 34)); //role text1 = "Role : " + role[entier1]; text2 = "Concept : " + concept[entier2] + " " + startup[entier3] + " pour " + cible[entier4]; text3 = "Duree de vie : " + entier5 + " mois"; text4 = "Cause de faillite : " + destiny[entier6] ; //print println(text1); println(text2); println(text3); println(text4); println("_");}
void keyPressed() {
redraw();
}
== //0 Lancement ==
'''Speech:'''<br />
Vous pensez être le Steve Jobs ou le Elon Musk de demain ? Vous êtes accro à LinkedIn, vous n’avez peur de rien, et êtes prêt à tout sacrifier pour faire partie de la Start-up Nation ?
Vous avez tout, sauf une idée révolutionnaire ? Notre générateur de start-up est là pour vous aider.
Pour avoir un aperçu de votre futur, il vous faudra passer un test pour évaluer les 4 qualités qui feront de vous l’entrepreneur le plus disruptif de l’année.<br />
'''Speech:'''<br />
Rester appuyé au min 3 s sur un bouton sous un piège à souris.<br />
[[File:6.jpg|700px]]
== Branchement & Programmation ==
[[File:29894325_1825262810872437_162955786_o.png|700px]]<br />
<br />
//START UP GENERATOR
// le Cube connecté qui prédit l'avenir de votre startup
//LIBRAIRIES IMPRIMANTES : les ports peuvent être redéfinis ci-dessous
#include "SoftwareSerial.h"
#include "Adafruit_Thermal.h"
#include <avr/pgmspace.h>
//LIBRAIRIES AUDIO : attention à ne pas utiliser les ports ci-dessous
#include <SPI.h>
#include <Adafruit_VS1053.h>
#include <SD.h>
#define BREAKOUT_RESET 9 // VS1053 reset pin (output)
#define BREAKOUT_CS 10 // VS1053 chip select pin (output)
#define BREAKOUT_DCS 8 // VS1053 Data/command select pin (output)
// These are the pins used for the music maker shield
#define SHIELD_RESET -1 // VS1053 reset pin (unused!)
#define SHIELD_CS 7 // VS1053 chip select pin (output)
#define SHIELD_DCS 6 // VS1053 Data/command select pin (output)
// These are common pins between breakout and shield
#define CARDCS 4 // Card chip select pin
// DREQ should be an Int pin, see http://arduino.cc/en/Reference/attachInterrupt
#define DREQ 3 // VS1053 Data request, ideally an Interrupt pin
Adafruit_VS1053_FilePlayer musicPlayer =
// create shield-example object!
Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_CS, SHIELD_DCS, DREQ, CARDCS);
//BOUTONS
//bouton piste 1
const int buttonPin1 = 39;
int buttonState1 = 0;
//bouton piste 2
const int buttonPin2 = 2;
int buttonState2 = 0;
//bouton piste 3
const int buttonPin3 = 16;
int buttonState3 = 0;
//capteur imprimer
const int buttonPressure = A0;
int pressureState = 0;
//tweet
//const int tweetPin = 41;
//int tweetState = 0;
//led
const int ledPin13 = 13;
//PRINTER
//Paramètres de l'imprimante
String s;
int n;
boolean b = false;
Adafruit_Thermal printer(5, 22); //ports utilisés : 5 = fil rouge, 22 = fil jaune;
//millis
unsigned long previousMillis = 0;
unsigned long currentMillis;
unsigned long interval = 5000; //delay pour la led
void setup() {
//PRINTER
Serial.begin(9600);
printer.begin();
//Initialisation entrée et sorties
pinMode(ledPin13, OUTPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin1, INPUT);
pinMode(buttonPressure, INPUT);
pinMode(buttonPin3, INPUT);
//pinMode(tweetPin, OUTPUT);
//AUDIO
if (! musicPlayer.begin()) { // initialise the music player
Serial.println(F("Couldn't find VS1053, do you have the right pins defined?"));
while (1);
}
Serial.println(F("VS1053 found"));
if (!SD.begin(CARDCS)) {
Serial.println(F("SD failed, or not present"));
while (1); // don't do anything more
}
// list files
printDirectory(SD.open("/"), 0);
musicPlayer.setVolume(20, 20);
musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT); // DREQ int
}
void loop() {
//Initiatlisation - Vérifications
buttonState1 = digitalRead(buttonPin1);
buttonState2 = digitalRead(buttonPin2);
buttonState3 = digitalRead(buttonPin3);
//tweetState = digitalRead(tweetPin);
pressureState = analogRead(buttonPressure);
//Serial.print("val:");
//Serial.println(pressureState);
//algorithme
//PART 1 : La piste 1 se lance
if (buttonState1 == HIGH) {
digitalWrite(ledPin13, HIGH);
musicPlayer.playFullFile("track001.mp3");
Serial.println("bouton1appuyé");
}
//PART 2 : la piste 2 se lance
if (buttonState2 == HIGH) {
musicPlayer.playFullFile("track002.mp3");
Serial.println("bouton2appuyé");
/*au bout de 3 secondes la led s'allume
currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
//Led
digitalWrite(ledPin13, LOW);
unsigned long currentMillis = millis();
}
musicPlayer.playFullFile("track003.mp3");*/
}
//PART 3 : la piste 3 se lance
//Serial.println(buttonState3);
if (buttonState3 == HIGH) {
digitalWrite(ledPin13, HIGH);
musicPlayer.playFullFile("track004.mp3");
Serial.println("bouton3appuyé");
}
//PART 4 : l'imprimante imprime + envoie IFFTT
if (pressureState > 500) {
digitalWrite(ledPin13, LOW);
b = true; // lancer l'impression
//tweetState = 1;
//tweetState = 0;
}
//FONCTION IMPRIMANTE
if (b) {
Serial.println("button2");
//Serial.println("hello");
n = random(34);
ligne1(n);
printer.feed(1);
printer.boldOn();
n = random(34);
ligne2(n);
n = random(34);
printer.boldOff();//text en gras
ligne3(n);
printer.feed(1);
n = random(34);
ligne4(n);
printer.feed(1);
n = random(34);
ligne5(n);
printer.feed(5); //space
printer.sleep(); // Tell printer to sleep
printer.wake(); // MUST call wake() before printing again, even if reset
printer.setDefault(); // Restore printer to defaults
b = false;
}
}
/// File listing helper
void printDirectory(File dir, int numTabs) {
while (true) {
File entry = dir.openNextFile();
if (! entry) {
// no more files
//Serial.println("*nomorefiles*");
break;
}
for (uint8_t i = 0; i < numTabs; i++) {
Serial.print('\t');
}
Serial.print(entry.name());
if (entry.isDirectory()) {
Serial.println("/");
printDirectory(entry, numTabs + 1);
} else {
// files have sizes, directories do not
Serial.print("\t\t");
Serial.println(entry.size(), DEC);
}
entry.close();
}
}
//imprimer une led : test
/*buttonState1 = digitalRead(22);
//Serial.println(buttonState1);
if (buttonState1 == HIGH) {
// turn LED on:
digitalWrite(ledPin13, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin13, LOW);
}*/