Barack Obama gives speech on racial division