Introduction: Rot Mug!

Welkom bij de documentatie van het project: Rot Mug! Ik heb een mug gemaakt die je op verschillende plekken kan aaien: haar kop, haar buik, en haar vleugel. Afhankelijk van waar je haar aait, zal ze je iets vertellen over dat lichaamsdeel.

Inspiratie: Ik raakte geïnspireerd door een fascinatie: de relatie tussen de mens en het insect. In het specifiek vind ik het merkwaardig dat mensen sommige insecten lief en schattig vinden(denk aan het lieveheerstbeestje), terwijl ze anderen erg vervelend vinden. Ze aarzelen niet om deze insecten plat te slaan als ze er eentje thuis vinden.

Het doel van mijn interactie: de speler een vreemde, confronterende ervaring geven, door zich in te laten leven met iets waar hen normaal weinig om geeft: een mug. Nadat de speler enig contact maakt met haar, praat de mug in een directe, kinderlijke stem over haar leed.

Deze instructable zal je door mijn proces lijden, maar het kan ook gebruikt worden als basis om je eigen pratende beestje te maken. :)

Supplies

Voor het uiteindelijke ontwerp heb ik de volgende materialen gebruikt:

Arduino onderdelen:

  • Arduino UNO met USB kabel
  • https://www.bitsandparts.nl/product/FUNDUINO_ARDUINO_UNO_R3
  • 2x Force Sensor, groot en vierkant
  • (https://www.tinytronics.nl/nl/sensoren/gewicht-druk-kracht/membraan/taiwan-alpha-membraan-druksensor-44mm-vierkant-met-female-pin-headers)
  • Force sensor, klein en rond
  • (https://www.tinytronics.nl/nl/sensoren/gewicht-druk-kracht/membraan/taiwan-alpha-membraan-druksensor-18mm-rond-met-female-pin-headers)
  • DFPlayer mini
  • (https://www.tinytronics.nl/nl/audio/audio-bronnen/dfrobot-dfplayer-mini-mp3-module)
  • 8 ohm speaker
  • (https://www.bitsandparts.nl/Speaker-8-Ohm-0-5-Watt-Mini-Metal-p1924276)
  • 1K weerstandje
  • (https://www.bitsandparts.nl/Weerstand-1K-Ohm-1-4W-5pct-p101790)
  • 3x 10K weerstandje
  • (https://www.bitsandparts.nl/Weerstand-10K-Ohm-1-4W-5pct-p101270)
  • Kabels, het liefst veel van dezelfde kleur zodat je de kleuren kan coördineren. Ik zelf heb gebruikt:
  • Vijf rode kabels (male to male)
  • Vijf zwarte kabels (male to male)
  • Een witte kabel (male to male)
  • Drie gele kabels (male to male)
  • Drie groene kabels (male to male)
  • Zes blauwe kabels (male to female)

De lengte van de kabels zal afhangen van de grootte van je project.

Verder

  • Computer met Arduino IDE en Fritzing software
  • 2gb micro SD kaart
  • Soldeerkit
  • Protoboard
  • Hout (MDF, 3mm dik
  • Lasersnijder
  • Een hoop verpakkingsmateriaal / afval om de behuizing te decoreren
  • Knutselspullen zoals een schaar, tape, en lijm

Step 1: Digitale Blockout Maken

Ik heb in Blender 3D een simpele blockout gemaakt van mijn concept, om een idee te krijgen van hoe het ontwerp er uit zou kunnen gaan zien. Ik was op dit punt nog aan het twijfelen of ik de mug wilde maken van hout, of met de 3d printer. Wel wist ik dat ik het uiteindelijke resultaat wat rommeliger wilde hebben (in een 3d software kost het veel tijd om afval op het diertje te plakken, maar met een fysiek process krijg je al snel een organisch gevoel). Ik wil het afval op de mug plakken omdat dit toevoegt aan z'n zieligheid. Ook is het zo dat muggen ook last hebben van de invloed die de mens op de aarde heeft, waar de mug ook over vertelt. Door haar te beplakken met plastic wilde ik dit laten zien.

Step 2: Prototypen Met Lampje En Buzzer

Omdat ik een totale arduino noob ben, ging ik eerst kleine testjes doen met de LDR, de buzzer, en een lampje. Het basis principe is hetzelfde als mijn eindproject: wanneer je een sensor aanraakt, zal er geluid afspelen. Ook zal er bij dit prototype een lichtje branden.

Step 3: Behuizing Testen Met Karton

Daarna heb ik een kartonnen prototype gemaakt om een gevoel te krijgen voor het maakprocess van de behuizing,waar de gaten moeten zitten en met welk materiaal ik het zal uitwerken. Ik heb hierna besloten om de behuizing van hout te maken. Dit is stevig, maar ik heb nog steeds veel controle over het uiterlijk. Ook is het een goede basis om dingen op te plakken.

Step 4: Audio Opnemen

Dit is wat de mug zegt bij het aaien van de verschillende lichaamsdelen. Zoals je ziet, is het een zielig beestje.

Ik heb mijn stem opgenomen, en deze audio bewerkt met de website https://voicechanger.io/, om het meer te laten klinken als een insect.

De audio tracks zijn opgeslagen als aparte mp3'tjes, die op de microSD kaart staan.

Step 5: Onderdelen Aanschaffen En Uittesten

Tijd om te beginnen aan het eindproduct! Ik heb de speaker, de MP3 module, en de force sensors aangeschaft.

Ik heb de volgende tutorials gebruikt om de onderdelen te testen:

  • "Arduino Speaker tutorial" van LearnEDU https://www.youtube.com/watch?v=n_SA5QnwNuI
  • "Best Way to Play Audio on Arduino! DFPlayer mini / MP3-TF-16p Tutorial" van Just Baselmans https://www.youtube.com/watch?v=7WiSeQxb1bU

De eerste tutorial legt uit hoe je de speaker verschillende tonen kan laten maken op basis van hoe hard je op de force sensor drukt. Dit was een heel leuk experiment om te doen!

De tweede tutorial legt uit hoe je jouw eigen geluid af kan laten spelen met de DFPlayer Mini. Het duurde mij even om deze aan de praat te krijgen, omdat de tutorial niet benoemt dat de code niet de baud waarde van 9600 gebruikt, maar 11520! Maar, toen ik dit veranderde werkte het prima. :)

Je kan beide experimenten zien in de bijgevoegde filmpjes.

Step 6: Breadboard Circuit Ontwerpen

Daarna was het tijd om alle onderdelen aan te sluiten, zodat ik geluid kon afspelen met de input van de force sensors. Met de software Fritzing heb ik een tekening gemaakt om het circuit duidelijk voor me te hebben. Daarna heb ik deze nagebouwd. Helaas is de fysieke versie niet zo netjes als de digitale. :P

Step 7: De Interactie Programmeren

Toen ik had getest of mijn onderdelen werkten met het nieuwe circuit, was het tijd om te gaan programmeren! Maar, eerst maakte ik een schema om de logica goed te begrijpen die ik nodig had. Ik werk vooral met if statements, zodat de audio van de verschillende delen van de mug niet tegelijk af kunnen spelen. Daarbij heb ik gebruik gemaakt van de 'busy' pin van de DFPlayer, die via een waarde van 0 of 1 aangeeft of audio aan het afspelen is of niet.


De comments zijn in het engels, maar hier is de code die de mug aanstuurt:

(note: het stukje in de functie ''DFPlayerSetup" is niet door mij geschreven, het komt van de eerderbenoemde tutorial van Just Baselmans)




// including the neccessary libraries for the DFPlayer to work
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"


// initialize software serial on pins 10 and 11
SoftwareSerial mySoftwareSerial(10, 11);  // RX, TX
DFRobotDFPlayerMini myDFPlayer;


// variables for force sensor pins and the 'busy' pin of the DFplayer
#define vleugelPin A0
#define buikPin A1
#define hoofdPin A2
#define busyPin 9


// checks whether or not audio is playing (1 = not playing, 0 = playing)
int busyState;


// variables for the force sensors' values starts at 0
int vleugelReading = 0;
int buikReading = 0;
int hoofdReading = 0;


// amount of force that has to be applied on the sensors before the sound starts playing
int minimumForce = 300;


void setup()
{
  // helps to check whether or not the DFplayer is initializing
  DFPlayerSetup();
}


void loop()
{
  // reads the values of the sensors and stores them to the variables
  vleugelReading = analogRead(vleugelPin);
  buikReading = analogRead(buikPin);
  hoofdReading = analogRead(hoofdPin);
  busyState = digitalRead(busyPin);


  // plays three different audio tracks when the respective sensor is touched and busyState is 1
  PlayAudioWhenForce();
}

void DFPlayerSetup()
{
  // serial communication with the module
  mySoftwareSerial.begin(9600);
  // initialize Arduino serial
  Serial.begin(9600);
  // check if the module is responding and if the SD card is found
  Serial.println();
  Serial.println(F("DFRobot DFPlayer Mini"));
  Serial.println(F("Initializing DFPlayer module ... Wait!"));


  if (!myDFPlayer.begin(mySoftwareSerial))
   {
    Serial.println(F("Not initialized:"));
    Serial.println(F("1. Check the DFPlayer Mini connections"));
    Serial.println(F("2. Insert an SD card"));
    while (true)
      ;
  }


  Serial.println();
  Serial.println(F("DFPlayer Mini module initialized!"));
  // initial settings
  myDFPlayer.volume(28);       // Volume 28
  myDFPlayer.EQ(0);            // Normal equalization
}


 // for debugging :)
void PrintFSRValues()
{

  Serial.print("vleugel sensor value:");
  Serial.println(vleugelReading);


  Serial.print("buik sensor value:");
  Serial.println(buikReading);


  Serial.print("hoofd sensor value:");
  Serial.println(hoofdReading);
}


// for debugging :)
void PrintBusyState()
{
  Serial.print("busy state is: ");
  Serial.println(busyState);
}


// if the minimum force is applied and there is no audio playing, play the correct audio track
void PlayAudioWhenForce()
{
  if (vleugelReading > minimumForce && busyState == 1)
  {
    myDFPlayer.play(1);
  }


  else if (buikReading > minimumForce && busyState == 1)
  {
    myDFPlayer.play(3);
  }


  else if (hoofdReading > minimumForce && busyState == 1)
  {
    myDFPlayer.play(2);
  }
}

Step 8: Het Circuit Solderen

Toen was het tijd om alles aan elkaar te solderen, zodat het lekker stevig was. Net zoals eerder is het digitale schema netjes, maar de fysieke versie... tja, die is wat rommeliger. Maar het werkt wel! ;) Dit schema is bedoeld voor een protoboard waar niet alle rijen aan elkaar verbonden zijn: de kabels moeten dus nog met soldeertin verbonden worden over het bord.

Jammer genoeg ben ik helemaal vergeten om een foto te maken van gesoldeerde verbindingen voordat ik deze in de behuizing heb gedaan. :( Ga er maar vanuit dat het er uit zag zoals het digitale schema, maar dan rommeliger :P.

Step 9: De Behuizing Maken

Met de website Makercase (https://www.makercase.com) Heb ik de doosjes ontworpen voor het lichaam en de kop. Waar nodig heb ik gaten toegevoegd, zodat de kabels van het circuit er doorheen kunnen lopen. Ook heb ik de vleugels toegevoegd.

Met een lasersnijder heb ik de vlakken uit hout gesneden. Op de rechter foto kan je zien hoe groot alle vlakken zijn geworden.

Later zul je zien dat ik niet goed heb uitgepland waar het gat aan de achterkant moest komen: deze had , omdat de arduino kabel niet handig door het midden van de doos kan. Deze stap was zeker een goed leermoment in het plannen.


Step 10: De Kabels in De Behuizing Plaatsen

Deze stap was even passen en meten. Ik kwam er achter dat ik had overschat hoe veel ruimte er in de behuizing zou zijn: mijn kabels zijn vrij lang, dus dit was niet handig. Mijn tip hier is om OF je behuizing ruimer te maken dan je denkt dat nodig is, of om te zorgen dat je kabels niet langer zijn dan nodig (wat bij mij niet het geval is :')). Maar, met wat slim gebruik van tape lukte het me toch om alles in het doosje te krijgen. De blauwe kabels komen via de gaten er uit, dit zijn de force sensors die op het lichaam zitten. Ook de speaker zit aan de buitenkant van het lichaam.

Step 11: Het Eindresultaat!

Nadat ik de mug had gedecoreerd, was ze klaar! :) In dit filmpje kan je het project werkend zien: https://youtu.be/ZwMPWr6J5N0.

Ik ben benieuwd wat jullie van haar vinden: vinden jullie haar lief? Of eigenlijk toch een beetje irritant? Hebben jullie medelijden met haar?

Step 12: Reflectie

Pfoe, dit was me eens een project out of my comfort zone. Ik ben voornamelijk een digitale maker, dus eigenlijk was bijna elke stap compleet nieuw voor mij, van het bedenken van de circuits, tot de juiste onderdelen uitzoeken om te gebruiken, tot het maken van de behuizing en het programmeren.

Dit project had voor mij dan ook zeker wat frustrerende momenten. Maar, ik heb er ook plezier mee gehad, het was ontzettend gaaf om de interactie werkend te zien. Een groot leerpunt voor mij ligt bij het vooruit denken: ik vond het vaak lastig om te overzien wat er allemaal moest gebeuren, en hoe ik ervoor zorgde dat alles goed samenkwam. Denk bijvoorbeeld aan het solderen: ik had niet goed nagedacht over hoe alles in de behuizing zou passen. Volgende keer kan ik dit oplossen door een prototype te maken van de behuizing, en daar de breadboard set up in te doen. Zo kan ik zien hoe lang de kabels moeten zijn.

Ook denk ik dat er conceptueel nog wat verbeterpunten liggen. Ik wilde het concept simpel houden, omdat er voor mij al veel uitdaging lag bij het maakprocess. Maar, ik denk dat ik de mug wat meer diepgang had kunnen geven in haar dialoog. Ook had het visuele ontwerp wat consistenter kunnen zijn, het rommelige past bij wat ik wilde vertellen, maar wat als ik meer had nagedacht over kleurgebruik? Bijvoorbeeld een zwarte mug met allerlei rode versieringen. Dit zou denk ik een meer dramatisch gevoel overbrengen dan wat ik nu heb.

Ondanks alles ben ik trots op mijn eerste arduino project! Ik heb geleerd hoe je zelfstandig aan de slag kan gaan met verschillende onderdelen, hoe je de beste tutorials vind op het internet en hoe je kan debuggen, zodat je er makkelijk achterkomt waar de bugs zitten. Dit geeft me een basis om volgende keer een heel ander soort project te proberen. Ook heb ik geleerd hoe de lasernsijder werkt, en hoe je hiermee een behuizing kan maken!

Als allerlaatste wil ik mijn vriendin Meta bedanken, die me enorm heeft geholpen als arduino noob. Ik kon altijd bij haar terecht. DANKJEWEL META <3