Main menu:

Site search

Categories

July 2017
M T W T F S S
« Aug    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Archive

Critical soldering

With a moderate consumption of coffee during the day I get to the hard core part of prototyping; soldering the bread board for the brain content. First I build an exact model on a plastic board, functioning of course, for me to copy. Still, there’s a lot of planning about where to put the wires when there’s just three holes in one row and one of them’s taken of the arduino’s legs. As the board gets more and more crowded I check all connections up against the model at least twice before soldering. Of course I’m not soldering directly on the arduino legs, but as the evening passes and thinking of all the hard work I still feel that I will be dissapointed if it’s not working in the end. But it does work! Yipii..

solderings.jpg

working.jpg

Maybe not the neatest soldering in town, but okay and functioning (have not tried all pins but I’m confident). Even though there’s quite a lot tin on the board I did not fuck up a single connection. It’s been a good day.

Moulding the shell

The shell of the body and the head are moulded separately from shapes in cibatool. I make them roomy enough to be minimized in the seam between the two halves when I know exactly how much space I need for the electronics. I then go for a fit of my newly built brain-unit, i.e. all that’s suposed to be in the head; arduino mini, usb connection, Rfid reader, a flip button for disconnect RX and a pushbutton for resetting the board before uploading. Plus some nice led’s for debugging purposes.

rfid_in_nose.jpg

assembly_in_body.jpg

the_brain.jpg

When assemblying the small motor in the shell with the membrane I struggle a lot. Turns out whenever the membrane touches a bit to tight, the motor stop spinning (and instead, like whenever it’s restrained plays it’s little melody at very low volume). This was not planned for, and after half a day trying to trix and fix it to be stable without success I choose another solution. I build a new SoundBox out of an egg carton, where the motor just vibrates free between the paper walls. This works fine and has quite a nice sound to it as well. A bit like a soft growl, or perhaps even a sniff if you use your imagination. I try it out with some new sniffing-code thats far too slow (have to do something about that). I also try to improve the sound by attaching a flip on the motor that can hit the walls and give me the scraping sound I want. But this also turns out to be stretching it too far; the motor stops every now and then when the flip get stuck, so I end up mounting it without the flip.

soundbox_first.jpg

soundbox_flip.jpg

soundbox.jpg

Strange things happens while I’m testing the motor. The code I’m using just reacts once on the Rfid chip, so to get a new reaction I have to move it out of the readers range and then in again. This is a bit inconvenient since I need both hands to hold the motor and the small soundbox parts like the shell, the membrane and finally the paper cone. But what I discover is that when the chip is positioned at a certain distance from the reader (as shown in picture) it goes in and out of the detection sphere without me moving it physically.
radio_sphere.jpg I dont know if the reason for this is that the readers radio sphere is unstable by nature, constantly growing and shrinking a bit, or if the small sphere from the chip when it’s activated interfere with the readers sphere and therefor create an instability.

Going mini

Today I got the code and simple feedback working on the mini arduino as well. Since I still have to be able to reboot and upload new code to the microprocessor, I need to integrate a disconnect/connect RX pin for the Reader’s data, and a reset button as well.

on_battery.jpg

The final triumph comes when the whole circuit is functioning on a 9V battery :)
Not a giant leap for mankind maybe, but certainly a big step for me.

Shaping the shell

Today I’m building a more acccurate shape and size of the shell for the electronics. The yellow wax dog is scaled 1:1, but there’s going to be an extra layer of soft foam on top of this so it’ll be a bit bigger. I’m deciding how to hold it, and mark out where the feedback areas should be. The red circle is the small buzzing motor in it’s resonance box, the blue is the speaker and the purple is the big vibrating motor. I place them so the vibrations can be felt at different spots on each side of the animal’s body.

sideview.jpg

frontview.jpg

backsideview.jpg

handview.jpg

I’m planning to build two shells, one for the body and one for the head. First I make a model of the body in clay and cover it with wax to test the inner space. Later I’m gonna vacuum mould the shells in pvc on shapes in cibatool.

in_the_shell.jpg

head.jpg

The head shell is going to protect the reader, the mini arduino and the usb-connection, and have two easily accessed buttons for deconnecting the white data-out cable and resetting. The body shell will contain the big motor, a piezo speaker and the small motor in the resonance box with the membrane. Plus a 5V battery in the bum. The tail will be bendable and able to support the dog when sitting, with a steel wire inside. In the concept it’s going to be waggable, but for now I have simplified the prototype a bit. The head and the body will be connected with a type of joint so that the dog’s head can be flexed up and down a bit.

