Dit is een project dat ik 1 jaar geleden begonnen ben maar nooit aan verder kon doen omdat ik geen PIC's kon programmeren. De bedoeling is een auto met van voor twee microswitches zodat als ie ergens tegen rijdt dat ie dan een stukje terug rijd en dan naar links of rechts draait om dan terug vooruit gaan te rijden. En als extra moeilijkheid heb ik er ook lichten opgezet (pinkers achterlichten remlichten gewone lichten) en die moeten ook allemaal op het gepaste moment gaan branden. Maar aangezien ik nu wel kan programmeren in picbasic haal ik dit projectje terug boven
Enkele foto's van wat ik tot nu toe al heb:
Op deze foto is de microswitsch "goed" te zien:
Op deze foto kan je het lampje en de leds aan de achterkant zien:
Op deze foto kan je het onderstel van de auto zien:
Vooraanzicht waarbij je de leds goed kan zien:
Weeral een foto van het onderstel deze keer van de zijkant af genomen.
Dit project is gestopt omdat de auto "zoek" is :-p en het toch niet werkte aangezien de voorste wielen niet stuurden.
Ik heb een hele tijd geleden van men achterbuurman een programmeerbaar robotautootje gekregen dat ik nu voor dit project wil gaan gebruiken.
Enkele foto's:
De sensoren die ik wil gaan gebruiken om objecten te detecteren (ik heb er 4):
Met dank aan Jens voor de optocouplers en Ludo voor de robotauto!!
In school hebben we de opdracht gekregen om een robotauto te maken voor de projectweek. Daarom heb ik besloten daar dit project voor te gebruiken. De projectweek is na de paasvakantie maar dan moet de hardware al af zijn zodat alleen de software nog gemaakt moet worden in die week.
Vandaag heb ik een IR nadering's sensor gemaakt.
De sensoren die ik van Jens had gekregen bleken maar 5mm bereik te hebben dus heb ik andere gebruikt. Ik heb bij reichelt een aantal IR leds gehaald en met een TSOP1738 die ik nog had liggen heb ik nu een test versie gemaakt op breadbord. Schema:
Filmpje van de schakeling in werking:
De groene led onderaan in beeld is de uitgang.
Bron schema:
http://www.elektronicaforum.nl/trapverlichting-met-led-t3123-25.html#21564
Welke pic dat ik ga gebruiken weet ik nog niet zeker maar ik denk een 16F627. Voor de motoren aan te sturen ga ik een L293 gebruiken.
Ik heb vandaag een pcb ontworpen voor de pic en motorsturing:
Schema:
Vandaag heb ik een printje geëtst en opgebouwd van een sensor. (Ik heb nog niet alle onderdelen binnen.)
![]()
Ons groepje gaat 2 robot autootjes maken. 1 daarvan staat hierboven al en een ander is een tank.
Foto's:
Ik heb vandaag de print voor mijn autotje ge-etst, gesoldeert en alle bedrading gedaan.
Foto's:
Ondertussen is de tank ook voorzien van printplaten :p :
De sensoren:
De hoofdprint:
De motoren:
"Overzicht's"foto:
De code is ondertussen klaar.
De code in de robotauto:
Device 16F628A Config WDT_OFF, PWRTE_Off, LVP_OFF, MCLRE_on, INTRC_OSC_NOCLKOUT ALL_DIGITAL TRUE PORTB_PULLUPS = 1 'Declaraties 'Sensoren Symbol sensorR = PORTA.6 Symbol sensorL = PORTA.7 'Motoren Symbol motorvooruit = PORTA.2 Symbol motorachteruit = PORTA.3 Symbol stuurLinks = PORTA.1 Symbol stuurRechts = PORTA.0 'Terugkoppeling stuur Symbol stuursensL = PORTB.0 Symbol stuursensM = PORTB.1 Symbol stuursensR = PORTB.2 'Leds Symbol led1 = PORTB.3 Symbol led2 = PORTB.4 Symbol led3 = PORTB.5 Symbol led4 = PORTB.6 Symbol led5 = PORTB.7 'Wachten voor dat er bogonnen wordt '(De sensoren hebben tijd nodig om op te starten) DelayMS 1000 'Stuur initialiseren 'Staat het stuur in het midden? If stuursensM = 0 Then GoTo klaarinit 'Direct naar klaarinit gaan EndIf 'Staat het stuur links? If stuursensL = 0 Then GoTo links 'Naar links gaan EndIf 'Staat het stuur rechts? If stuursensR = 0 Then GoTo rechts 'Naar rechts gaan EndIf 'In geen stand (geen terugkoppeling) 'Eerst volledig naar rechts draaien High stuurRechts While stuursensR = 1 ;Lusje totdat de stuursensor rechts laag wordt Wend Low stuurRechts DelayMS 500 'Naar gedeelte gaan voor als het stuur naar rechst staat GoTo rechts rechts: 'Naar links sturen High stuurLinks While stuursensM = 1 ;Lusje totdat de stuursensor midden laag wordt Wend Low stuurLinks DelayMS 500 GoTo klaarinit links: ;Naar rechts sturen High stuurLinks While stuursensM = 1 ;Lusje totdat de stuursensor midden laag wordt Wend Low stuurLinks DelayMS 500 klaarinit: High motorvooruit Low motorachteruit High led3 GoTo main 'Hoofdprogramma main: ;links opstakel If sensorL = 0 Then DelayMS 10 High led1 GoSub linksDect EndIf Low led1 ;rechts opstakel If sensorR = 0 Then DelayMS 10 High led5 GoSub rechtsDect EndIf Low led5 GoTo main rechtsDect: High led4 ;stukje achteruit Low motorvooruit DelayMS 10 High motorachteruit DelayMS 1000 Low motorachteruit Low led4 ;Draaien High stuurLinks While stuursensL = 1 ;Lusje totdat de stuursensor links laag wordt Wend Low stuurLinks ;Stukje vooruit DelayMS 10 High motorvooruit DelayMS 1000 Low motorvooruit ;Stuur terug recht zetten High stuurRechts While stuursensM = 1 ;Lusje totdat de stuursensor midden laag wordt Wend Low stuurRechts DelayMS 10 High motorvooruit Return linksDect: High led2 ;stukje achteruit Low motorvooruit DelayMS 10 High motorachteruit DelayMS 1000 Low motorachteruit Low led2 ;Draaien High stuurRechts While stuursensR = 1 ;Lusje totdat de stuursensor links laag wordt Wend Low stuurRechts ;Stukje vooruit DelayMS 10 High motorvooruit DelayMS 1000 Low motorvooruit ;Stuur terug recht zetten High stuurLinks While stuursensM = 1 ;Lusje totdat de stuursensor midden laag wordt Wend Low stuurLinks DelayMS 10 High motorvooruit Return ;bij fout GoTo main End
De code in de tank:
Device 16F628A Config WDT_OFF,PWRTE_OFF,LVP_OFF,MCLRE_ON,INTRC_OSC_NOCLKOUT, BODEN_OFF ALL_DIGITAL true Symbol motorLinksV = PORTA.2 Symbol motorLinksA = PORTA.3 Symbol motorRechtsV = PORTA.6 Symbol motorRechtsA = PORTA.7 Symbol sensorL = PORTA.0 Symbol sensorR = PORTA.1 Symbol led1 = PORTB.0 Symbol led2 = PORTB.1 Symbol led3 = PORTB.2 Symbol led4 = PORTB.3 Symbol led5 = PORTB.4 Clear High motorLinksV DelayMS 10 High motorRechtsV Low motorRechtsA Low motorLinksA main: If sensorL = 0 Then 'hoog maken van led1 High led1 'stoppen van motoren vooruit Low motorLinksV Low motorRechtsV '100ms wachten DelayMS 100 'achteruit rijden High motorLinksA DelayMS 10 High motorRechtsA 'hoogmaken van led3 en Led4 High led3 High led4 '1 s wachten DelayMS 1000 'stoppen met rijden Low motorLinksA Low motorRechtsA Low motorLinksV Low motorRechtsV 'laag maken van led3 en led4 Low led3 Low led4 '100 ms wachten DelayMS 100 'led2 hoogmaken High led2 'draaien van tank High motorLinksV DelayMS 10 High motorRechtsA '500ms draaien DelayMS 500 'laagmaken led2 Low led2 'stoppen met draaien Low motorLinksV Low motorRechtsA '10 ms stoppen DelayMS 10 'terug vooruit rijden High motorLinksV DelayMS 10 High motorRechtsV Else 'als sensor links niets detecteert gaat led1 niet branden Low led1 EndIf If sensorR = 0 Then 'hoog maken van led5 High led5 'stoppen van motoren vooruit Low motorLinksV Low motorRechtsV '100ms wachten DelayMS 100 'achteruit rijden High motorLinksA DelayMS 10 High motorRechtsA 'hoogmaken van led3 en Led4 High led3 High led4 '1 s wachten DelayMS 1000 'stoppen met rijden Low motorLinksA Low motorRechtsA Low motorLinksV Low motorRechtsV 'laag maken van led3 en led4 Low led3 Low led4 '100 ms wachten DelayMS 100 'led2 hoogmaken High led2 'draaien van tank High motorLinksA DelayMS 10 High motorRechtsV '500ms draaien DelayMS 500 'laagmaken led2 Low led2 'stoppen met draaien Low motorLinksA Low motorRechtsV '10 ms stoppen DelayMS 10 'terug vooruit rijden High motorLinksV DelayMS 10 High motorRechtsV Else 'als sensor rechts niets detecteert gaat led5 niet branden Low led5 EndIf GoTo main End
Datum: 29 November 2006, 19:49
Jammer, want dit is opzich een leuk projectje, jammer dat je hem kwijt bent :P
Datum: 06 September 2007, 13:54
...en het toch niet werkte aangezien de voorste wielen niet stuurden...
is dit niet op te lossen door de wielen tegengesteld te laten draaien om een bocht te pakken? zoals bij een tank? (rechtsvoor vooruit, linksvoor achteruit geeft een bocht naar links).
ben zelf aan het experimenteren met een porsch 911 :p
Datum: 06 September 2007, 13:57
Nee daar was de auto te smal voor denk ik.
Maar ik heb ondertussen een firebird staan die stuurt :p. Die auto was vroeger programeerbaar voor een vast parcours te doen. Ik moet daar nog altijd foto's van maken maar nog geen tijd gehad.
mvg,
Stynus
Datum: 23 Maart 2008, 14:36
Wow dat ziet er goed uit:D ben benieuwd naar het resultaat.
Datum: 13 April 2008, 23:44
welke compiler gebruiken jullie en welke programmer om de PIC's te proggen ?? Alles ziet er mooi en leuk uit!
Datum: 14 April 2008, 15:38
Als compiler gebruiken we picbasic (http://www.voti.nl/winkel/catalog.html?PIC-ProtonPlus).
Voor de hex in de pic te zetten heb ik een galvawisp:
http://www.elektronicastynus.be/Projecten/Galvawisp/index.php
Mvg,
Stynus
Datum: 04 Augustus 2010, 12:46
Cool project! Is there an English version?
Regards,
Alan Parekh
http://hackedgadgets.com
Datum: 07 Augustus 2010, 14:14
No, not yet. Translations are on the todo list :p.
Regards,
Stynus























