Our Adventures

Author: admin

  • 18 Sept Camping Steiner – Bozen

    Edit page

     

     

     

     
    Today we had a good look around the camp site before we went to Bozen. They even have cylindrical “barrels” for the hermits amongst us who want to live Diogenes style. By contrast, the camper vans are squeezed together like sardines.

    In Bozen we had elevenses in a small café. How they knew I was coming we will never know and what does that button do on Gerhild’s teapot?


    This was my favourite in the graffiti contest.

    Bozen’s old town is car-free so cycling is very popular.

    This is the bendy bike bridge from the modern art museum.

    As we are living in a tiny house, we went to look for Bozen’s tiny museum. On the way we found this old age pensioner of a tree, rescued from the compost heap by its neighbourhood friends. There is a carved hand at the bottom, holding tightly on to the chain.





    The culinary speciality of the day was when we stopped for a break and Gerhild spoke English while I spoke German to an Asian-looking Italian-speaking waitress with the result that I got a hot cup of coffee with 2 balls of lemon ice cream floating in it. Gerhild insisted that it tasted delicious after I had swapped it for her expresso. Laughter makes things taste better!

  • 17 Sept Camping Steiner – Ritten

    Edit page

     

     

     

     

    Today we are doing a walk dedicated to Sigmund Freud.

    First we had to take the lift up to Oberbozen. Amazing view, amazing price which is zero, due to the Bozen Card that you get when you book accommodation, which lets you do most touristy things for free and encourages you not to drive absolutely everywhere.

    At regular intervals we found these skewy benches with an illustration from Freud’s life & work.

    Inspired, Gerhild then had a go at Plato’s allegory of the cave. Are those two shadows on the floor really us, or is there more to see if we turn around?

    Can’t complain about the view.

    Rather nice porcini mushroom risotto at Babsi’s even if the waiter forgot to order half of the food. Then we took the ride back down to Bozen.

  • 16 Sept Camping Steiner – Jenesien

    Edit page

     

     

     

     

     

    This is the group of new cabins, each one unique. Ours is the one in the middle.

    All of that light-coloured wood and those nice cubby holes in the kitchen.

    Today we took the lift up to Jenesian and walked through the forest along route 32A. The small boy that you can see asked “papa, how old is this lift?”.



    In the evening we walked through Leifers to Gelateria Monny for a delicious ice cream in “disposable” purple plastic pots, which Gerhild then collected following the motto “waste not want not” – especially when it’s purple.

  • 15 Sept Camping Steiner

    Edit page

    Long drive up to over 2509 m on the Timmelsjoch Hochalpenstraße, with a 2 hour wait in Austria for two different accidents to be cleared.

    “Der Steg”

    Well it is the world’s highest motorcycle museum.

    “Der Schmuggler”

    Camping Steiner

    ArchiCabins – New after 60 camping-years

    60 Jahre Camping-Park Steiner: Innovation trifft Tradition
    Neues ArchiCabin-Ensemble

    Wir eröffnen die Saison 2018 mit einer Überraschung: Anlässlich des 60. Jubiläums freuen wir uns Ihnen das neue Cabin-Ensemble zu präsentieren!
    Aus bautechnischen Gründen müssen wir uns schweren Herzens von unseren Bungalows verabschieden. Die beliebten Holzhäuschen haben jahrzehntelang ihren Dienst erwiesen und unseren Gästen viele schöne und unvergessliche Momente beschert. Im Wissen um die Eigenart unseres Hauses haben wir im Architekturbüro und Künstlerkollektiv columbosnext aus Innsbruck den idealen Partner gefunden um unsere Ideen zu verwirklichen.

    Der erste Teil dieses größeren Sanierungsprojektes umfasst den Bau eines neuen Cabin-Ensembles das unter den alten Lindenbäumen der landschaftlichen Eigenart des Camping-Park Steiner angepasst ist. Die Anzahl der Häuschen ist auf sieben reduziert worden um dadurch mehr (Lebens)Raum und (Lebens)Qualität zu schaffen. Egal ob nach einer Bergtour in den Dolomiten, einem Schwimmnachmittag am Kalterer See, einer Radtour ins Südtiroler Unterland oder einem Einkaufsbummel in Bozen. Die Cabins bieten außer Ihrem architektonisch-kreativem Charakter auch das 1-Raum-Gefühl, welches durch die verschiedenen Ebenen doch eine gewisse Privatsphäre erlaubt.

    Die komplette Holz-Einrichtung soll im „Urlaubs-Häuschen“ ein wohliges Ambiente schaffen und aus dem Standard ausbrechen ohne auf Nachhaltigkeit zu verzichten. Eines der ArchiCabins verfügt auch über Bad/WC. Grundsätzlich wollten wir aber im Sinne der Einfachheit – Camping eben! – auch durch das Weglassen desselben an das Campingflair der letzten 60 Jahre anknüpfen, um nicht wie eine Ferienanlage zu wirken, welche es bereits zu Hauf gibt. Diese Einfachheit war auch in den letzten Jahrzehnten unser Begleiter und gehört zu unserer Philosophie.

    Top: Wir freuen uns mit unseren Gästen seit Juli 2017 über die neue Bozen-Card die kostenlose Mobilität in ganz Südtirol (inkl. Zug bis Innsbruck und Trient) beinhaltet. Auch die Museen (Ötzi Museum, Reinholds Messner Mountain Museum,….) und einige Seilbahnen sind kostenfrei für alle CampingPark Steiner Gäste.

  • 14 Sept Hofgut Hopfenburg – Buttenhausen

    Edit page
     

     

     

    An atmospheric start to the day

    Zopf for breakfast with quark and Claudia’s home-made apple jelly. Delicious!

    The camp site’s reading room. Just in case you forgot your own book.

    Today we had a look around Buttenhausen, home of the famous Gustav Messmer who wanted to cycle up into the sky.

    Pessimistically, they called him the Icarus of Lautertal, so that’s what the cafe is called, with Superman crashing down into the garden.

    There is even a short film here https://gustavmesmer.de/ which starts as soon as the page opens.

    After some urgent refreshment with a Feuerwehrkuchen (recipe)

    …we visted the Jewish cemetery overlooking the village.

  • 13 Sept Walk Hofgut Hopfenburg to Seeburg

    Edit page
    Today we walked from the camp site to Café Schlössle and back. About 18 km. We tried to take a bus, but the bus driver sold us a ticket, drove off and then turned around to say that he doesn’t go to Trailfingen, having just sold us 2 tickets to go there. Bizarre!

     

     

    The goats were keen to follow us

    The Trailfinger Schlucht

    Music to the farmer’s ears

    Café Schlössle – so what do they keep in the pond?

    Hippopotamuses!

    Without the manual, how do you sit on these?


    For Swabian children who haven’t yet got the knack of walking.

  • 12 Sept Hofgut Hopfenburg

    Edit page

    Ferienanlage Hofgut Hopfenburg

    The advertising

    The cosy reality

    Well, we are sleeping in a “Schäferwagen” – a shepherds waggon, so in case you can’t sleep…

    What to drink if there’s no running water?

    Time for a Schnäpsle

  • The shleep machine

    As a 10 year old boy in in the sanatorium in Davos, Switzerland, we sang Brahm’s lullaby (Wiegenelied) every night before the lights were turned out and we were supposed to sleep. Counting sheep is supposed to help you sleep too.

    Sing along if you like.

    Guten Abend, gut’ Nacht,
    mit Rosen bedacht,
    mit Näglein besteckt,
    schlupf unter die Deck’:
    Morgen früh, wenn Gott will,
    wirst du wieder geweckt.

    There’s even an English version, which is new to me

    Lullaby and goodnight,
    With roses bedight,
    With lilies o’er spread
    Is baby’s wee bed.
    Lay thee down now and rest,
    May thy slumber be blessed.

    Even Bing Crosby had a go (link to Youtube)

  • Tandemtaxi

    Tandemtaxi 1991

    Shown in

    Berliner Kurzfilmrolle Okt 1991
    Martin-Gropius Bau, Berlin

    Gerhild Gäbler-Booth zeigt auf witzige Weise, wie im autogestressten Berlin das Tandem als Taxi eine echte Chance hätte“ Berliner Morgenpost 31 Okt 1991.

    Studentenfilme der Kaskeline-Film-Akademie
    Kino im Zeughaus, Berlin

    London Film Festival

    Umwelt-Filmfestspiele Wien 1993

    Filme der Studenten der Kaskeline-Film-Akadamie Feb 1994
    Sputnick, Berlin

  • White rabbit

    I’m late, I’m late!

  • Dizzy Duck

    This duck spins so fast that she gets spots in front of her eyes.

  • Mechanical Mutt


    This is like Kim’s dog, but it can do two tricks. It can open its jaw (press its right leg) AND wag its tail (press its left leg).

  • TXT ME details

    IMG_3159

    IMG_3157


    How does it work?

    There is an Arduino Uno in the box, with a GSM shield. Most of the software was taken from the Arduino examples.


    How was it made?

    P1080292

    I drew the parts in Inkscape and went to the Fablab to cut 5 mm perspex using their 40 Watt Epilog Zing 6030 laser cutter.

    IMG_3073

    IMG_3074


    What was difficult?

    IMG_3275The servomotors were challenging. A 5 Euro servo with plastic gearing from Conrad liked to vibrate incredibly violently when the arm was connected to it and I tried to move it. A 20 Euro servo was stable but did not cover the range of angles that I needed. A 10 Euro servo was stable, but … over the course of a busy evening, the servo motor’s precision varied, so that it started missing the “A” arm completely. On the following morning, it was back to normal. I guess that even more money is required to get a servo which has the required precision, or maybe some external sensors could offer regular auto-calibration.

    The Arduino was very sensitive to my soldering iron switching on and off as the iron controls its temperature. As I couldn’t do too much about that, once I had understood what was happening, I added a heartbeat LED which flashes for each pass through the main loop, to give me confidence that the Arduino was still running and not hung up, causing me to look for non-existent faults.


    Showing it – What’s the response?

    IMG_3206

    IMG_3215

    From the fantastic Instructables web site

    Instructables_3_Sept

    stnfre001
    It would be really cool to add a LED light to each letter, so that it lights up, when that letter is displayed.

    KronoNaut
    I adore this project.

    askjerry
    I tried to play the video… but it says “Error playing video, video could not be displayed.” Perhaps you can upload it to YouTube and post a link.

    crispernakisan
    This is pretty sweet. I like the design on the letters themselves, for sure. Yes, please do add a video… but with a short text for those of us with short attention spans. speaking of short attention spans, I’d probably need to add a “replay previous text” button.

    crispernakisan
    Oh… there is a video!

    rimar2000
    Very interesting. Maybe a video…

    TheB1
    Very creative. Though I can’t imagine what will happen the first time someone decides to text and drive with this device.

    MsSweetSatisfaction
    Definitely a different take on texting than anything else I’ve ever seen. Nice job, and thanks for sharing!


    From Facebook

    https://www.facebook.com/instructables
    176 people like this.

    Brandon Sims
    Maybe a laser on the arm to illuminate the letter when it pops up.

    Fernando Contreras
    que hace

    Corinne Whittington
    COOL

    Anthony Borrie
    Cool

    Put Likes First

    We ought to try this stuffs

    Crusieth Maximuss Whoa…

    John Smith
    Neat


    On the first day

    Hi englishman_in_berlin!
    Congratulations, your Step by Step Instructable “TXT ME” was just featured by one of our editors! Look for it in the Technology category. Being featured means we think you are awesome. Keep up the great work!

    Hello englishman_in_berlin!
    Your Step by Step Instructable “TXT ME” just became popular on Instructables!
    Being popular means that tons of people are checking out your Step by Step Instructable and telling us they really like it. Keep up the great work!

    Congratulations englishman_in_berlin!
    “TXT ME” has been featured to the Instructables homepage! Being featured by our editors means your Instructable stands out and represents one of the best we have.
    Projects like yours make Instructables a great place, and we really appreciate your time and effort. As a thank you, we’d like to give you a 3 Month Pro Membership to Instructables.

    Thanks for being part of our community!

    Instructables Team @ Autodesk | http://www.instructables.com/


    Credits


    How would I have done this without ?


  • Source code


    Sorry, the spaces get zapped so this is a bit of a mess.
    /*
    TEXT ME

    This sketch, relying on the Arduino GSM shield, waits for an SMS
    message and displays it through the serial port and on Kim's
    TEXT ME machine.

    Some code from Javier Zorzano / TD
    http://arduino.cc/en/Tutorial/GSMExamplesReceiveSMS

    */
    /******************************************************************************************
    * T H E C I R C U I T
    *
    * An external power supply is mandatory, otherwise the GSM unit doesn't work
    *
    * The GSM shield is plugged onto an Arduino Uno
    * There are two servos both connected to GND and +5V
    * The rotary servo control line goes to pin 5
    * The vertical servo control line goes to pin 10
    * The ready LED goes to pin 11 via a 200 ohm resistor
    * The cathode of the ready LED goes to GND
    *
    ******************************************************************************************/
    #include // Include the GSM library
    #include // Include the servo library

    #define PINNUMBER "XXXX" // PIN number for the GSM SIM card - replace XXXX with actual value
    #define rotaryPin 5 // Connect pin 5 to the rotary servo do not use 9 -unstable
    #define verticalPin 10 // Connect pin 10 to the vertical servo
    #define readyLed 11 // Connect pin 11 to LED which shows that GSM unit is connected

    GSM gsmAccess; // Initialise the library instances
    GSM_SMS sms;
    char senderNumber[20]; // Array to hold the number that an SMS is retrieved from
    Servo rotaryServo; // Create servo object to control rotary servo
    Servo verticalServo; // Create servo object to control vertical servo

    // This is where the "calibrated" values are entered so that the rotary servo moves to the right place to find the letter concerned

    int rotation [] = {
    161, 154, 148, 142, 136, 130, 124, 118, 112, 105, 99, 92, 85, 78, 72, 66, 60, 54, 48, 42, 36, 30, 24, 19, 12, 7};

    int numberOfLetters = 26;
    int currentServoPosition;
    int newServoPosition;
    int up = 170; // Two extremes of vertical servo
    int down = 117;
    int inactivityTimer = 0;

    /**************************************************************************************
    * Set up
    **************************************************************************************/
    void setup()
    {
    Serial.begin (9600); // Initialise serial communication at 9600
    rotaryServo.attach (rotaryPin); // Attach the rotary servo
    verticalServo.attach (verticalPin); // Attach the finger servo

    boolean notConnected = true; // GSM connection state
    parkArm(); // Move to a safe space if not there already
    prompt();
    parkArm(); // Move to a safe space

    while (notConnected) // Wait until GSM connection is established
    {
    digitalWrite(readyLed, LOW); // Turn the ready LED off

    if (gsmAccess.begin (PINNUMBER) == GSM_READY)
    notConnected = false;
    else
    {
    Serial.println ("Not connected");
    delay (1000);
    }
    }

    Serial.println ("GSM initialized"); // Confidence building message
    Serial.println ("Waiting for messages");
    digitalWrite(readyLed, HIGH); // Turn the ready LED on
    }

    /**************************************************************************************
    * Main loop
    **************************************************************************************/
    void loop()
    {
    char c;

    // If there are no SMSs available at regular intervals make a show

    inactivityTimer = inactivityTimer++; // Count up for each loop
    if (inactivityTimer > 300) // Approx. 1 sec per loop
    {
    inactivityTimer = 0; // Reset the tomer
    prompt(); // Draw attention to yourself
    }

    // Heartbeat on LED to show that loop is still looping

    digitalWrite(readyLed, LOW); // Turn the ready LED off
    delay(100); // Time that LED is off
    digitalWrite(readyLed, HIGH); // Turn the ready LED on

    // If there is an SMS available

    if (sms.available())
    {
    inactivityTimer = 0; // If message then reset inactivity timer
    Serial.println("Message received from:");

    // Read message bytes and print them
    while(c=sms.read())
    {
    raiseLetterArm (c); // "Print" to perspex arms
    }
    sms.flush(); // Delete message from modem memory
    }

    delay(1000);

    }

    /**************************************************************************************
    * Prompt any users
    **************************************************************************************/
    void prompt()
    {
    raiseLetterArm (84); // "Print" TEXT ME to perspex arms
    raiseLetterArm (69);
    raiseLetterArm (88);
    raiseLetterArm (84);
    raiseLetterArm (77);
    raiseLetterArm (69);
    }

    /**************************************************************************************
    * Put the arm out of harm's way
    **************************************************************************************/
    void parkArm()
    {
    rotaryServo.attach (rotaryPin); // Attach the rotary servo
    newServoPosition = 180; // Park where the arm can do no harm when switched on/off
    currentServoPosition = 9; // Make sure that it is clear that a move is needed
    rotateServo(); // Move the rotary servo
    delay(2000); // Wait for the servo to get there
    rotaryServo.detach (); // Keep things quiet
    }

    /**************************************************************************************
    * Raise the letter arm specified
    **************************************************************************************/
    void raiseLetterArm (int charEntered)
    {
    rotaryServo.attach (rotaryPin); // Attach the servo on pin

    // 'A' is 65 'a' is 97 'Z' is 90
    if ((charEntered < 65) || ((charEntered > 91) && (charEntered < 97)) || (charEntered > 123))
    {
    // Then is not A to Z so do nothing - wait a bit
    }
    else
    {
    // Make lower case into upper case
    if (charEntered > 96)
    {
    charEntered = charEntered - 32;
    }
    if ((charEntered > 64)&&(charEntered < 91)) { newServoPosition = rotation [charEntered - 65]; // Set where to turn the arm to rotateServo(); } // Show what was sent: Serial.print("You sent me: \'"); Serial.write(charEntered); Serial.print("\' ASCII Value: "); Serial.println(charEntered); pressDown (); } rotaryServo.detach (); // Stop random movements } /********************************************************************************* * Push the finger down - make sure it is up before returning ! *********************************************************************************/ void pressDown() { verticalServo.attach (verticalPin); // Attach the finger servo delay(500); for (int i= 0; i < up-down; i++) { verticalServo.write (up-i); // Finger down one degree at a time delay(10); } delay(2000); for (int i= 0; i < up-down; i++) { verticalServo.write (down +i); // Finger up one degree at a time delay(10); } delay(500); verticalServo.detach (); // Stop random movements } /********************************************************************************* * Move the arm around - make sure that the finger is up before using it *********************************************************************************/ void rotateServo() { int difference; int noOfSlowSteps = 5; // No of degrees to move slowly was 5 int waitForServo = 20; // Do not reduce too much or it misses steps verticalServo.attach (verticalPin); // Attach the finger servo verticalServo.write (up); // Make sure it's out of the way verticalServo.detach (); // Detach difference = newServoPosition - currentServoPosition; if (difference > noOfSlowSteps)
    {
    rotaryServo.write (newServoPosition - noOfSlowSteps); // Quickly move
    currentServoPosition = newServoPosition - noOfSlowSteps; // Note new position
    }
    if (difference < -1*noOfSlowSteps) { rotaryServo.write (newServoPosition + noOfSlowSteps); // Quickly move currentServoPosition = newServoPosition + noOfSlowSteps; // Note new position } difference = newServoPosition - currentServoPosition; // Recalculate difference if (difference > 0)
    // Then slowly increase current position until difference is 0
    {
    for (int i = 0; i < difference+1; i++) { rotaryServo.write (currentServoPosition + i); delay (waitForServo); } } else // Then slowly decrease current position until difference is 0 { for (int i = 0; i < (-1*difference)+1; i++) { rotaryServo.write (currentServoPosition - i); delay (waitForServo); } } currentServoPosition = newServoPosition; // Remember where arm is } /********************************************************************************** * windscreen wiper test **********************************************************************************/ /* for (letter=0; letter < numberOfLetters; letter++) { newServoPosition = rotation [letter]; // Set where to turn the arm to rotateServo(); // Serial.print("rotation [letter] "); // Serial.println(rotation [letter]); } delay(5000); for (letter=numberOfLetters; letter +1 > 0; letter--)
    {
    newServoPosition = rotation [letter]; // Set where to turn the arm to
    rotateServo();

    // Serial.print("rotation [letter] ");
    // Serial.println(rotation [letter]);
    }
    delay(5000); */

    /**********************************************************************************
    * To calibrate the rotary servo
    **********************************************************************************/
    /* - commented out, define potpin and uncomment to use
    val = analogRead(potpin); // Reads the value of a potentiometer connected between +5 and GND on potpin (value between 0 and 1023)
    val = map(val, 0, 1023, 0, 179); // Scale it to use it with the servo (value between 0 and 180)
    rotaryServo.write(val); // Sets the servo position according to the scaled value
    delay(15); // Waits for the servo to get there
    // print out the value you read:
    Serial.println(val); */

  • Spotted wagtail details

    Making a spotted wagtail

    This is related to twelve tweeters, so check them out for more detail on the birds. Guaranteed completely free from electronics. The only digits involved here are those that you were born with.

    Bird’s eggs are tricky devils to hold still while drilling carefully angled holes, so a jig to hold them still is a real help.

    A vice is OK to cut balls in half, but you need another jig to hold the hemispheres while you chisel or drill holes.


    You need a box to put the mechanism in. Note the bar at the bottom to stop the paddles from dropping out.

    You need two paddles, one to push the head and one for the tail. There is nothing to stop the head from twisting so its paddle has a little extra to stop the brass rod from turning too far. The cylindrical pieces stop the springs from slipping.


    The bottom of the box with the paddles inlace, held by the brass rod which goes from side to side of the box.

    One of two springs, at the end closer to the hinge to reduce the force.

    The bits to make a tail with a hinge hole and a push hole.

    It’s tricky to bend the push rods in the right place.

    Crest and eyes glued in place. The feet have to wait until the box has been painted.


    Watch that tail wag! 100% digitally operated.

     

  • Edward Snowden details

    How should it work

    An Arduino Uno is connected to two HRLV-MaxSonar®-EZ1 ultrasonic sensors, which should measure the range of the nearest objects they can find. By simple triangulation, the single servo controlling the eyes should point them in the right direction.

    What’s the problem?

    The servos do not provide a stable range reading. The value jumps around for no discernible reason. Maybe the two servos interfere with one another? Theoretically, they are enabled one after the other to prevent that from happening. I need to spend more time diagnosing this. Maybe I should change to a Raspberry Pi and use face recognition?

    Strong suspicion

    Arduino serial i/f and servo i/f are interfering with one another.

    Search using “https://duckduckgo.com/?q=arduino+serial+servo+problem+interrupt&t=osx”

    See ServoTimer2 http://forum.arduino.cc/index.php/topic,21975.0.html

    Source code
    /****************************************************
    * Read the serial output from two ultrasonic sensors
    * See http://www.maxbotix.com/Ultrasonic_Sensors/MB1013.htm
    * Kim Aug 2014
    ****************************************************/
    #include // Include the library for serial interfaces
    #include // Include the library for servos

    // Which pins are used for what?
    #define txPinLeft 3 // Pin configured but not used as nothing is sent to sensor
    #define rxPinLeft 8 // Pin used for serial interface for left MB1013 ultrasonic sensor
    // — connects to TX on the ultrasonic sensor
    #define txPinRight 5 // Pin configured but not used as nothing is sent to sensor
    #define rxPinRight 9 // Pin used for serial interface for right ultrasonic sensor
    // — connects to TX on the ultrasonic sensor

    #define pinToControlLeftSensor 13 // Pin to enable the left sensor
    // — connects to RX on sensor
    #define pinToControlRightSensor 12 // Pin to enable the right sensor
    // — connects to RX on sensor
    #define pinToControlServo 10 // Pin to control the servo
    // — connects to orange on the MC410 servo
    // — brown on MC410 connects to GND
    // — red on MC410 to +5 V
    /******************************************************
    * MB1013 Ultrasonic pins
    * GND connect to GND
    * +5V connect to +5 V
    * TX left connect to Ard pin 2 right to Ard pin 4
    * RX left connect to Ard pin 13 right to Ard pin 12
    * AN not connected – analogue output
    * BW held low to enable serial interface
    ******************************************************/

    SoftwareSerial serialLeft (rxPinLeft, txPinLeft, true); // Serial port to receive data from left sensor
    SoftwareSerial serialRight (rxPinRight, txPinRight, true); // Serial port to receive data from right sensor
    // MB1013 output is inverted, so true must be set.

    Servo myservo; // Create servo object to control a servo

    int lastRangeLeft, lastRangeRight, newRangeLeft, newRangeRight; // Help to elimate odd values
    int lastServoPosition =0; // Where the servo was last left least time it was moved

    void setup ()
    {
    Serial.begin (9600); // Start serial port for debug output
    serialLeft.begin (9600); // Start serial port for left ultrasonic sensor
    serialRight.begin (9600); // Start serial port for right ultrasonic sensor
    pinMode (pinToControlLeftSensor, OUTPUT); // Initialize the control pins as outputs
    pinMode (pinToControlRightSensor, OUTPUT);
    myservo.attach (pinToControlServo); // Attach the servo to the servo object
    }

    void loop()
    {
    int servoPosition;
    int rangeDifference;
    int rangeLeft = readLeft (); // Read left US sensor
    int rangeRight = readRight(); // Read right US sensor

    Serial.print (“L “); // debug output
    Serial.print (rangeLeft); // debug output
    Serial.print (” R “); // debug output
    Serial.print (rangeRight); // debug output

    /*********************************************
    * Calculate difference between the sensors
    *********************************************/
    rangeDifference = rangeLeft – rangeRight; // What’s the difference in range from the two sensors?
    rangeDifference = constrain (rangeDifference, -10, 10); // Limit range difference
    Serial.print (” range difference “); // — debug output —
    Serial.print (rangeDifference); // — debug output —
    servoPosition = map (rangeDifference, -10, +10, 60, 135); // Scale the offset to use it with the servo (value between 0 and 180)

    if (lastServoPosition != servoPosition) moveServoTo (servoPosition); // Don’t wake up the servi if there is no need
    Serial.print (” servoPosition “); // — debug output —
    Serial.println (servoPosition); // — debug output —
    }
    /********************************************************************
    * Function to move the servo at a reasonable speed & keep it quiet
    ********************************************************************/
    void moveServoTo (int servoPosition)
    {
    int servoDelay = 20; // 10 is OK
    myservo.attach (pinToControlServo); // Activate the servo output
    if (lastServoPosition > servoPosition)
    {
    while (lastServoPosition > servoPosition)
    {
    myservo.write (lastServoPosition–);
    delay(servoDelay);
    }
    }
    else
    {
    while (lastServoPosition < servoPosition)
    {
    myservo.write (lastServoPosition++);
    delay(servoDelay);
    }
    }
    myservo.detach (); // Seems to stop the servo from chattering
    }
    /***************************************************************
    * Function to read the left ultrasonic sensor via a serial port
    ***************************************************************/
    int readLeft()
    {
    char inData [4];
    int index = 0;

    digitalWrite (pinToControlLeftSensor, HIGH); // Start the sensor ranging
    serialLeft.listen (); // To listen on a port, select it:

    while (serialLeft.available () == 0) // Wait for char to be available http://arduino.cc/en/Serial/available
    {
    }
    // Then keep reading serial input until an R appears marking the start of data
    char rByte = serialLeft.read ();
    while ( rByte != ‘R’)
    {
    rByte = serialLeft.read ();
    }

    // Keep looping until four range characters read from sensor
    while (index < 4) { if (serialLeft.available () > 0) // When a character is available, put in the array
    {
    inData [index] = serialLeft.read ();
    index++;
    }
    }
    digitalWrite (pinToControlLeftSensor, LOW); // Stop the sensor ranging
    return atoi (inData); // Change array of string data into an integer for return
    }

    /****************************************************************
    * Function to read the right ultrasonic sensor via a serial port
    ****************************************************************/
    int readRight ()
    {
    char inData [4];
    int index = 0;
    digitalWrite (pinToControlRightSensor, HIGH); // Start the sensor ranging

    serialRight.listen (); // To listen on a port, select it

    while (serialRight.available () == 0) // Wait for char to be available
    {
    }
    // Then keep reading serial input until an R appears marking the start of data
    char rByte = serialRight.read ();
    while ( rByte != ‘R’)
    {
    rByte = serialRight.read ();
    }

    // Keep looping until four range characters read from sensor
    while (index < 4) { if (serialRight.available () > 0) // When a character is available, put in the array
    {
    inData [index] = serialRight.read ();
    index++;
    }
    }
    digitalWrite (pinToControlRightSensor, LOW); // Stop the sensor ranging
    return atoi (inData); // Change array of string data into an integer for return
    }

    /************************************************************************************************************
    HRLV-MaxSonar®-EZTM pins – see http://www.maxbotix.com/documents/HRLV-MaxSonar-EZ_Datasheet.pdf
    *************************************************************************************************************
    Pin 1

    Temperature sensor connection
    —————————–
    Leave this pin unconnected if an external temperature sensor is not used.

    Pin 2

    Pulse width output
    ——————
    This pin outputs a pulse width representation of the distance with a scale factor
    of 1 uS per mm. The output range is 300 uS for 300 mm to 5000 uS for 5000 mm.
    The pulse width output is up to 0.5% less accurate then the serial output.

    Pin 3

    Analog voltage output
    ———————
    On power-up, the voltage on this pin is set to 0V, after which, the voltage on this pin corresponds to the
    latest distance measured. The scale factor is (Vcc/5120) per 1 mm. The resolution of the distance is 5 mm.
    This is typically within ±10 mm of the serial output.

    Using a 10 bit analog to digital convertor, one can read the analog voltage bits (i.e. 0 to 1024) directly
    and just multiply the number of bits in the value by 5 to yield the range in mm.
    For example, 60 bits corresponds to 300 mm (where 60 * 5 = 300),
    and 1000 bits corresponds to 5000-mm (where 1000 * 5 = 5000-mm).
    A 5 V power supply yields~0.977 mV per 1 mm.
    When powered with 5 V, the output voltage range is 293 mV for 300 mm, and 4.885 V for 5000 mm.

    Pin 4

    Ranging start/stop
    ——————
    This is internally pulled high. If high, the sensor will continually measure and output the range data.
    If low, the sensor will stop ranging.
    Take high for 20 uS or longer to initiate a range reading.
    If the sensor sees that the RX pin is low after each range reading, then the range can be obtained every 100 mS.
    If pin 4 is constantly high, the sensor will range every 100 mS, but the output will pass through a 2 Hz filter.

    Pin 5

    Serial output
    ————-
    By default, the serial output is RS232 format (0 to Vcc) with a 1 mm resolution.
    The output is “R”, followed by four ASCII characters representing the range in millimeters,
    followed by a carriage return (ASCII 13). The maximum distance reported is 5000.
    The serial output is the most accurate of the range outputs.
    Serial data is sent at 9600 baud, with 8 data bits, no parity, and one stop bit.

    Pin 6

    V+

    Positive Power

    Pin 7

    GND

    */
    /* The MC 410 standard servo from Conrad

    1 brown wire Gnd
    2 red wire VCC
    3 orange wire PWM signal

    */

  • 12 Tweeters detail

    The birds

    For each bird, take one egg 45 x 30 mm, one 30 mm ball, one 15 mm ball with a hole, 13 x 10 mm wooden strip, 8 mm brass tube, small free-moving hinge, 2 mm plywood, 1.2 mm brass rod, 2 mm brass rod
    Wooden_egg Wooden_ball Small_ball Half_cut_beak Brass_tube Brass_hingeBrass_rodBrass_rod

     

    Make 12 birds. Be careful drilling eggs, use pilot holes to prevent the drill slipping. Use a strong glue to fix the hinges but make sure they still move easily. The 1.2 mm brass rod is used to push the beak open until it reaches 45°(ish) and is restrained by the comb when the whole head will move up, exposing the brass neck.

    Bird_design

    Prototype_1
    Simple lever on the servo pushes/pulls the brass rod in this prototype. The slot for the brass rod is large enough to accommodate its sideways movement. There is a cross piece soldered to top of rod keep head straight(ish)

    Prototype_2
    The bird’s comb stops beak from opening too far. With the beak fully open, further movement of the rod stretches its neck.

    The Base

    My base was quite compact. It would be easier to make it larger and space things out.

    12_birds_base_final

    I used twelve cheap (€6.59) and cheerful servos. I added calibration into the software to deal with the variations in positioning.

    Servo

     The Electronics

    Take one Arduino Uno , one Music Maker shield, one 16 channel PWM driver board with added 2200 µF power smoothing capacitor, one real-time clock board, a micro SD card, a loudspeaker, a pushbutton and a power supply.

    Arduino UnoMusic Maker shield16 channel PWM driverRTCMicro SD card

    Assemble the Music Maker, fit it onto the Arduino, wire up the PWM driver board and RTC. The Music Maker uses the SPI bus. The RTC and the servo driver both use the I2C bus. The default addresses are fine.

    Inspiration

    BBC tweet of the day
    Tinkersoup MP3 shield €36
    Adafruit overview of MP3 shield
    BBC birdsong
    Birds tree by Carlos Zapata

    Freesound For Dawn Chorus
    Use Camera with SD card to mount the SD card as drive on Mac computer.
    Drag and drop to copy files.

    Parts

    Modelcraft Standard-Servo 410 Standard Analog Servo 410 plastic gears JR € 5.99
    Wooden eggs, 45×30 mm €0.50
    Wooden ball 30 mm diameter €0.32

    Work in progress

  • Clothes peg bird

    Take a wooden clothes peg, a dandy brush and a few other bits & pieces and this is what you get.

    In the meantime she has grown legs and acquired a family – the Brush-heads (Familie Bürstenkopf)

  • Tirol 2018 Plan

    Edit page

    Edit map.
    576 km 5 h 39 m => 8-12 Seeheim-Jugenheim
    218 km 2 h 30 m => 12-15 Schwäbisch-Alb
    406 km 4 h 35 m => 15-22 Bozen
    208 km 2 h 30 m => 22-29 Wilder Kaiser
    694 km 6 h 53 m => Home

    Choose one day from the list to see just that day. Otherwise use this link to see everything on a very long page.
    [catlist id=100]

  • Saturday 19 May back to Berlin

    Depart Marseille 20:30
    Arrive Schönefeld 22:45
    We drove a total of 1156 km which is about 45 km per day. Renting the camper cost about €100 per day and the campsite fees were about €20 per day. Eating out (usually good food) was expensive compared to Berlin.


     

  • Friday 18 May Château La Coste


    Château La Coste, a really beautiful location with some nice art, again paid for by a rich hotelier who dropped in via helicopter during our visit. The Villa La Costa hotel on the hill offers rooms at about €1000 per night.



     



     
    Andy Goldsworthy again – an oak room.


     



     
    Tracey Emin’s self portrait – a cat inside a hard oak barrel!


     
    A drop!


     

    https://youtu.be/09dQPWfcke0

  • Thursday 17 May Route de Cezanne, Mont Sainte Victoire



     
    One of Cezanne’s favourite subjects was a mountain ridge including a peak called Mont Sainte Victoire. Apart from climbing up it, the best view is from the D17 now glorying in its new rebranded name of “Route de Cezanne”.


     


     


     
    In the foothills there’s a good collection of vineyards.

  • Wednesday 16 May Bibémus quarry, Fond. Vasarely & Akram Khan

    Busy day today, we had a guided tour through the quarry where Cezanne liked to paint, visited Fondation Vasarely and went to Pavilion Noir to see Akram Khan.


    Bibémus quarry
    This lovely, warm orange-brown iron oxide colour was what they liked for the buildings in Aix, so they quarried stone here until the mid 19th century. When it was closed Cezanne had himself taken up here on a horse-drawn cart to paint.


     
    Cezanne


     
    The original over 100 years later


     
    Cezanne


     
    Original


     
    Fondation Vasarely


     

    Each picture is the full height of the building – a group of hexagons like a honeycomb. Slightly different style to Cezanne.


     



     



     
    Akram Khan – Chotto Desh

  • Tuesday 15 May Aix-en-Provence guided tour & musée Granet



     
    Today we had a private guided tour of old Aix (we were the only ones who turned up).

    Pavillion de Vendome


     
    Oh no, it’s them again!

     


     
    The Granet museum likes goats …


     
    Mirabeau showing the way


     
    Cezanne’s bathing women, apparently painted from pictures as he found real naked women too distracting.


     
    Work by Kosta Alex, new to us.


     



     



     
    Tromp l’oeuil used to cut your window taxes, now it’s just for fun.

  • Monday 14 May Aix-en-Provence



     
    First impressions of Aix – cheap and cheerful café for lunch


     
    Back to the 18th century in Hotel de Caumont, un hôtel particulier.


     

    18th century man holding up the roof


     

    20th century Hitchcock holding up the local cinema


     
    Chinese figure striking the hours


     

  • Friday 11 May Gorges du Verdon & Castellane


    Camping Notre Dame Castellane €? Kim’s ACSI review


    Lac de Sainte-Croix is filled up by


     
    le Verdon


     
    Take a paddle boat to inspect the gorge.


     
    Gorgeous


     


     


     
    Let’s pop up and see the church of Notre Dame, up on that rock


     


     


     


     
    A few monks doing the same walk as we did, in their case to celebrate the end of a cholera epidemic.


     

  • Thursday 10 May Cannet des Maures


    Camping les Ruisses


    DIY sculptures in the front garden.


     
    Looking for lunch


     
    Lac de Sainte-Croix


     
    This delicious fish and potatoe dish is called “marmite”, no not marmite , but marmite, French [maʁmit] for a large, covered earthenware or metal cooking pot. British Marmite was originally supplied in earthenware pots, but since the 1920s has been sold in glass jars shaped like the French cooking pot. You learn something new every day!

     


     
    Everyone is welcome in Provence, whatever the shape of your camper.


     

  • Wednesday 9 May Commanderie Peyrassol


    Camping Domaine la Cigaliere €20 super showers.

    Standing above the village of Flassans-sur-Isole, in the heart of the hills of the Var, the Commanderie Peyrassol was founded in the 13th century by the Knights Templar. It was a popular staging post and a place of rest for large numbers of pilgrims setting off for the Holy Land. In 2001 Philippe Austruy, a French man who made a fortune from private clinics and retirement homes, purchased the property and gave it a new lease of life adding loads of contemporary art.

     



     



     



     



     



     



     



     



     
    Breakfast !