When the dog is coated with the soft foam, the legs are of course mounted a bit further out. I’m planning to stuff the legs with rice or something like that, they are supposed to be heavy, underdimensioned, passive and limp.. It’s gonna have soft ears and be marked with spots (darker and tactilly different fabric) on the grip or at the feedback zones. I also think the nose can be even bigger than this.

speaker_moulded.jpg

I have vacuum moulded a new shape to use as resonance box for the small motor, since the first one is too big for the placement I want it to have in the prototype. This in a stiff acrylic material, the small bubbles on one side comes from me grilling the material enough for moulding. Acrylic plates of this thickness is hard to warm up without boiling, but it’s okay since it’s not going to be visible later.

Code breakthrough

Strcmp.
This small bunch of letters solves something I thought might be a big issue with the code. This is a command in C to express String Compare, that fits perfectly with the mission of detecting the ID’s, something I learned after emergency help from programmer boyfriend. Before this there was a problem with the strings getting compared number by number, and that’s not an ideal way of doing it when ID’s of the same type all start with the same figures. Since Arduino builds on C, and Processing on Java, I suspected there would be a lot more hazzle for me to get it up and work. An inhouse programmer certainly helps..
I prototyped this with three Rfid’s and marked them sun, flower and star to identificate them. Now the code gives a nice string back through the serial port, telling exact ID plus the words “sun”, “flower” or “star”.

read_sunflowerstar.jpg

Electro green

Today I had a hard time making the relay click on a command from arduino. I thought it would be piece of a cake to use the Hello World Blinking LED code for this purpose, It should be clicking in a rhythm.., but there I was wrong. Troubleshooting, I found out the current raises and descends slowly and a bit unsteady with this code, there’s not a sharp ON, and that might be a problem when trying to activate the magnetic pole in the relay. Otherwise I can’t see why it shouldn’t work. First I thought there was a slightly lower current from the arduino output pins than directly from the 5V power supply, but that wasn’t the case either. Hmm.. Anyway not easy to find out when I’m so green on electro. Got a link from Einar about transistor circuits that could help out in this case. It’s a good thing it now seems solvable, even though I don’t know quite how yet.
So, I then figured I got enough motors & buzzers to start set up what to include in the model and where. Going back to my plan of sounds & bzzs to plan how to create each individual feedback, with what and where. The list so far is;
BUZZER - the only thing this can be used to is a complaining or protesting sound, or maybe the sniffing?
PIEZO - I have two types, one gives a clearer sound, the other one a more scraping sound - that when softened with a piece of foam becomes much more likable. This could be for happy, melodic sounds. This element might be exchanged with;
SMALL SPEAKER - from a headset. It would be nice to being able to control the volume, but the speaker sound is harcher than the piezo. At least the muting layer with foam seems to be more efficient with the piezo, the speaker’s sound is hardly affected by this at all.
SMALL MOTOR - mounted in a shell with membrane. Growling. Sniffing? Protesting?
I’m not even sure I need the clicking sound anymore, it just seems like a hazzle without enough payback. In fact the clicking is still a bit metallic, even if isolated with foam, so maybe I’ll drop it. I’ve also started to glance at the game controller motors again. The next component could be this
BIG MOTOR - with a more moderate vibration, this could provide a “back in the throat” growl, furter down in the animals body. I’ve heard this motor (unlike the small mobile phone motors) creates electro-noise, that might interfere with other electronic functions in the circuit. Handy for me Stig dropped by and showed me which condensator to use to avoid this.
I think the two type of motors, and also the placement of them, could be an interresting comination in giving feedback. They have a very different type of vibration.

motor-skiss.jpg Based on this i tried to sketch placement and plan the space in the model. Im planning to place the reader, arduino board plus usb connection in the head, and the batteries and motors for feedback in the body. Both is gonna be capsuled into hard plastic.

motor-skiss-komp.jpg I’m gonna vacuum mould the covers in a doggish shape and not just use a tube or a box. When the toy is wrapped in soft foam the user’s still gonna be able to feel the hard kernel, so the shapes are important. I miss a 7 year old hand to try out the grip with, but I’m trying to imagine how it’s gonna fit.

Supplies

This day has been tweaking one thing in the code, researching the Arduino Forum a bit, soldering soft wires to my motors.. And I went to Elfa to check for relays that may have another sound. A bit weird experience in the store, when I tried to explain I dont care about one or two poles (as long as this dosent affect the sound), or even the extra current they could provide, I just care about the small clicking sounds. The guy behind the desk had to call in his colleague, and I felt like I just asked if theese little cubes comes in pink as well. Anyway, I bought two. They are a lot smaller and does not click at all I’m afraid.
I also bought me some visco elastic Tempur foam for the model. Thats usually hard to find but luckily for me they had some cut offs at Madrassland.
Good shop.

