admin

About admin

This author has not yet filled in any details.
So far admin has created 669 entries.

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.

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


 

Sunday 13 May drive to Aix-en-Provence


Camping Chantecler €25

Saturday 12 May Castellane






 


 


 

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 !

Tuesday 8 May VE Day


Today we ate breakfast to the surprising sound of 1940’s music echoing charmingly through the trees. Thinking it might be a funfair we walked over to find that, amazingly, it was a Victory Europe (VE) day celebration with loads of carefully looked after military vehicles – even including a period BMW motorbike. A memorial site had been set up around a landing craft in which colonel R. D. Parker landed with 190 men at 8 o’clock in the morning on 15 August 1944 on the beach which we can see from our camper. Today is apparently a national holiday in France, known as ‘Victoire 1945’ or ‘La Fête de la Victoire’.

 


 


 


 


 


 


 

Monday 7 May Château de la Napoule




Today we went to Château de la Napoule, the home of Henry Clews Jr. and the famously beautiful Elsie Whelan Goelet Clews, a rich couple dedicated to the arts. He was a sculptor.


 
What is it and I wonder what Henry and Marie would have thought of it?




 



 



 



 



 



 
Leaping recycled dogs just Gerhild’s taste.


 
What a profile!


 



 

Gerhild was very happy to see this sign!


 

Sunday 6 May Cap Dramont




The small island, l’isle d’or, behind Kim is a nice reddish colour (porphyry) and its tower is said to have been the inspiration for The Black Island in Hergé’s The Adventures of Tintin.

In 1897 Léon Sergent bought the Isle of Gold from the French state in an auction for 280 francs. In 1905, Dr Auguste Lutaud won the island in a game of cards. He decided to build an 18m high tower. When it was finished in 1913, he proclaimed himself Auguste I, king of the Île d’Or and organized a sumptuous party. Stamps and coins were made, showing the Island. In 1961 the island was sold to François Bureau, a former naval officer, who renovated the tower and lived in it until his death in 1994 during one of his traditional early morning swims. The island still belongs to the same family and if a flag is flying, then the tower is inhabited, just like Buckingham Palace!🇬🇧

 



 
A nice round walk starting directly from the campsite.


 



 



 

Saturday 5 May Cap Dramont


Camping Campéole du Dramont €30 Location right next to the beach! Facilities




 



 
Peeling potatoes 🥔 for a salad.


 
As the sun slowly sets in the west…


 
Listen to the original rolling stones




Friday 4 May Saint-Jean-Cap-Ferrat




Swimming our way, heading for Nice.


 
Sentier du littoral


 


 

Villa Ephrussi-Rothschild – the creation of one of the richest women on the planet, at the time.
Béatrice Ephrussi-Rothschild- 19 years old.


 


 
One little chair was for Beatrice’ dog, the other was for her mongoose! The lady in the pitch opposite to ours has one for her cat.


 


 


 



 



 



 
So much energy we did a second walk sentier du littoral.

Thursday 3 May cap d’Antibes


Today we walked around the Antibes peninsula, in the footstep of the Rolling Stones, Sean Connery and from now on Kim and Gerhild.




 
London has millionaire’s row, Antibes has billionaires bay…


 



 



 



 
Some Russian oligarch’s weekend retreat?

Wednesday 2 May Nice




Today we ate at Badaboom, which was delicious and not too extortionate. Charming American waitress. The straws came from Costa Rica and are some sort of bamboo!


 



 
More public French philosophy. No need for translation, I think.


 
A super cool French chocolate rabbit.


 


 



 
The garden of the Marc Chagal museum in Nice. Nice size and good audio guide (despite pesky 120 dB schoolchildren)


 
The creation of man 1958


 

Tuesday 1 May Saint-Paul-de-Vence


Parc des Maurettes €30


On the way to Nizza, we stopped of at Saint-Paul-de-Vence, a picturesque mountain village visited by coachloads and one camper-van load of tourists.


 
Olga’s favourite angel!


 
All of the shopkeepers felt inspired to go all artistic (Fondation Maeght is just up the road.)


 
The village church shows the French approach to things on the cherubs/mermaids front.


 



 
Fantastic pizza served by a one-eyed cook who Gerhild thought looked like a real pirate.

 
Prince Charles feeling the pressure

Monday 30 April Fondation Maeght and Tourrettes-sur-Loup




Today we were up early enough to be practically first through the door at Fondation Maeght



 



 
Look carefully and you can see a bird nesting on her head.


 



 



 
Groovy architecture!


 



 

The Korean artist Lee Bae did some nice things with charcoal youtube link (French), which are almost impossible to photograph nicely.

On the way home we stopped off in Tourrettes-sur-loup, which is very pretty. We took a free book from their book-sharing cabinet – Cold Water by Gwendoline Riley.



 



 



 



 

In the evening, we enjoyed listening to Jazz Radio.

Sunday 29 April Entrevaux and Tourrettes sur Loup


Camping la Camassade €23


Rain was forecast for today so we drove to Tourrettes-sur-loup, stopping for a picnic and a poke around Entrevaux. Had a nice chat with father & son bakers about bread and “brexshit” as the older man proudly showed off one of his important bits of English vocabulary.



 



 



 



 
After all of the bends in the mountain roads, Gerhild is happy to frolic around the meadow in the campsite Camping la Camassade €23 with borage casually growing by the wayside.