Eerste robot project

Iedereen is weer bedankt voor de hulp en interesse!
Dus aan de kabel zal het niet liggen.
Ik voed de wisp met 5V van het breadboard, dus die 7805 op de wisp gebruik ik niet.
Ik ben bezig met de foto's, dus die komen wel.

Hier is de link. Ik heb het even zo gedaan, anders staat dit topic nog vol met foto's van mijn wisp.:p

[Bericht gewijzigd door LEDfan op vrijdag 7 januari 2011 11:32:37 (29%)

Hoewel de foto's wat onduidelijk zijn, zie ik niks vreemds op het boardje.
Ik gebruik alleen die witte draad nooit, wat die PGM precies inhoud, weet ik ook niet, het werkt hier gewoon goed zonder PGM

Probeer eens zonder enige andere componenten eens die pic te proggen, dus, niks anders dan alleen de pic aan gesloten.

Ik heb hier op allehande manieren geprobeerd om die zelfde foutmeldingen te genereren, maar ik krijg het niet voor mekaar.

Heb je vóór het proggen de pic gereset?

Bedankt!

Moet ik de PIC resetten met de MCLRE pin??
Zoja, dan moet ik die toch naar de massa trekken?
Ik ga morgen proberen om eens zonder witte draad te doen.
Ik maak hem wel eerst leeg met het gommetje.
Met zonder andere componenten, bedoel je toch, de PIC en 2 condensators??

Ik kan de PIC en wisp met succes vinden en ook programerren maar als ik op verify druk krijg ik de foutmelding. Dat betekend dus dat de code in de PIC en de code die in BumbleBee staat niet overeenkomen.

Ik ga mij er morgen nog wat proberen mee bezig te houden.

Wordt vervolgd!

Sorry, ik gaf het verkeerd aan.
Ik bedoelde erase, dat gummetje

volgens mij mankeert er helemaal niks aan de wisp, maar ik denk inderdaad, dat je niet erase hebt gebruikt alvorens te proggen.
Dan krijg je inderdaad problemen.

edit:
BINGO!! dezelfde foutmelding, nadat ik een pic programmeerde zonder erase te gebruiken.
Dus..... sucses!

[Bericht gewijzigd door Kareltje op vrijdag 7 januari 2011 19:13:30 (20%)

Het werkt, iedereen bedankt voor de moeite en hulp, het lag waarschijnlijk aan dat IK iets fout deed in BumbleBee.
Dus nog even @wouter het lag weer niet aan de wisp maar aan de gebruiker!
(Is trouwens bij computers ook altijd:p)

Het werkt echt goed, een LCD heb ik nog niet volledig getest maar ga dat morgen proberen te doen.

Update
Ik ga proberen een L293D te kopen en wat drukknopjes en dan proberen de code te testen. Ik heb nog geen motoren maar ik ga dan gewoon 2LEDs die anti-parrallel staan gebruiken, dan kan ik zien of de motor vooruit/achteruit gaat, en zien of de redeneringen een beetje kloppen.
Zoals skywalker1 al zei klopt men code niet hellemaal. Nl als ik op vooruit druk dan blijft die vooruit gaan. Dus heb ik de code even aangepast:

pic basic code:


 
Device 16f628a
config INTRC_OSC_NOCLKOUT, WDT_OFF,PWRTE_ON,lVP_OFF,MCLRE_OFF
ALL_DIGITAL true
 
;Poorten
 
;       76543210  
PORTA = %00000000                       ;(hoog/laag(beginstand))Alle poorten laag
PORTB = %00000000                       ;(hooh/laag(beginstand))Alle poorten laag
 
TRISA = %00111100                       ;(uitgangen/ingangen) A.1/A.0/A.7/A.6 als uitgangen,A.5/A.4/A.3/A.2 als ingangen 
TRISB = %11110000                       ;(uitgangen/ingangen) B.0/B.1/B.2/B.3 als uitgangen,B.4/B.5/B.6/B.7 als ingangen  
 
;poortnamen
    ;L293D
symbol  Ingang1 = PORTA.1               ;Ingang 1 van de L293D is aangesloten op poort A.1
Symbol  Ingang2 = PORTA.0               ;Ingang 2 van de L293D is aangesloten op poort A.0
Symbol  Ingang3 = PORTA.7               ;Ingang 3 van de L293D is aangesloten op poort A.7
Symbol  ingang4 = PORTA.6               ;Ingang 4 van de L293D is aangesloten op poort A.6
 
    ;Knopjes                    
symbol  voor    = PORTB.1               ;Knop om vooruit te rijden
symbol  achter  = PORTB.2               ;Knop om Achteruite te rijden
Symbol  links   = PORTB.3               ;Knop om naar Links te draaien
symbol  rechts  = PORTB.4               ;Knop om naar Rechts te draaien
 
;Logische namen
symbol    AAN = 0                       ;=AAN voor de schakelaars (gesloten)
Symbol    OFf = 0                       ;=uit (als commando)
symbol    On  = 1                       ;=aan (als commando)
Symbol    UIT = 1                       ;=UIT voor de schakelaars (open, via de PUll-up weerstanden aan de +)
 
PORTB_PULLUPS on                          ;De pull-up weerstanden aan voor de knopjes, via weerstand aan +
clear                                   ;Wis al het RAM gehuegen
 
;subs 
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 = OFF
  Ingang2 = OFF
  Ingang3 = ON
  Ingang4 = OFF
Return
 
RECHTS_DRAAIEN:

  Ingang1 = On
  Ingang2 = OfF
  Ingang3 = OFF
  Ingang4 = oFF
return

stil:

Ingang1 = 0
Ingang2 = 0
Ingang3 = 0
ingang4 = 0
Return

;hoofdprogramma
While 1=1
if Voor     = 1 And Achter = 0 And links = 0 AND rechts = 0then gosub VOORUIT
IF Achter   = 1 And Voor = 0 And links = 0 And rechts = 0 THen gosub ACHTERUIT
If Links    = 1 And Achter = 0 And voor = 0 And rechts =0Then Gosub LINKS_DRAAIEN
IF rechts   = 1 And Achter = 0 And voor = 0 And Links = 0Then gosub RECHTS_DRAAIEN
If voor     = 0 And achter = 0 And links = 0 And rechts = 0 Then GoSub stil
WEND

De bumperschakelaar ga ik nog even achterwegen laten omdat ik daar nog niet hellemaal zeker van ben hoe ik dat ga doen.

EDIT:Ik heb het programma aangepast zodat het hoofdprogramma onder de gosubs terecht komt.

De precieze reden, weet ik ook niet, maar er wordt altijd geadviseerd om het hoofdprogramma onder de gosubs te zetten.
Maar het is een goed idee om met ledjes de motoren te simuleren.
Je kan nu zonder extra kosten het programmeren onder de knie proberen te krijgen.

Update
Nog geen tijd gehad om verder met het display te gaan.
Wel heb ik de wisp in een nieuwe 'behuizing' gestoken en hij werkt nog altijd naar behoren. Ik voed hem nu dus extern met een mooie 5V.

Ik heb een L293D op ebay gekocht. Dus de eerste onderdelen voor de robot zijn onderweg. Nu alleen nog wat drukknopjes regelen/zoeken.

Ik heb nog eens nagedacht over de code. En ik denk dat ik nog een klein foutje heb gevonden. Wanneer men 2 of meerdere knoppen gaat indrukken, denk ik dat de PIC een beetje raar gaat doen en de 2 instructies na elkaar uitvoeren. Dus ik heb de code nog wat aangepast. (Zie eerder bericht)

Ik denk dat de L293D nog wel een tijdje onderweg gaat blijven, dus kan ik de hele cursus nog eens doornemen, en nog wat onderdelen zoeken/kopen.

Ik hoop in de krokusvakantie (4-14 maart) een rijden breadboard te hebben dat bestuur baar is via drukknopjes.Ik ga tijdelijk 2 servo's* gebruiken. Zo kan ik voor rond de 5 euro al wat uittesten.

Ik ga nu een blok schema tekenen van de robot met al de ideeën erop. Zo kan ik snel een lijst maken vat wat ik allemaal nodig heb.

*= Servo zonder print en nokje. Dit doe ik zodat de code later met goede motoren hetzelfde kan blijven. De servo kan ik later wel weer in elkaar solderen en gebruiken voor andere toepassingen.

1 L293D via ebay?? is dat wel een goede keus?
Via een plaatelijke e-boer of voti lijkt mij goedkoper, en zeker sneller.

W.b. 2 knoppen tegelijk, zal het programma zelf geen problemen geven.
Een pic kan niet multitasken, en zal daarom in actie komen bij de toets die het eerste ingedrukt word, en pas na een volgende druk het volgende commando uitvoeren.
Evt. zou je een antiedender van enkele ms achter de toetsaanslag kunnen zetten zodat het allemaal wat soepeler verloopt, en een aanslag zekerder maakt.

edit:
Tijdens de krokusvakantie is ook de beurs in rosmalen.
Zeker de moeite waard om daar goekoop robotspullen te scoren.

[Bericht gewijzigd door Kareltje op zaterdag 22 januari 2011 22:41:23 (11%)

Naar rosmalen zou ik nog wel graag gaan maar dat is vanaf hier een dikke 100Km rijden.
Op ebay bestellen is idd wat trager maar beter dan 6 euro verzending kosten te betalen, bij de elektro boer(winkel) hebben ze er geen. En ik heb voorlopig ook niet zo veel tijd, de L293D zou hier toch maar liggen.

Ik heb hier op het forum nog iets gevonden.

Deze geven 6V en 1.3Ah. Dus als ik er vier koop, heb ik een spanning van 12V (ideaal) en 2.6Ah. Maar nu nog een probleem, hoe moet ik ze in hemelsnaam opladen?
Het zijn Lead Acid batterijen. Ik heb hier een adapter van 12V @1.5A liggen. Dus kan ik hier iets mee? Ik wil ook (nog) niet te veel geld uitgeven.

Heeft iemand hier een link o.i.d. over?

Alvast bedankt!

EDIT: Ik ben natuurlijk niet zo lastig, om als Wout Smmets de batterijen wil, dat ik ze dan voor zijn neus ga afpakken!

[Bericht gewijzigd door LEDfan op woensdag 26 januari 2011 14:49:44 (11%)

Update

De robot zal waarschijnlijk in de vorm van een driehoek worden, zo wordt het gewicht goed verspreid.
Met achter de driehoek een rechthoek.
De robot zal redelijk groot worden. Ik denk ongeveer 40 op 40cm.
Zo heb ik genoeg plaats voor de elektronica en de batterijen.
Ik heb al een snelle schets getekend, maar ik ga proberen van het ontwerp subiet over te zetten naar sketchup.
Dan ga ik ook een onderdelen lijst maken van de belangrijkste dingen die ik nodig, en deze hier posten, zo kunnen jullie meedenken.
Het blokschema is ook al lang af,maar nog geen tijd gevonden om het hier te posten,dat zal ik straks ook ineens doen.
Als er dan nog ideeën of aanvullingen zijn mogen die altijd vermeld worden!

Ik denk eraan om de koplampen naar boven en beneden te laten gaan met servo's. Zo krijg ik een leuk effect.
Omdat ik dan toch zoveel servo's ga nodig hebben, ga ik de servo's die ik pas besteld heb, niet ombouwen maar gewoon heel laten, en gebruiken voor de koplampen en webcam.

Jullie zullen je nu ook wel afvragen 'hoe kan dat ooit in 50 regels?', ik denk dat dat onmogelijk is. Daarom ga ik de PDS kopen.
Met dit heb ik toch alles? Dus ook de USB key?
Als ik dan toch geen 50 regel limiet heb kan ik beter ook een andere PIC nemen. Ik dacht aan de 16F877A.
De fuses begrijp ik niet hellemaal, maar ik heb die al overgekregen van loopycoaster, dus dat zal wel lukken.
Alleen de kostprijs aan de 16F877A vind ik wat hoog, maar die heeft wel (ongeveer) 35 I/O poorten. Als ik dit wil doen met verschillende 16F628A heb ik er al makkelijk 3 nodig en dat komt op €12.

Omdat ik echt geen idee heb hoe ik met batterijen moet omgaan, zal ik waarschijnlijk 8 in serie geschakelde D of C batterijen gaan gebruiken (8*1.2 = 9.6V).
Hierachter komt dan waarschijnlijk een 7805 die zo geschakeld is die dan 5A aan kan.
Dit zodat de servo's,LED's,motoren en de aanstuurelectronica die op 5V werken genoeg stroom krijgen.
Ik heb eens gekeken naar gewone oplaadbare batterijen: uit een oplaadbare D batterij van GP komt 9000mAh, of 9Ah.
Dit komt dan intotaal neer op €140 voor wat batterijen.
Dus ik zit echt in de knoei met mijn batterijen en weet niet wat ik moet doen! Heeft iemand tips of ideeën??? Anders kan ik dit project niet door laten gaan, of ik moet een lange draad hebben met een voeding erachter aan.

Alvast bedankt!

EDIT:Hier zijn alle bestanden. Als iemand het sketchup bestand wilt, laat het dan weten! Alle tips zijn welkom!

Groetjes
LEDfan!

Als je echt verder wilt met picbasic, is het een goede keus om het pakket te kopen.
Dit in combinatie met een met een 16F877 gaat er een nieuwe robotwereld open.
Denk aan PWM besturing van de motoren, en/of analoge sensoren, en die vele i/o poorten.

Dus ik zit echt in de knoei met mijn batterijen en weet niet wat ik moet doen! Heeft iemand tips of ideeën??? Anders kan ik dit project niet door laten gaan, of ik moet een lange draad hebben met een voeding erachter aan.

misschien is zoiets te overwegen.
Wel wat zwaar, misschien, voor jou robot, maar wel effectief.
Of anders zou je iets met een step-up converter kunnen proberen, zoals Lucky Luke in z'n KLM3 heeft gebouwd.

Ik zou gelijk de nieuwere PIC16F887 pakken. Of gelijk een controller met 2 HPWM voor sturing van 2 motoren.

Webshop voor Electronic Prototype | http://eProto.nl/

Op 8 februari 2011 22:17:57 schreef plano:Of gelijk een controller met 2 HPWM voor sturing van 2 motoren.

Er zitten 2 HPWM kanalen in een 16F877A ....

Die batterij ziet er (buiten het gewicht) wel handig uit, maar de oplader kost ook al wat geld. En met dat ik nu de volledige versie moet kopen,gaat dit niet lukken vanwege de kostprijs.

Ik heb gisteren nog wat zitten zoeken naar een oplossing. En ik denk dat de beste tijdelijke oplossing een varta 6V batterij wordt. Die geeft 8,5Ah. Als ik er 2 van in serie zet heb ik mijn 12V.

EDIT:Dit is dan ook maar een tijdelijke oplossing totdat ik terug wat gespaard heb en batterijen kan kopen.

Ik heb nog wat rond gezocht op Conrad en kwam deze batterij tegen : .: 269850 8A.
Deze lijkt met zeer geschikt. Het enigste nadeel is dat die maar 3Ah geeft. Maar dat heeft wel als voordeel dat ik deze oplader kan gebruiken:250338 8A.
Dan ben ik voor 30 euro van mijn batterij probleem af.

Nu ben ik weer aan het twijfelen voor de motoren. Het liefst sou ik 2 tamiya (72004) motoren met 2 bijpassende wielen gebruiken, maar dan zit ik weet niet zeker of die wel genoeg kracht leveren.

Nu ik toch bij conrad zal bestellen, kan ik beter daar de motoren ook kopen. Ik lees heel veel dat de RB-35 motoren veel worden gebruikt. Het probleem is dat die houder niet goed werkt op PICbaic staat een goede tekening die ik wel kan gebruiken, en dat er geen bijpassende wielen zijn(denk ik toch niet. Misschien dat ik hiervoor beter houten wielen maak, en deze dan met een stukje zacht mouse ofzo bekleef.
De extra kostprijs maakt niet zoveel uit, aangezien ik nu geen verzendkosten betaal, en anders wel.
Maar nu is nog de vraag welke vertraging ik moet gebruiken.

Zou het ontwerp wel goed gaan rijden? (natuurlijk met een zwenkwieltje vanvoor)

[Bericht gewijzigd door LEDfan op woensdag 9 februari 2011 13:24:20 (64%)

Ik heb ook eens ergens op internet gezien, dat iemand een accu van een schroefmachine hiervoor gebruikt, maar ik kan die site nergens meer vinden.
Dit zou best wel een mooie (tijdelijke) oplossing zijn.
Je moet er dan wel een passend hulpstuk voor maken, om die accu er zondermeer in te kunnen steken.

Wielen....
Een setje kun je eigenlijk overal van maken.
Loop eens een speelgoedwinkel binnen, en kijk eens bij knex of lego.
voor een goede bevestiging kun je
zoiets gebruiken.
Een goeie kennis of familie, die in de metaal werkzaam is, kan die hubs ook zelf maken.

w.b. Die RB-5 motoren....prima dingen, en met veel verschillende overbrengingen.
Snelheid is zelf uit te rekenen.
Als je de wielen hebt, meet je de omtrek.
Aantal omw.p/m * omtrek(mm)= mm per minuut.

Ik heb nog het een en het ander berekent, als ik de motor pak met de 1:20 transmissie, en een wiel neem van 12cm dan kom ik op een snelheid van 20,88m/minuut. Is dit een redelijke snelheid? Dus niet dat je er achteraan moet holen, maar ook niet dat je er traag achter moet zitten lopen.
EDIT: verkeerd gerekend, ik heb in de plaats van de omtrek de diameter genomen. Ben het nu opnieuw aan het berekenen.

Ik heb nog eens wat gezocht, en kwam uiteindelijk op deze batterijen.
En op deze lader.
Zo heb ik voor €24 alles en heb ik één keer de juiste batterij.

Misschien dat ik toch voor conrad ga en dan een step-up converter gebruik.

EDIT:Ik denk dat ik de definitieve oplossing heb gevonden. Ik gebruik 2 van deze batterijen ga gebruiken. Deze als ik meer stroom trek parallel of de 2de als reserve batterij gebruiken, dit zodat ik langer na elkaar kan doorrijden. Ik gebruik dan de veilige eerder vernoemde oplader van conrad, omdat ik mij motoren daar waarschijnlijk ook bestel.

EDIT2:Ik zou graag enkele tips hebben om goed om te gaan met een loodaccu.
Bij de oplader van conrad kan je de batterij laten overwinteren. Dit betekent toch dat de batterij (ook al is ze vol) je ze er gewoon kan aan laten hangen?

Dan nog enkele vragen:
1.Op welke spanning moet je stoppen met de batterij te gebruiken, en hem terug opladen?(Ik denk 11,8V) Ik zou graag op de robot een spanningsbewaker maken, die dan wordt ingelezen door µc en dat er dan via een speaker een singaal af gaat.
2.Hoeveel stroom mag er maximaal lopen? Of maakt dit niet uit?

Ik ben nog even bezig met een schema te tekenen met de batterijen op, de voeding(12V-->5V) en de belastingen.
Zodat ik tijdens het bouwen geen foutenmaak, want ik denk dat de oplader raar gaat doen als er nog elektronica aan de batterijen zijn aangesloten. Dus dan moet ik eerst een schakelaar zetten, zodat alle contacten tussen batterij en elektronica zijn verbroken.

Het is de bedoeling dat de robot in een laadstation wordt gereden, en dat er dan een 15 polige connector wordt ingeplugd, en ook 4 aansluitingen voor de batterijen. Zo kan ik zonder de batterijen of de (hoofd)PIC terug opladen of programmeren. Daarvoor ga ik nog een klein 'kastje'bovenop het laadstation bouwen.

Alvast bedankt voor tips!

[Bericht gewijzigd door LEDfan op donderdag 10 februari 2011 20:58:58 (27%)

update!
De robot zal wat hoger moeten worden, anders past de elektronica niet zo goed.

De mechanische kan van een robot (zoals voor veel mensen) is het moeilijkste deel voor mij. Ik ga daar dan ook ruim op voorhand mee beginnen. Ik hoop vanavond PDS te kunnen bestellen.

Nu heb ik nog enkele vragen in verband met de bevestiging van de motoren aan de wielen. Daar moet ik toch zo'n koppel stuk voor gebruiken? Maar dan zodat de as in het kleine gaatje gaat en de wielen aan het rondje komt?
Ik heb gezien dat de as van de motoren 12mm lang is. Kan ik dan niet in een (houten) wiel een gaatje boren, en hier recht streeks de motor op aansluiten?

p.s. ik ben van plan om houten wielen te nemen die gezaagd zijn met een klokboor van 200mm, en dat hier dan eerst een laagje systreen is over gedaan, en dan op de omtrek een soort mouse tegen het lawaai. Dit lijkt me het mooist, en ik vind dat je zoveel mogelijk zelf moet maken!

Ik maak voor kleine robots de wielen meestal van CD's. 2 grote CD's met daartussen karton of kleinere CD's. Dan rond het geheel een rubber :)

bijvoorbeeld:
http://hulens.be/DSC02219.JPG-for-web-normal.jpg

of

http://hulens.be/DSC04593.JPG-for-web.jpg

[Bericht gewijzigd door AC/DrieC op zaterdag 12 februari 2011 11:36:16 (12%)

Den Dries www.hulens.be

Mooi idee! Ik denk dat als ik voor 'cd wielen' ga kiezen dat ik er nog een stukje systreen ga over doen, zodat het geheel nog wat dikker wordt, en dat ik het makkelijk kan spuiten.

Ik zal het zeker onthouden!

update!!
Zaterdag even naar de winkel geweest om wat materiaal te halen. Zondag beginnen zagen, en vandaag begonnen met het monteren. Ik ben begonnen met het laadstation, dus een soort kap rond de robot. Spijtig genoeg waren de platen die ik gebruikt heb zo krom als een banaan :p. Dus dat wordt nieuwe plaat kopen en opnieuw zagen, heel spijtig dus, want heb gisteren nog een gat in één van platen gemaakt.

Dus nog geen foto's maar die komen hopelijk wel.

Update!!
Gisteren heb ik me wat bezig gehouden met een menu te maken, en er ook een leuk opstartgeluidje bij te maken. Dit is goed gelukt.
De code:

pic basic code:


'****************************************************************
'*  Name    : menu.bas                                          *
'*  Author  : LEDfan                                            *
'*  Notice  : Copyright (c) 2011 LEDfan                         *
'*          : All Rights Reserved                               *
'*  Date    : 8-3-2011                                          *
'*  Version : 1.2                                               *
'*  Notes   : Een voorbeeld van hoe het menu er uit gaat zien   *
'*          : De lijst met functies wordt nog uitgebreid        *
'*  Bugs    : V.1.2 bij sublussen 'return' vervangen door       *
'*          : 'goto functies'                                   *
'****************************************************************
DEVICE 16F628A                          
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE                        ;Alle ingangen digitaal

;hulplijntje 76543210
TRISA   =   %11111111                   ;ingangen/uitgangen 
PORTA   =   %00000000                   ;beginstand laag/hoog
     
TRISB   =   %00000110                   ;ingangen/uitgangen 
PORTB   =   %00000000                   ;beginstand laag/hoog

PORTB_PULLUPS ON                        ;Pullups aan omdat we de drukknop met de gnd verbinden
;menu
SYMBOL BEVESTIG   = PORTB.1             ;Dit is de knop om een functie te kiezen/bevestigen 

;geluid                                 
SYMBOL TIJD2 = 6000
SYMBOL TIJD  = 600 

;Logische constanten
SYMBOL AAN     = 0                      ;Geinverteerd ON
SYMBOL HOOG    = 1                      ;Signaal met hoog niveau
SYMBOL LAAG    = 0                      ;Signaal met laag niveau           
SYMBOL TRUE    = 1                      ;Waar
SYMBOL FALSE   = 0                      ;Niet waar 
SYMBOL OFF     = 0            
SYMBOL ON      = 1            
SYMBOL UIT     = 1                      ;Geinverteerd OFF

DELAYMS 500                             ;LCD stabilisering
CLEAR                                   ;Wis al het RAM gehugen
CLS                                     ;Wis het scherm
 
                  ;geluid
;***************************************
FREQOUT PORTA.1 , 100 , 6000            ;frequentie van   6 000 Hz
FREQOUT PORTA.1 , 100 , 35000           ;frequentie van  35 000 Hz
FREQOUT PORTA.1 , 100 , 50000           ;frequentie van  50 000 Hz
FREQOUT PORTA.1 , 100 , 600             ;frequentie van     600 Hz
FREQOUT PORTA.1 , 100 , 5000            ;frequentie van   5 000 Hz
FREQOUT PORTA.1 , 100 , 500000          ;frequentie van 500 000 Hz

                ;menu
;***************************************            
;beginscherm
;***************************************
CLS                                     ;wis oude tekst voor nieuwe tekst
PRINT AT 1,1, "Welkom bij het"
PRINT AT 2,1, "menu van 788bot"
DELAYMS 10000                           ;Tijd om dit scherm te laten zien
;instructie
;***************************************
CLS                                     ;wis oude tekst voor nieuwe tekst
PRINT AT 1,1, "Druk op de rode"
PRINT AT 2,1, "knop om een "
DELAYMS 3500                            ;Tijd om dit scherm te laten zien
CLS                                     ;wis oude tekst voor nieuwe tekst
PRINT AT 1,1, "functie te "
PRINT AT 2,1, "kiezen"
DELAYMS 10000                           ;Tijd om dit scherm te laten zien
;Functies
;***************************************
functies:      

CLS                                     ;wis oude tekst voor nieuwe tekst
PRINT AT 1,1, "Functie:"
PRINT AT 2,1, "Lijnvolgen"
DELAYMS 10000                           ;Tijd om dit scherm te laten zien
  IF BEVESTIG = AAN THEN 
    GOSUB LIJNVOLGEN
     ELSE                                
      CLS                               ;wis oude tekst voor nieuwe tekst
      PRINT AT 1,1, "Functie:"
      PRINT AT 2,1, "Bestuur manueel"
      DELAYMS 10000                     ;Tijd om dit scherm te laten zien
        IF BEVESTIG = AAN THEN
         GOSUB MANUEEL 
         ELSE
           CLS                          ;wis oude tekst voor nieuwe tekst
           PRINT AT 1,1, "Functie:"
           PRINT AT 2,1, "Snelheid meten"
           DELAYMS 10000                ;Tijd om dit scherm te laten zien
           IF BEVESTIG = AAN THEN 
            GOSUB SNELHEID
           ELSE
             CLS                        ;wis oude tekst voor nieuwe tekst
             PRINT AT 1,1, "geen functie"
             PRINT AT 2,1, "gekozen"
             DELAYMS 2500               ;Tijd om dit scherm te laten zien
             PRINT AT 1,1, "Mogelijke functies"
             PRINT AT 2,1, "worden herhaald"
             DELAYMS 2500               ;Tijd om dit scherm te laten zien
             GOTO functies              ;Terug naar het begin van de lijst met functies
             ENDIF
             ENDIF
             ENDIF
             
LIJNVOLGEN:                             ;Voorbeeld sublus 
CLS
PRINT AT 2,2, "LIJNVOLGEN"
DELAYMS 1000
GOTO functies

MANUEEL:                                ;Voorbeeld sublus 
CLS
PRINT AT 2,2, "MANUEEL"
DELAYMS 1000
GOTO functies:
 
SNELHEID:                               ;Voorbeeld sublus 
CLS
PRINT AT 2,2, "SNELHEID"
DELAYMS 1000
GOTO functies
        
END                                     ;einde programma

Een filmpje kan je zien hier zien.

Vandaag heb ik geprobeerd een snelheidsmeter te maken. Met de formule van kareltje, een extra wiel, een sensor en een LCD is dit zo gemaakt. Maar dan moet ik wel één minuut kijken of een poort hoog of laag is. Kijken of iets hoog of laag is is geen probleem, maar ik weet niet goed hoe ik er voor kan zorgen dat dit gedurende één minuut gebeurd.
Om de toeren te meten heb ik dit gemaakt:

pic basic code:

WHILE teller < 15000
  PORTA.1 = 1
  IF SENSOR = AAN THEN
    DELAYMS contactdender
    INC TOEREN
  ENDIF
  INC teller
  PRINT AT 1,1,  "Even geduld aub"
  PRINT AT 2,1, DEC TOEREN, AT 2,4, "Toeren"
WEND

Ik laat deze code dus 15 000 keer uitvoeren, ik had even getimed en dit kwam op een minuut uit. Maar een PIC zonder kristal is eigenlijk nooit precies, en ik denk dat de PIC er langer over doet als de poort wel hoog is.

Mijn vraag is dus, hoe kan je een opdracht voor een bepaalde tijd laten uitvoeren? Met een link of commando o.i.d. zal het wel lukken

Gisteren ook de servo's die ik besteld had op ebay ontvangen. Deze kunnen na een paar uurtjes draaien volledig rondraaien (ligt ook een deel aan de gebruiker) Ik heb er nu eentje dat nog heel is, 2 die gehackt zijn (zonder elektronica), dus een wijze les een servo van 0.99 dollar zal niet van zo goede kwaliteit zijn. :p

Alvast bedankt!

Vandaag heb ik geprobeerd een snelheidsmeter te maken. Met de formule van kareltje

Welke formule?
Heb ik ooit zoiets gemaakt?

Bovenstaande code helemaal zelf gemaakt?
Ziet er goed uit, als het ook zo goed werkt.
Op het filmpje is helaas niet veel op het display te zien.

Waarom die returns vervangen door goto's?
Nu moet je telkens bovenaan beginnen.
Ik weet zo niet hoe ik een menu precies in mekaar moet zetten, maar ik heb er gezien, waarmee je direct kunt scrollen naar de volgende functies.
Op zich ziet het er best wel goed uit.