Pictures might be added later..

Rfid read in Arduino

Then I worked a bit on the programming side since the functioning code, for detecting and printing a readable ID in byte, only works in Processing and not in Arduino. First I got no responses at all (turns out I just forgot to turn on the serial port), but after some tweaking and adding one extra number in the arrays (different string function between Processing and Arduino) together with Einar it finally works! Not exactly perfect yet; the code gives a feedback for each of the numbers in an array it encounters that is correct, i.e. 10 times for a Rfid tag. I tried to avoid that by creating a counter that first counts up to ten, before it does the feedback action. Then the code works, just not every time I feed a tag to the reader, oddly enough.. Seems like there has to be something to block the reading from starting over again, maybe some weird hangup with the last space in the array. But I’m sure this is gonna work out fine eventually.

Mechanical Instruments

I got a relay the other day, and after some research on net I finally found enough info in the Physical Computing book to get my mind around the simple action that I want it to do. It turns out a relay is a component that lets you connect AC power from an outlet into your circuit (i.e. for tuning on a 60W ligt bulb) and if wired correctly without burning out the arduino board. This seems like a hazardous thing to do for a newbie like me, but all I want from it is just the click, not actually the power supply. The relay on the picture runs on 5V from the arduino board and when comined with blinking LED code it should be clicking in a rhythm. I still find the click a bit harsh but at least it’s a mechanical sound, not an electric, and therefor not as annoying in the long run. It sounds softer when isolated with tempur. Theese cllicks could maybe be combined with buzzing or maybe tones from a speaker..

relay.jpg

relay_tempur.jpg

motor_resonance.jpg

After a tip from my boyfriend I also try to build a membrane on top of the one of the resonance boxes that look the most like a speaker in shape. The result is really interresting. When the flat moving part on the front of the motor touches the membrane I can distinguish a soft but clear melody. When not touching the membrane the buzz becomes louder and more vibrating. Since I have two vibrator motors I can create variations in feedback with this method as well as with code.

Behaviour and Feedback

Whithout a serial mp3 player (too expensive for my student economy), I decide to try to get some sound out of simpler devices. I make a rough plan for the sounds I initially think is possible to design with simple mechanical components;
SNIFFING - scraping, buzzing, soft low frequency sound. Any time randomly or after a set amount of time when not plyed with? Could be used as a reminder-sound independent of the Rfid business. Or initially in the Rfid detection?
GROWLING - low frequency sound, a bit stackato. When insecure, what is this? Questioning, a bit suspicious. Serious mind state.
STRESSED - A mix of short outbursts of different tones in a fast rhythm. Ambulance inspired but a bit more random.
PROTESTING - Loud, highly pitched tone, medium long. Sharp ending.
SAD - A few sliding tones in a falling pitch. Soft.
HAPPY - Quick tones in a rising pitch, like beads on a string. Soft.
CONTEMPT - Small beads in a falling tone scale. Even softer.
SNEEZING - Ground, long, open sound, followed by a high pitched sharp hard sound.
SLEEPING? - Snoring; a buzzing repeated three or four times.

I started off by testing a piece of code from the Arduino page that plays a melody on a piezo. I tried this with a piezo, a buzzer and different types of speakers.

speakers.jpg

The piezo really makes an annoying sound. I actually think the normal speakers do a better job even though the tone is really artificial. It’s realy loud as well, maybe there could be a way to soften it and turn down the volume as well.

controller.jpg

motor.jpg

I look for components by dissemblying another useless old phone and a new, perfectly functioning but cheap, hand controller.

I want to try other types of vibrator motors, but it seems like the first vibrator motor found is the strongest AND it makes a weak buzzing sound when vibrating. If you put your ear really close you can hear it buzz a melody in the frequencies defined by the arduino code :) Might come handy, and worth trying to improve in volume somehow. For my prototyping purposes right now the most important is to make a sketch of the feedback sounds, and integrate them in the model. The quality of the sound is very important for the expression of the toy. If I can’t soften down the piezo or the speaker sound I might as well drop it.

resonance.jpg

I build resonance boxes in different materials - it makes the sound stronger but not strong enough for all types of feedback. For some of the reactions it could fit though - like a soft, almost not hearable whisper. The dog could be telling you secrets, and the sound may not be intended for public ears.