Eerste robot project

Op 28 juni 2011 14:04:52 schreef LEDfan:
Ik heb het eens bekeken. Ik weet niet of ik 9bit reception of 8 bit reception moet hebben.

8-bit. Je wilt data sturen die bestaat uit 8 bits, waarmee je dus een waarde kan versturen van 0-255 (2^8 - 1).

Op 28 juni 2011 14:04:52 schreef LEDfan:
En al er staat 'don't care' moet je dan een eentje of en nulletje zetten?

Dat maakt niet uit (daarom heet het 'don't care' ;))

Ik heb de test code voor de seriele communicatie zo goed als af:

pic basic code:

'****************************************************************
'*  Name    : Menu V2.0.BAS                                     *
'*  Author  : LEDfan                                            *
'*  Website : Robots4fun.000space.com                           *
'*  Date    : 25-6-2011                                         *
'*  Version : 2.0                                               *
'*  Notes   : We gaan eerst een seriele verbinding proberen op  *
'*          : te zetten via uart                                *
'*          : Op poort a.1 van de ontvang PIC is een ledje      *
'*          : aangesloten.                                      *
'*          : Op poort a.2 hebben we een LEDje gehangen voor de *
'*          : timeout    Dit is de code voor de ontvang PIC     *
'****************************************************************
DEVICE 16F628A                ;Gebruik een 16F628A type
CONFIG WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF, HS_OSC ;INTRC_OSC_NOCLKOUT verwijderd 
ALL_DIGITAL TRUE              ;Alle ingangen digitaal
XTAL 20    
       
DECLARE HSERIAL_RCSTA = %10010000
  DECLARE HSERIAL_TXSTA = %00100000
  DECLARE HSERIAL_SPBRG = 259
  DECLARE HSERIAL_BAUD = 9600
  DECLARE HSERIAL_CLEAR = ?   
DIM var2 AS BYTE

var1 = 1 

WHILE 1=1
HSERIN , 1000 ,timeout , [var2]
SELECT var2
  CASE 1 
    HIGH PORTA.1
ENDSELECT 

timout:

HIGH PORTA.2 
WEND
                  

pic basic code:

'****************************************************************
'*  Name    : Menu V2.0.BAS                                     *
'*  Author  : LEDfan                                            *
'*  Website : Robots4fun.000space.com                           *
'*  Date    : 25-6-2011                                         *
'*  Version : 2.0                                               *
'*  Notes   : We gaan eerst een seriele verbinding proberen op  *
'*          : te zetten via uart                                *
'*          : Op poort a.1 van de ontvang PIC is een ledje      *
'*          : aangesloten. Dit is de code voor de verzend PIC   *
'****************************************************************
DEVICE 16F628A                ;Gebruik een 16F628A type
CONFIG WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF, HS_OSC ;INTRC_OSC_NOCLKOUT verwijderd 
ALL_DIGITAL TRUE              ;Alle ingangen digitaal
XTAL 20    
       
DECLARE HSERIAL_RCSTA = %10010000
  DECLARE HSERIAL_TXSTA = %00100000
  DECLARE HSERIAL_SPBRG = 259
  DECLARE HSERIAL_BAUD = 9600
  DECLARE HSERIAL_CLEAR = ? 
DIM var1 AS BYTE

WHILE 1=1
HSEROUT [DEC var1]
DELAYMS 1000
WEND

Ik krijg bij de ontvang code wel 'value excpected'
Kan iemand zeggen of de code juist is?

Alvast bedankt!

Bedankt!

Ik ga het misschien morgen proberen, ik kan toch gewoon de rx van de ene pic met de tx van de andere PIC verbinden? O, ik bedenk me dat ik met een kristal ga moeten werken.

ja, tx en rx gewoon aan elkaar. kristal is wel handig ja, maar voor de allereerste testjes kan je als het niet werkt ook de baudrate omlaag gooien, waardoor timing een wat mindere rol speelt

Ok tnx, kan zijn dat men kristallen kapot zijn :(. Ik post straks het resultaat.

Vandaag de code van de hoofdprint gemaakt:

pic basic code:


DEVICE 16F877A ;We gebruiken een 16F628A type
REMINDERS 0
CONFIG HS_OSC , WDT_OFF , PWRTE_ON , BODEN_OFF , LVP_OFF , CP_OFF , DEBUG_OFF 
REMINDERS 1
ALL_DIGITAL True ;Alle ingangen digitaal
XTAL 20

DECLARE HSERIAL_RCSTA = %10010000
  DECLARE HSERIAL_TXSTA = %00100000
  DECLARE HSERIAL_SPBRG = 259
  DECLARE HSERIAL_BAUD = 9600
  DECLARE HSERIAL_CLEAR = ON 

        ;543210
TRISA = %111110
PORTA = %000000
        ;6543210
TRISB = %1111111
PORTB = %0000000
        ;76543210
TRISC = %11111111
PORTC = %00000000
        ;76543210
TRISD = %11111111
PORTD = %00000000
        ;210
TRISE = %111
PORTE = %000

;Poortnamen
    ;L293D
SYMBOL  Ingang1 = PORTB.2               ;Ingang 1 van de L293D is aangesloten op poort A.1
SYMBOL  Ingang2 = PORTB.3               ;Ingang 2 van de L293D is aangesloten op poort A.0
SYMBOL  Ingang3 = PORTB.0              ;Ingang 3 van de L293D is aangesloten op poort A.7
SYMBOL  ingang4 = PORTB.1               ;Ingang 4 van de L293D is aangesloten op poort A.6

SYMBOL STATUSLED  = PORTA.0

'variablen declareren
DIM VARUART AS BYTE



STATUSLED = 1
DELAYMS 1000
STATUSLED = 0
DELAYMS 1000
STATUSLED = 1
DELAYMS 1000
STATUSLED = 0
DELAYMS 1000 
STATUSLED = 1
DELAYMS 1000
STATUSLED = 0
DELAYMS 1000
STATUSLED = 1
DELAYMS 1000
STATUSLED = 0
DELAYMS 1000S
STATUSLED = 1
DELAYMS 1000
STATUSLED = 0
DELAYMS 1000
STATUSLED = 1
DELAYMS 1000
STATUSLED = 0

'sublussen
VOORUIT:                                ;Lus om vooruit te rijden zie waarheidstabel^
  Ingang1 = ON 
  Ingang2 = OFF
  Ingang3 = ON
  ingang4 = OFF
RETURN 
 
ACHTERUIT:

  Ingang1 = OFF
  Ingang2 = ON
  Ingang3 = OFF
  ingang4 = ON
RETURN
 
LINKS_DRAAIEN:

  Ingang1 = 0
  Ingang2 = 0
  Ingang3 = 1
  ingang4 = 0
RETURN
 
RECHTS_DRAAIEN:

  Ingang1 = 1
  Ingang2 = 0
  Ingang3 = 0
  ingang4 = 0
RETURN

STOPPEN:

  Ingang1 = 1
  Ingang2 = 1
  Ingang3 = 1
  ingang4 = 1
  DELAYMS 5000
  Ingang1 = 0
  Ingang2 = 0
  Ingang3 = 0
  ingang4 = 0
RETURN
'hoofdprogramma 

TIMEOUT: 

WHILE 1=1                               'In deze lus wordt de hele tijd gekeken of er singaal binnenkomt op de rx.
HSERIN 1000 ,TIMEOUT , [var2]           'deze regel controleert op inkoment singaal op rx en geef die door aan de variable VARUART  

SELECT
  CASE 1
    GOSUB VOORUIT
  CASE 2
    GOSUB ACHTERUIT
  CASE 3
    GOSUB LINKS_DRAAIEN
  CASE 4
    GOSUB RECHTS_DRAAIEN
  CASE 5
    GOSUB STOPPEN
  CASE 6
    GOSUB
ENDSELECT


WEND

END                                     'Einde van het programma hier komt het programmma normaal gezien nooit.

Er zullen nog wel wat aanpassingen aan gebeuren.

De code van de seriele communicatie heb ik zitten testen, ik kom er nu achter dat ik zonder kristal heb zitten testen maar wel met ingesteld dat ik een kristal gebruik, dat ga ik nu aanpassen, en hopelijk werkt het dan wel.

EDIT: oeps sorry mods had niet gezien dat ik als laatste had geantwoord |:-(.

Ik heb vanochtend de hoofdprint af gemaakt, ik ben ze nu aan het testen. Spijtig genoeg werkt deze nog niet helemaal. De 7805 wordt warm en de spanning zakt op sommige plaatsen naar rond de 3V.
http://www.freewebs.com/isuru-c/motor%20driver.JPG
V2 moet dit 5V of 12V zijn? Ik heb nu de 3 aansluitingen die samen zitten aan de 5V gehangen en de losse aansluiting aan de 12V. Dit verklaart waarom de 7805 warm wordt. Ik denk dat op alle aansluitingen 12V moet komen te staan omdat ik als ik op 3 aansluitingen 5V zet dan meet ik op de 4de ook 5V deze zijn dus ondereling doorverbonden.

Ik heb ook juist ontdekt dat ik de GND nog niet heb aangesloten, dus dat is ook al logisch dat het niet werkt.

Alvast bedankt!

Zeker niet alle aansluitingen aan 12V hangen!!
9 en 1 zijn de enable, die je ook door de pic kunt laten voeden.
Pin 16 is de 5V aansluiting, die je ook zo moet laten.
Waarom heb je de enabbles niet aan de pic gehangen? je gebruikt toch ook een 16F877.
Je zou dan mooi kunnen PWM besturing toe kunnen passen.
V2 moet dezelfde spanning hebben als de motoren.

Ik heb ook juist ontdekt dat ik de GND nog niet heb aangesloten, dus dat is ook al logisch dat het niet werkt.

Euhhh werd hij al warm vóór dat je de ground aangesloten had?

Hij werd al warm als ik de gnd niet op aansloot maar wel als ik 9V op pin 9 zetten en deze komt dan op de uitgang van de 7805.

Ik ga morgen de datasheet van de L293D even uitpluizen om te zoeken wat die enable's precies doen. Maar als ik wil PWM'en moet ik dan niet op pin 4,5,6,7 een PWM singaal zetten?

Check picbasic.nl deel 7 voor de functie van enable:
http://www.picbasic.nl/beginners7.htm

Is beter begrijpbaar voor een beginner dan de datasheet.
(in die cursus wordt inderdaad gePWMed op de Input pinnen, maar het kan ook op de enablepinnen (beter zelfs, scheelt weer een PWM-pin).

Ik gebruikte bij mijn vorige motoren (RB-35) de enable pinnen voor de PWM
de inputs regelen de draairichting
Maar wat Loopycoaster al zei, kijk eens even op Picbasic, of google eens op L293D en kijk op de afbeeldingen.
Er staan vele voorbeelden die je zo over kan nemen.

Hij werd al warm als ik de gnd niet op aansloot maar wel als ik 9V op pin 9 zetten en deze komt dan op de uitgang van de 7805.

Je kan toch niet zomaar 9V op de 5V lijn zetten!!
Die zal ongetwijfeld ook naar de pic lopen.

Ooh ik ben weer wat dingen door elkaar aan het halen, ik weet niet precies wat ik heb gedaan maar de 16F877A en de 7805 werken nog. Ik ga morgen verder kijken, bedankt voor de antwoorden!

Update
Gisteren heb ik de hoofdprint volledig afgemaakt op de GND aansluiting van de L293D na. Die ga ik straks nog even solderen, en de schakeling dan ook eens testen.

Gisterenochtend zat er geen enkel pakketje bij de post. Gisterenmiddag ging de bel en daar stond TNT. Met 2 zware dozen. Ik heb bij elecktronica-online 2 batterijen gekocht. Dit valt heel erg mee ze zijn super klein! Ze wegen wel wat.
Dan heb ik bij Dick Best (spijtig genoeg 20 euries verezending, bijna meer dan mijn bestelling)3 zware (gewicht)trafo's 4halfschaalkastjes, printplaten en wat klein grut om 2 acculaders te maken volgens een schema van elektuur.
Nu staat er wel op de accu:

Initial cuttent:less than 0.96A

Nu heb ik dit opgezocht maar vind nergens wat dit betekent, is dit de maximum oplaadstrooom?

Ben vandaag krimpkous gaan halen voor de batterijlader af te werken, hopelijk is die straks klaar. Vandaag ben ik ook het hout gaan halen en laten zagen. Ik ben nu een beetje naar de indeling aan het kijken. Het lijkt er op dat ik maar net genoeg plaats ga hebben en lange kabels ga moeten gebruiken. Mijn boormachine is in gebruik, en dat zal nog wel een paar dagen zo zijn, dus het kan nog even duren tegen dat de robot in elkaar zit.

Ik ben momenteel bezig met de printen, voor het gemak heb ik een rj12 kabel besteld en daar headers aan gehangen, aan mijn printen hangen dan contras.

Nu heb ik de AB buiten het lcd hellemaal af maar daar heb ik nog headers voor nodig.
Ik wou de seriele bus nog een keer testen. Dus ik heb het nu gebouwd zodat ik maar één datalijn nodig heb, volgens het schema van frits dus. Ik gebruik dezelfde code alleen heb ik de code die het inlezen aan en uit zet er uitgehaald zodat de PIC zijn eigen verstuurde data ontvangt, dit als test.
Die code heb ik nog niet kunnen testen, omdat ik de PIC zelfs nog niet herken. Ik heb via xwisp de groene en blauwe kabel aan en uit gezet en dit singaal komt tot op het IC socket. De MLCR bedraagt meestal 14V maar soms ook 12.8 (ongeveer). Dit lijkt me dus allemaal te kloppen.

Maar toch kan ik de PIC niet herkennen. Ook niet met de hoofdprint waar de laatste code die nog in de PIC zat van werkt.

Heeft iemand van jullie dit al meegemaakt?

P.s. ik ga het nu op breadboard testen met een andere kabel.
P.s.2 de wisp wordt herkend, dus de connectie PC-wisp zou moeten werken.
P.s.3de motors zijn nog niet besteld, maar dat zal vanavond gebeuren.

Ik ben hier een beetje vergeten alles bij te houden wat ik nog heb gedaan, maar op men blog zou je alles moeten kunnen volgen, ben ook volop bezig met een nieuwe template(wel gedownload maar een beetje veranderd) hopelijk is die vanavond klaar, maar wanneer die online komt weet ik niet, de bedoeling is dat alles over men robot veel makkelijker is te volgen en ik maar 2pagina's moet verwijderen en 3 up te loaden. Dus dan kan ik kleinere updates dezelfde dag nog doen.
Klik hier voor de laatste update.
EDIT:Op mijn breadboard werkt het ook niet :(, de wisp heeft wel een tijdje in een plastice doos gelegen en dan in een kartonnen doos, ervoor werkte deze gewoon, zou dit er iets mee kunnen hebben maken?

Oeps, zie nu pas dat ik niet heb gereageerd dat toen de wisp terug werkte...
Maar heb nu een paar weken terug, 12V op de wisp gezet, de 16F648A vervangen en hij werkt weer :).

Ondetussen heb ik mijn robot al voor een groot deel in primer gezet, en al het boren, zagen lijmen is zo goed als klaar. Na de examens ga ik een messing profiel halen voor de robot dicht te maken, als ik tijd heb zal ik er eens een schets van maken.

Ondertussen heb ik nog een printboormachine gekocht, en printboorjtes, maar ik kan wegens omstandigheden niet etsen. De boormachine boort ook perfect in systreen, hout, printplaten (e.v.t. gaatjesprint voor bevestigingsgaten) plastic....
Dus dat is zeker niet verloren.

De acculader ga ik 2 printjes van laten etsen, omdat de gaatjesprint schakeling maar half werkt. En ik het dan heel netjes in kan bouwen in mijn 'voeding'.

Ook ben ik bezig met voor de 3de keer een voeding te ontwerpen.
Hier het principe schema:

De 2 grote blokjes zijn de accubeschermers uit de elex, en de 2 andere zijn accu's.
Principe schema
De vierkante blokjes zijn transistors met weerstanden.

De accubeschermer ben ik al digitaal aan het tekenen:
Schema
Layout

De layout lijkt me redelijk, maar ga ik straks nog eens bekijken.

De schema's lijken niet te werken...
Straks een update maar eerst een vraagje.
Ik ben bezig met de code voor de afstandsbediening.
Hij compileert goed, alleen bij assembleren krijg ik errors:

pic basic code:

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 29/12/2011                                        *
'*  Version : 1.0                                               *
'*  Notes   : Code voor de aftstandbediening, laatst gewijzigd  *
'*          : op 29 Decelber                                    *
'****************************************************************
Device 16F628A
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF

All_Digital true
        '76543210
TRISA = %0000000
PORTA = %0000000

TRISB = %0000000
PORTB = %0000000
'poorten
Symbol toetsen = PORTA.1
Symbol luidspreker = PORTA.2
Symbol servicemenu = PORTA.3

'constanten
'waarde van de toetsen
Symbol toets1 = 31
Symbol toets2 = 94
Symbol toets3 = 159
Symbol toets4 = 228


'variable 
Dim waarde As Dword       'ingelzen waarde uit toetsen
Dim datarecive As Byte
'verzenden en ontvangen
Dim datatransmit As Byte

GoTo main

'sublussen 

'*******************************************************************************
TRANSMIT:

'*******************************************************************************
RECIVE:

'*******************************************************************************

                  '1111111
SERVICEMENULUS:   '6543210987654321
    Print At 1,1, "Welkom in het"
    Print At 2,1, "servicemenu van"
    DelayMS 1000
    Cls
    Print At 1,1, "877bot, bent u"
    Print At 2,1, "perongeluk"
    DelayMS 1000
    Cls
    Print At 1,1, "gekomen? Gelieve"
    Print At 2,1, "dan te rebooten"
    DelayMS 1000
    Cls
    GoSub verdergaan:
    verdergaan:

    Print At 1,1, "Druk op een toets"
    Print At 2,1, "om verder te gaan"
    Cls
    If servicemenu = 0 Or toetsen = 0 Then 
        'hier komt het echte servicemenu
        Print At 1,1, "Wat wilt u gaan"
        Print At 2,1, "doen?"
        DelayMS 1000
        Cls
        Print At 1,1, "1) Waarde op bus"
        Print At 2,1, "zetten."
        DelayMS 1000
        Cls
        Print At 1,1, "2) Verbinding maken"
        Print At 2,1, "met andere printen"
        DelayMS 1000
        Cls
        Print At 1,1, "Druk nu op de toets"
        Print At 2,1, "naar keuze"
        Cls
            While toetsen = 1
               Select toetsen
                    Case < toets1
                        'hier komt de code om een waarde op de bus te plaatsen
                        'we hebben 4 knoppen om onze waarde in te voeren
                        'de linkse knop telt voor één mee, de bovenst voor 5
                        'de rechtse voor 10 en de onderste voor 50
                        While 1=1
                            Clear datatransmit
                            GoSub inlezen
                            Select toetsen
                               Case < toets1
                                    datatransmit = datatransmit +1
                                Case < toets2
                                    datatransmit = datatransmit +5
                                Case < toets3
                                    datatransmit = datatransmit +10
                                Case < toets4
                                    datatransmit = datatransmit +50                           
                            EndSelect     
                            Cls
                            Print At 1,1, Dec datatransmit
                            If servicemenu = 0 Then GoSub TRANSMIT 'de waarde bevestigen door op de servicemenu knop te drukken
                        Wend
                    Case <toets2       '654321987653210
                        Print At 1,1, "Kies met welke"
                        Print At 2,1, "module u wilt"
                        DelayMS 1000
                        Cls
                        Print At 1,1, "verbinden"
                        DelayMS 1000
                        Cls
                        Print At 1,1, "1) Hoofdprint"
                        Print At 2,1, "2) Ab"
                        DelayMS 1000
                        Cls
                        Print At 1,1, "3) lichten"
                        Print At 2,1, "4) voeding"
                        While 1=1
                           GoSub inlezen
                           Select waarde
                                Case > 31
                                    datatransmit = 23
                                    GoSub TRANSMIT
                                    GoSub RECIVE 
                                    If datarecive = 27 Then 
                                            'Cls           
                                            Print At 1,1, "Verbinden met:"
                                            Print At 2,1, "hoofdprint gelukt!"
                                            DelayMS 1000
                                            Print At 1,1, "Druk op de toets"
                                            Print At 2,1, "om terug te gaan"
                                           While 1=1 
                                                If servicemenu = 0 Then GoSub verdergaan
                                            Wend
                                       ElseIf datarecive = 28 Then
                                            Cls
                                            datatransmit = 17 'korte bleep
                                            GoSub TRANSMIT 
                                            Print At 1,1, "Verbinden met:"
                                            Print At 2,1, "hoofdprint mislukt!"
                                       Else 
                                           Cls
                                           datatransmit = 17 'korte bleep
                                           GoSub TRANSMIT
                                           Print At 1,1, "Er lijkt iets fout"
                                           Print At 2,1, "zijn te gaan"
                                           DelayMS 1000
                                           GoSub verdergaan
                                       EndIf
                               Case toets2
                                    datatransmit = 24
                                    GoSub TRANSMIT
                                    GoSub RECIVE 
                                        If datarecive = 29 Then 
                                            Cls            '65432109876543210
                                            Print At 1,1, "Verbinden met: ab"
                                            Print At 2,1, "is gelukt!"
                                            DelayMS 1000
                                            Print At 1,1, "Druk op de toets"
                                            Print At 2,1, "om terug te gaan"
                                            While 1=1 
                                                If servicemenu = 0 Then GoSub verdergaan
                                                Wend
                                       ElseIf datarecive = 28 Then
                                            Cls
                                            datatransmit = 17 'korte bleep
                                            GoSub TRANSMIT 
                                            Print At 1,1, "Verbinden met: ab "
                                            Print At 2,1, "is mislukt!"
                                       Else 
                                           Cls
                                           datatransmit = 17 'korte bleep
                                           GoSub TRANSMIT
                                           Print At 1,1, "Er lijkt iets fout"
                                           Print At 2,1, "zijn te gaan"
                                           DelayMS 1000
                                           GoSub verdergaan
                                        EndIf
                               Case < toets3
                                datatransmit = 25
                                    GoSub TRANSMIT
                                    GoSub RECIVE 
                                        If datarecive = toets1 Then 
                                            Cls            '65432109876543210
                                            Print At 1,1, "Verbinden met:"
                                            Print At 2,1, "lichten is gelukt!"
                                            DelayMS 1000
                                            Print At 1,1, "Druk op de toets"
                                            Print At 2,1, "om terug te gaan"
                                            While 1=1 
                                                If servicemenu = 0 Then GoSub verdergaan
                                            Wend
                                       ElseIf datarecive = 32 Then
                                            Cls
                                            datatransmit = 17 'korte bleep
                                            GoSub TRANSMIT 
                                            Print At 1,1, "Verbinden met:"
                                            Print At 2,1, "lichetn is mislukt!"
                                       Else
                                           Cls
                                           datatransmit = 17 'korte bleep
                                           GoSub TRANSMIT
                                           Print At 1,1, "Er lijkt iets fout"
                                           Print At 2,1, "zijn te gaan"
                                           DelayMS 1000
                                           GoSub verdergaan   
                                       EndIf
                                  Case > toets4
                                    datatransmit = 25
                                    GoSub TRANSMIT
                                    GoSub RECIVE 
                                        If datarecive = 33 Then 
                                            Cls            '65432109876543210
                                            Print At 1,1, "Verbinden met:"
                                            Print At 2,1, "hoofdprint gelukt!"
                                            DelayMS 1000
                                            Print At 1,1, "Druk op de toets"
                                            Print At 2,1, "om terug te gaan"
                                            While 1=1 
                                                If servicemenu = 0 Then GoSub verdergaan     
                                            Wend
                                       ElseIf datarecive = 34 Then
                                            Cls
                                            datatransmit = 17 'korte bleep
                                            GoSub TRANSMIT 
                                            Print At 1,1, "Verbinden met:"
                                            Print At 2,1, "hoofdprint mislukt!"
                                       Else 
                                           Cls
                                           datatransmit = 17 'korte bleep
                                           GoSub TRANSMIT
                                           Print At 1,1, "Er lijkt iets fout"
                                           Print At 2,1, "zijn te gaan"
                                           DelayMS 1000
                                           GoSub verdergaan
                                      EndIf   
                           EndSelect 
                        Wend
                EndSelect 
            Wend
        
    Else GoSub verdergaan 
    EndIf
Return
waardeopbus:


'*******************************************************************************

'*******************************************************************************
inlezen: 

    High toetsen
    DelayMS 1 
    waarde = RCIn toetsen, Low 
    Print Dec waarde, " "

   
Return
'*******************************************************************************

'hoofdlus
main:

If servicemenu = 0 Then GoSub SERVICEMENULUS
GoSub inlezen 
'hier gaan we aan de hand van de ingelzen waarde de waarde verzenden naar de hoofdprint
Select waarde
    Case < toets1
       datatransmit = 3        'links
    Case < toets2
        datatransmit = 1        'vooruit
    Case < toets3        
        datatransmit = 2        'achteruit
     Case < toets4         
         datatransmit = 4        'rechts
EndSelect
GoSub TRANSMIT         

Ik krijg de volgende erros:
http://ledfanselektronica.be/assets/Uploads/Fotos/Overige/error.png

Ik weet echt niet aan wat het licht en zit er al lang op te zoeken.
Alvast bedankt!

Het probleem met de asm error 126 is vande baan. Ik heb de teksten die meermaals voorkomen in een string gezet, dit heb ik gedaan in een array van variables.
De code gaat volgens mij wel redelijk werken, maar ik moet natuurlijk nog wat debeggeen.

Grote update

De hardware van de robot is bijna klaar, enkel nog de wielen en voeding moeten gemaakt worden. De wielen ga ik een van deze dag maken. De voeding ga ik ook nog ontwerpen om er dan een printje van te laten maken.

Ik heb de robot al voor een groot deel bekabeld:
http://ledfanselektronica.be/fotos/
Let op de pagina is redelijk groot :p.

[Bericht gewijzigd door LEDfan op 11 maart 2012 09:53:20 (11%)]

Ai, er komt een rode balk te staan, dat het laatste bericht van deze discussie al meer dan 90 dagen oud is. Het is dan ook lang geleden dat ik aan dit project heb gewerkt. Het is vandaag het begin van de vakantie, en ik hoop dat ik in de vakantie wat meer tijd vind voor elektronica, dan onder het jaar. Toch zal dit project wat traag verdergaan, maar ik ben wel van plan om dit terug op te nemen.

Ik ga er binnenkort voor zorgen, dat ik terug gemakkelijk foto's kan uploaden op men site. Dan kan ik deze hier posten. Want ik heb toch al kleine vorderingen gemaakt, die ik hier niet echt heb gemeld.

Ondertussen heb ik wel wat andere talen ontdekt (PHP/JS), en ik weet niet 100% zeker of ik op termijn nog altijd met PICbasic ga werken. Het stoort me enorm, dat er bv. geen strings zijn. Ook dat ik enkel op windows kan programmeren vind ik niet zo prettig. Maar ik ga eerst zorgen dat ik de robot goed werkend heb in PICbasic, voor ik over ga stappen naar andere talen die me meer liggen zoals C.

Ik ben vandaag bezig geweest met de behuizing, van mijn 5V voeding, en acculader verder af te maken. Zodra deze klaar is, ga ik de 5V voeding inbouwen, en ga ik aan het programmeren.
Ik zal proberen straks nog wat foto's up te loaden, als de behuizing klaar is.