Team Rabi – Lydstyrt bil-prosjektet


10708080_10152282485266717_1455553509_n

Team Rabi består av

Elektro:

 Rabi Aslami og Stian Yttrehus

Programmering:

Håkon Andre Totland

 

Oppgave:

Generell beskrivelse

Lage en bil som styres av/etter lydsignaler. Bilen skal oppfatte, tolke og reagere etter akustiske signaler i rommet.

 

LOGG:

 

02 sep 2014

Prosjektets ambisjoner ble konkretisert:

Bil som styres mot lyd/stemme. Bilen skal kunne manøvrere i alle retninger basert på opplysninger fra lydsensor.

Grove sound sensor bestill fra seeed. Bilen skal ha konstant fart lav fremover og svinge mot lyden.

Ambisjon hvis tiden strekker til: Inkludere sonar som unngår hindringer.

 

09 sep 2014

Oppdaget koplingsavvik på kortene til hjulene i forhold til forventet. Pinneposisjon ble funnet ved å teste alle pinneposisjonene. Endringene ble testet med positivt resultat.

Koden endret etter nye opplysninger.

Endret hastighet på motorene ved hjelp av analogWrite til enable inngangene på motorkortene.

12 sep 2014

Montert IR sensorer på hver side av bilen slik at bilen kan styres til høyre og venstre ved å plassere hånden fremfor IR sensoren. Dette ble gjort kun for testing da målet er å kunne styre den ved hjelp av lyd sensorer.

Koden:

——————–void loop() {    if(digitalRead(v) && digitalRead (h)){      //hvis det leses signal på pinne v og h så kjøres stopp();    stopp();}   if(!digitalRead(v)&& !digitalRead(h)){       //ikke signal på pinne v eller h så kjøres frem();  frem(); }    if (digitalRead (v)&& !digitalRead(h)){        //signal på pinne v og ikke pinne h så kjøres venstre();  venstre(); } if (!digitalRead (v)&& digitalRead(h)){        //signal på pinne h og ikke pinne v så kjøres venstre();  hoyre(); }}——————

 

12 sep 2014Koblet på lydsensor. Satt grenseverdi slik at bilen kjører frem når det analog innsignalet går over denne verdien. Lagt inn forsinkelse slik at bilen kjører i 2 sekunder etter gitt lydsignal. Koblet på lyssensor foran for at bilen skal stoppe når den møter på en vegg. Et problem oppstod her da signalet fra lyssensoren ikke avbryter sekvensen som kjøres etter at den har fått et lydsignal. En løsning jeg kan tenke meg er å legge inn en interrupt rutine.

Foreløpig kode:

——————-int thold = 600;void loop() {  int analogValue = analogRead(A0);   //leser verdi på A0 if(!digitalRead(v)){  venstre();  delay(1000);}  if (analogValue > thold){                  //hvis verdi er over grenseverdi (thold) så kjøres frem(); frem();delay(2000);                                      //delay for at bilen skal kjøre 2 sekunder etter gitt lydsignalSerial.println(analogValue);              //skriver ut verdier til serialMonitor}if(analogValue < thold){                   // hvis verdi er under grenseverdi så kjøres stopp();stopp();}}——————-

  

16 sep 2014

Utfordringer har møtt oss i form av lav mikrofonfølsomhet. Av uforståelige grunner fungerer ikke systemet slik det skal. Men etter å ha konsultert med medstudenter, åpenbarte feilen seg i form av en feilplassert delay. Utfordringene videre ser ut til å bli kalibrering av lydsignaltyding. Vi feilsøkte ved å isolere hver mikrofon og skrev et testprogram som testet funksjonene. Bilen har til nå kun beveget seg når den har oppfattet lyd, men Håkon har nå møtt vår ambisjon ved å programmere bilen til å gå fremover med lav hastighet.

 

30 sep 2014

Oppgaven er i hovedsak løst iht ambisjon. I tillegg har vi gjort estetiske endringer på bilen i for av karosseri og  lydtrakter for isolering av lydkilden.

Tilleggsambisjoner utarbeides.

21 okt 2014

Vi opplever utfordringer med følsomhet på mikrofonene. Det må høy lyd tett på mikrofonen til for å få ønsket utslag. Lydtraktene bidrar litt til å isolere lyden, men vi oppnår ikke optimal effekt av dette. Vi konkluderer med at mikrofoner av høyere kvalitet kan bedre situasjonen.

04 nov 2014

Vi har laget et lysorgel som indikerer hvilke signal som tolkes. Det ble utfordrende å kjøre dette på samme Arduino simultant med resten av koden. Dette løste vi ved å installere en Arduino nano.

Vi besluttet å legge til lyssensorer hvor bilen kjører mot en lyskilde i tillegg til lydsensorene.

11 nov 2014

Lyssensorfunksjon:

Laget to array som tar imot de leste verdiene fra lyssensorene. Verdiene blir så summert og et gjennomsnitt blir beregnet. Gjennomsnittsverdiene fra hvert array blir så sammenlignet mot en grenseverdi og mot hverandre.

Vi opplever stadig utfordringer med kalibrering av lydsensorene. Verdiene er ustabile selv om lyden ikke endrer seg. Når vi bruker en lydkilde med forskjellige frekvenser oppnår vi  en lav endringsintervall.


Leave a Reply