Ebenhaëzer Tracking System: verschil tussen versies

Uit EurosWiki
(Het systeem draait)
Regel 17: Regel 17:
 
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s>
 
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s>
 
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s>
 
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s>
# Voert live test uit op de EH
+
# <s>Voert live test uit op de EH</s>
  
 
Gart
 
Gart
Regel 24: Regel 24:
  
 
Menno
 
Menno
# Zoekt naar een bootloader.
+
# <s>Zoekt naar een bootloader.</s>
  
 
Steven
 
Steven

Versie van 18 mei 2009 09:14

Het Ebenhaëzer Tracking System is een systeem waarmee de actuele positie van de Ebenhaëzer gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar we gaan nu GPRS proberen. Op dit moment staat het nog in de kinderschoenen, maar het uiteindelijke doel is om automatisch elke minuut een nieuwe positie door te sturen.

Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.

Planning

Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.

Wat gaat er komen?

De ETS stuurt iedere 5 minuten alle coördinaten uit de buffer via GPRS naar de internetserver van Steven. Het simyo abonnement rekent per dag af voor het dataverkeer in stappen van 1kB. Coördinaten worden in de buffer opgeslagen als er 1 minuut is verstreken en we meer dan 20 m zijn verplaatst. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is. De server van steven verwerkt de ruwe data in een route op de kaart.

Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.

Wie gaat wat doen?

Helmich

  1. Op zoek naar een andere telefoon waar Java automatisch kan starten.
  2. Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.
  3. Voert live test uit op de EH

Gart

  1. Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.
  2. Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt

Menno

  1. Zoekt naar een bootloader.

Steven

  1. Testen hoe programma starten werkt. Programma starten moet met microcontroller.
  2. Testen hoe BT verbinding maken werkt. Kan eventueel ook met microcontroller.
  3. Testen hoe uploaden werkt. Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.
  4. Opslaan van geüploade coördinaten. Worden opgeslagen in een database.
  5. Interface om opgeslagen coördinaten te bekijken.

TODO list

  • Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)
  • kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)
  • microcontroller PCB met optocouplers bouwen
  • microcontroller programmer regelen + microcontroller programmeren
  • microcontroller PCB aansluiten aan GSM
  • Java software aanpassen aan onze wensen
  • Voeding voor ETS regelen
  • Behuizing regelen


Informatie logboek

Aangezien het een interessant projectje is en het zonde is om stil te laten vallen even een overzicht:

Doel

Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn waterkaart. Uiteraard moet er getracht worden de kosten binnen de perken te houden.

Eisen

  • Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)
  • Power on = up & running

Opties

Heel basic bestaat zo'n systeem uit de volgende dingen:
GPS ontvanger - Controller - Mobiel internet modem

Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen.
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.
Een andere optie die makkelijker te programmeren is, is de software op de telefoon zelf draaien. De meeste telefoons hebben wel Java tegenwoordig, en daarmee zouden we wel een heel eind moeten kunnen komen.

Mogelijke opties zijn:

  1. Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.
  2. Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.
  3. Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).

Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.

We gaan we optie 1. Wel is er nog een extra micronctroller nodig om het systeem aan te zetten. Punt waar we nu (27-04-2009)(09-05-2009) zijn:
Er is een GPS ontvanger nodig om een compleet systeem op te zetten :) DONE

Mogelijke opties:

  • 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen. DONE
  • 2. GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)

In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/
Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth.


Tweaks nodig voor optie:
1.

  • powerknop GSM extern maken, zodat deze met bijv. een timer relais/microcontroller aangezet kan worden bij 'power-on'
  • Elektrisch toetsen aansturen
  • taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup
  • IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'

2.

  • powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'
  • Elektrisch toetsen aansturen
  • taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup
  • Seriele aansluiting GPS ontvanger ombouwen naar IR


Hardware

Belangrijkste dingen die er nodig zijn:

  • GPS ontvanger
  • controller
  • mobiel internet apparaat

Er zijn al een aantal telefoon binnen de vereniging beschikbaar die mobiel internet kunnen ontvangen:

  • Nokia 6230i
  • Nokia 7250i

Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202

Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.

Helmich is gaan researchen en heeft gevonden:

De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf
Firmware: V03.50 13-sept-2005

  • kan geen symbian op
  • draait Java
  • heeft bluetooth (gemakkelijk softwarematig toegankelijk)
  • heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)
  • heeft een IR poort (gemakkelijk softwarematig toegankelijk)
  • heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)
  • kan via GPRS mobiel het internet bereiken (dit werkt inmiddels met de simkaart van Willem)

De Nokia 7250i:

  • kan geen symbian op
  • draait Java
  • heeft IR (gemakkelijk softwarematig toegankelijk)
  • heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)
  • kan via GPRS mobiel het internet bereiken

linkjes naar IR naar TTL/RS232 converters: (belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf
http://www.edaboard.com/ftopic84368.html
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024

Software

Die Nokia 6230i is interessant:
http://gathering.tweakers.net/forum/list_messages/1115438/0
Deze jongens krijgen navigatie aan de praat. Conclusie: hij kan met gps praten en er kan software op zo'n toestel. GPS gaat denk ik het handigst met een bluetooth verbinding. Vraag is alleen of we dat willen.

Dan staat er hier:
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND
Hoe kan ik spelletjes en andere .jar applicaties installeren?
Dat kan met de Nokia Suite, een linkje hiernaar staat hierboven. Hiermee kun je heel eenvoudig applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling

Volgens Steven is de .jar de applicatie die we willen draaien.

Met een beetje geluk kunnen deze telefoons dus ook als controller dienen.

Dus we hebben Nokia Suite op je desktop PC/laptop nodig:
handleiding:
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf
software:
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163

Communicatie kan via IR, bluetooth of een kabel (die hebben we niet) > bluetooth is het handigst?
Helmich heeft inmiddels een kabel geleend: Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :)

ETS software

Steven heeft het programma GPS Track aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.

Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen. Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.

Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.

Eisen ETS software

  • Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC
  • Zo min mogelijk bevestigen bij opstarten
  • GPS apparaat keuze
  • Bootkeuze optie
  • logtijd variabel
  • upload tijd variabel
  • verplaatsing meenemen
  • tijd meesturen (vaste tijdzone)
  • logpunten meesturen
  • Bufferen als er geen GPRS netwerk is

Openstaande vragen

  • Wat gebeurt er als er geen GPS aanwezig is?
    • Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.
  • Wat gebeurt er als er geen GPS fix is?
    • Het systeem blijft draaien maar logt geen nieuwe coördinaten.
  • Wat gebeurt er bij geen GPRS netwerk?
    • Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.
  • Buitenlandse netwerken blokken?
    • Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.

Automatisch starten

Het automatisch starten van onze Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.

Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing. Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.

Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.

Bronnen:

Mogelijke andere opties zijn:

  1. Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.
  2. Elektronisch starten door aan de knoppen te solderen; waarschijnlijk lastig omdat de knoppen met weerstand werken. Gevonden(?): http://www.circuitsonline.net/forum/view/60551/1/keypad
  3. Mechanisch starten door de knoppen in te drukken.

Elektronisch starten door aan de knoppen te solderen

In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden.

opengewerkte nokia 7250i


Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen

elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen

De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.

Vraag: Wat willen we?:

  • Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen
  • Alle 9 lijnen solderen > microcontroller alles laten doen

(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie

Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.

Oude optie zonder microcontroller:

Bestand:GSM OnOff schakeling.JPG
Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p


<<<<<<<<<<<<<CONCEPT>>>>>>>>>>>>>>>

Bestand:Aanuitgsm.JPG
schema met uC?

logisch stappenplan:
If:
IO1(sense): 0>1
then:
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)

IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)
IO4(selecttoets) > 'aan' op tijdstip 29-29.1 seconden (kies bluetooth apparaat) (optie)
IO4(selecttoets) > 'aan' op tijdstip 35-35.1 seconden (bevestig netwerk toegang)

If:
IO1(sense): 1>0
then:
IO2(powerknop) > 'aan' op tijdstip 0-1 seconden (telefoon gaan uit)

<<<<<<<<<<<<<CONCEPT>>>>>>>>>>>>>>>

Mechanisch toetsen bedienen

Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[1] maar dan kleiner) Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.

  • toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%
  • er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%
  • toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%

Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.

Voeding

Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben. Voor implementatie op de EH is een kabel nodig vanaf de meterkast naar de koekoek. 5 mtr is ruim voldoende. Deze moet dmv aan sigarette stekker in de bestaande aansluitingen geplugt worden. In de ETS box moet de 12 volt verbonden worden met:

  • De GSM adapter
  • De GPS ontvanger adapter
  • De microcontroller PCB


Behuizing

De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden. In de behuizing moet komen:

  • GSM
  • GPS muis
  • Micorcontroller PCB
  • 2x Adapater

Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.


Gerelateerde linkjes

Info over de telefoons:
http://gathering.tweakers.net/forum/list_messages/1219707///gprs%2Cgsm%2Cals%2Cmodem
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html
http://gathering.tweakers.net/forum/list_messages/1115438/0
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html

Toepasbare software:
http://www.qcontinuum.org/gpstrack/
http://www.trackr.eu/faq/
http://www.trekbuddy.net
http://sportstracker.nokia.com/nts/main/index.do