|
Gepost op zaterdag 20 December 2008 11:52:46 |
 |
Je zou 2 pics kunnen verbinden via zo een 433Mhz zendertje en ontvangertje.
Dan kan je voor de pic aan de pc kant een 18f2550 nemen.
Als je dan USB_DESCRIPTOR = "MOUSDESC.INC" in je code zet wordt die als muis herkend dus geen extra drivers ofzo nodig.
Bij de samples van picbasic zit trouwens een voorbeeld van een muis.
C:/Program Files/Proton/Samples
De commando's voor klikken enzo kan ik wel niet direct vinden.
|
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
Gepost op zaterdag 20 December 2008 12:43:56 |
 |
Hartelijk bedankt, dit was wat ik zocht. Nu zou ik de code voor het scrollen nog moeten vinden. Hieronder kan je de voorbeeldcode vinden van proton.
Code |
'
' Demonstrate a HID (Human Interface Device) interface
'
' When connected to the PC, the mouse pointer will rotate in a small square
Device = 18F4550 ' Choose a device with on-board full speed USB
XTAL = 48 ' Set the oscillator speed to 48MHz (using a 20MHz crystal)
USB_DESCRIPTOR = "MOUSDESC.INC" ' Point to the MOUSE DESCRIPTOR file (located in the INCUSB_18 folder)
Dim PP0 as Byte SYSTEM ' USBPOLL status return
Dim BUFFER[4] as Byte
Dim LOOP_COUNT as Byte
Dim POSITION as Byte
Dim INDEX as Word
Symbol CARRY_FLAG = STATUS.0 ' High if microcontroller does not have control over the DP buffer
Symbol TRNIF = UIR.3 ' Low if USB Busy
'------------------------------------------------------------------------
' The main program loop starts here
Delayms 200 ' Wait for things to stabilise
Clear ' Clear all RAM before we start
Repeat '
USBPoll ' Wait for the USB interface to become attached
Until PP0 = %00000110 ' /
While 1 = 1
For POSITION = 0 To 3 ' Move through each position
For LOOP_COUNT = 0 To 31 ' 32 steps in each direction
Select POSITION
Case 0 ' Move UP ?
BUFFER#1 = 0
BUFFER#2 = -2
Case 1 ' Move RIGHT ?
BUFFER#1 = 2
BUFFER#2 = 0
Case 2 ' Move DOWN ?
BUFFER#1 = 0
BUFFER#2 = 2
Case 3 ' Move LEFT ?
BUFFER#1 = -2
BUFFER#2 = 0
End Select
Repeat
USBOut 1, BUFFER, 4 ' Send the buffer to endpoint 1
Until CARRY_FLAG = 0 ' Keep trying if the microcontroller does not have control over the buffer
Repeat : Until TRNIF = 1 ' Wait for completion before continuing
Next
Next
Wend
|
|
|
|
Gepost op zaterdag 20 December 2008 20:36:38 |
 |
iemand op CO heeft is een USB muis gesloopt en dat IC dat erin zat ervoor gebruikt. misschien ook wel nuttige info voor jou |
www.christiaan-elektro.nl bouwt een cnc :) |
|
Gepost op zondag 21 December 2008 09:06:58 |
 |
Dat was ook wat ik schreef in de startpost he . En als ik me niet vergis was het KIF die dat gemaakt had, maar dat weet ik niet heel zeker meer. |
|
|
Gepost op zondag 21 December 2008 10:27:06 |
 |
bonk
het was kif ja |
www.christiaan-elektro.nl bouwt een cnc :) |
|
Gepost op vrijdag 6 Maart 2009 21:43:27 |
 |
Ik heb dit gevonden. Ik kan het spijtig genoeg nog niet uittesten aangezien ik de juist microcontrollers nog niet heb. Maar als ik het goed begrijp zou ik met behulp van die instructiecodes een hele pc kunnen besturen? Ofja toch alles wat je met een toetsenbord kan. |
|
|
Gepost op vrijdag 19 Juni 2009 21:22:48 |
 |
Ik heb een voorlopig schema getekend, graag dat jullie je mening geven over de keuze van bepaalde componenten en vooral de aansluiting van USB.
effe schema kort samengevat:
Alles wordt gevoed vanuit de USB aansluiting, dus geen externe voeding! Zou er nog extra ontkoppeling nodig zijn?
Lcd aansluiting voor in de toekomst playlist oid te tonen
4 drukknoppen om rechtstreeks zonder afstandsbediening de ppt te bedienen, in geval dat er geen tobo aanwezig is of voor WMP te bedienen
X1 is voor de ontvanger

|
|
|
Gepost op vrijdag 19 Juni 2009 22:13:49 |
 |
Extra ontkoppeling is altijd nodig, bij een pic is standaard altijd een 100nF condensator nodig over de voedingslijnen. |
Veel te weinig tijd voor mijn projecten of heb ik er soms te veel? |
|
Gepost op vrijdag 19 Juni 2009 22:56:50 |
 |
En een kleine elco is ook aan te raden. |
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
Gepost op zaterdag 20 Juni 2009 20:57:44 |
 |
Het schema nog wat aangepast en het PCB ontworpen, de print maken zal voor na de examens zijn.
R7 toegevoegd, juiste LCD ingevoegd (4x20) en datalijnen omgedraaid, drukknoppen van plaats gewisseld en maar mee een nieuwe lib aangemaakt voor de ontvanger.


De 100nF condensator is toegevoegd, de elco heb ik achterwegen gelaten wegens plaatsgebrek. |
|
|
Gepost op zaterdag 20 Juni 2009 21:13:27 |
 |
Links naast je drukknop is er nog een mooi plaatsje voor. |
Veel te weinig tijd voor mijn projecten of heb ik er soms te veel? |
|
Gepost op dinsdag 23 Juni 2009 19:55:13 |
 |
Ik heb de elco een plaatsje gegeven en de print een beetje kleiner gemaakt, drukknoppen komen onder het LCD te zitten.
Na een namidagje etsen en solderen, ... en van het zonnetje genieten (buiten print gemaakt).

onderkant:

en de zender:


Print werkt perfect, ofja het USB gedeelte toch. Ik heb er een sample programma van proton zelf ingezet (de usb mouse) en die werkt naar behoren, zeer vervelend om dan nog met de pc te werken .
Nu moet ik de ?C een usb-keyboard laten simuleren, maar dit zal niet zo simpel worden vrees ik.
Als er iemand meer info moest hebben of een leuke site met meer info over hoe je een USB-keyboard kunt simuleren met een PIC, graag. Want ik heb het internet al afgestruind, maar nog niet echt iets bruikbaar gevonden. |
|
|
Gepost op dinsdag 23 Juni 2009 19:58:46 |
 |
Ziet er goed uit.
Hier staat een voorbeeld van een keyboard: http://www.elektronicastynus.be/PICBASIC/USB/Keyboard_Emulator/index.php
Nuja hoe je toetsen "indrukt" ermee staat er niet bij want had ik toen niet nodig. |
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
Gepost op donderdag 25 Juni 2009 18:18:43 |
 |
Ik heb het zo goed als werkend met onderstaande code, alleen zit ik nog met een probleem . Als ik de drukknop te lang induw dan worden er meerder dia's verder gegaan en dit is natuurlijk niet de bedoeling. Als ik de drukknop blijf induwen mag er telkens maar een dia verder gegaan worden. Ik heb het proberen op te lossen met de goto maar dit lost het probleem niet volledig op. Is er hiervoor ook een andere oplossing?
Ik heb hier een voorbeeldcode gevonden.
Code |
Device = 18F2550
XTAL = 48 ' op print 20MHz gebruiken
USB_DESCRIPTOR = "KBDDESC.INC" ' Point to the KEYBOARD DESCRIPTOR file (located in the INCUSB_18 folder)
Dim PP0 As Byte SYSTEM ' USBPOLL status return
Dim BUFFER[8] As Byte
Dim LOOP_COUNT As Byte
Dim POSITION As Byte
Dim INDEX As Word
symbol S1 = portB.0
symbol S2 = portb.1
symbol S3 = portB.2
symbol S4 = portB.3
SYMBOL A = PORTB.4
symbol B = portB.5
symbol C = portB.6
symbol D = portb.7
symbol CARRY_FLAG = STATUS.0 ' High if microcontroller does not have control over the DP buffer
Symbol TRNIF = UIR.3 ' Low if USB Busy
; 76543210 ' poort B allemaal als ingang programmeren
TRISA = %11111111
'------------------------------------------------------------------------
' The main program loop starts here
DelayMS 200 ' Wait for things to stabilise
Clear ' Clear all RAM before we start
Repeat
USBPoll ' Wait for the USB interface to become attached
Until PP0 = %00000110
While 1 = 1
if A = 1 then
BUFFER#0 = 0 '1st byte = modifier keys (i.e. ctrl, alt, shift)
BUFFER#1 = 0 '2nd byte = reserved
BUFFER#2 = $58 'enter
BUFFER#3 = 0
BUFFER#4 = 0
BUFFER#5 = 0
BUFFER#6 = 0
BUFFER#7 = 0
USBOut 1, BUFFER, 8 ' Send the buffer to endpoint 1
knopa:
if a = 1 then goto knopa
else
BUFFER#0 = 0
BUFFER#1 = 0
BUFFER#2 = 0 'all key are up
BUFFER#3 = 0
BUFFER#4 = 0
BUFFER#5 = 0
BUFFER#6 = 0
BUFFER#7 = 0
USBOut 1, BUFFER, 8 ' Send the buffer to endpoint 1
endif
if B = 1 then
BUFFER#0 = 0 '1st byte = modifier keys (i.e. ctrl, alt, shift)
BUFFER#1 = 0 '2nd byte = reserved
BUFFER#2 = $2A 'backspace
BUFFER#3 = 0
BUFFER#4 = 0
BUFFER#5 = 0
BUFFER#6 = 0
BUFFER#7 = 0
USBOut 1, BUFFER, 8 ' Send the buffer to endpoint 1
knopb:
if b = 1 then goto knopb
else
BUFFER#0 = 0
BUFFER#1 = 0
BUFFER#2 = 0 'all key are up
BUFFER#3 = 0
BUFFER#4 = 0
BUFFER#5 = 0
BUFFER#6 = 0
BUFFER#7 = 0
USBOut 1, BUFFER, 8 ' Send the buffer to endpoint 1
endif
if C = 1 then
BUFFER#0 = 0 '1st byte = modifier keys (i.e. ctrl, alt, shift)
BUFFER#1 = 0 '2nd byte = reserved
BUFFER#2 = $3E 'F5
BUFFER#3 = 0
BUFFER#4 = 0
BUFFER#5 = 0
BUFFER#6 = 0
BUFFER#7 = 0
USBOut 1, BUFFER, 8 ' Send the buffer to endpoint 1
knopc:
if c = 1 then goto knopc
else
BUFFER#0 = 0
BUFFER#1 = 0
BUFFER#2 = 0 'all key are up
BUFFER#3 = 0
BUFFER#4 = 0
BUFFER#5 = 0
BUFFER#6 = 0
BUFFER#7 = 0
USBOut 1, BUFFER, 8 ' Send the buffer to endpoint 1
endif
if D = 1 then
BUFFER#0 = 0 '1st byte = modifier keys (i.e. ctrl, alt, shift)
BUFFER#1 = 0 '2nd byte = reserved
BUFFER#2 = $29 'escape
BUFFER#3 = 0
BUFFER#4 = 0
BUFFER#5 = 0
BUFFER#6 = 0
BUFFER#7 = 0
USBOut 1, BUFFER, 8 ' Send the buffer to endpoint 1
knopd:
if d = 1 then goto knopd
else
BUFFER#0 = 0
BUFFER#1 = 0
BUFFER#2 = 0 'all key are up
BUFFER#3 = 0
BUFFER#4 = 0
BUFFER#5 = 0
BUFFER#6 = 0
BUFFER#7 = 0
USBOut 1, BUFFER, 8 ' Send the buffer to endpoint 1
endif
if S1 = 1 then
BUFFER#0 = 0 '1st byte = modifier keys (i.e. ctrl, alt, shift)
BUFFER#1 = 0 '2nd byte = reserved
BUFFER#2 = $80 'volume up
BUFFER#3 = 0
BUFFER#4 = 0
BUFFER#5 = 0
BUFFER#6 = 0
BUFFER#7 = 0
USBOut 1, BUFFER, 8 ' Send the buffer to endpoint 1
else
BUFFER#0 = 0
BUFFER#1 = 0
BUFFER#2 = 0 'all key are up
BUFFER#3 = 0
BUFFER#4 = 0
BUFFER#5 = 0
BUFFER#6 = 0
BUFFER#7 = 0
USBOut 1, BUFFER, 8 ' Send the buffer to endpoint 1
endif
Wend
end
|
|
|
|
Gepost op donderdag 25 Juni 2009 18:27:00 |
 |
Je kan proberen met een bit hoog te maken als je de data bij die knop de eerste keer uitvoerd. Als dan die bit hoog is en de knop hoog mag er niks gebeuren. Als de knop terug laag is dan moet de bit ook terug 0 gemaakt worden. |
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
Gepost op donderdag 25 Juni 2009 18:36:24 |
 |
Maar dit pas ik nu toch ook toe of begrijp ik je verkeerd? |
|
|
Gepost op donderdag 25 Juni 2009 18:40:48 |
 |
Nee, zal even 1 stukje aanpassen.
Code |
dim abit as bit
if A = 1 and abit = 0 then
BUFFER#0 = 0
...
USBOut 1, BUFFER, 8 ' Send the buffer to endpoint 1
abit = 1
else
BUFFER#0 = 0
...
if A = 0 then
abit = 0
endif
endif
|
|
Met vriendelijke groet, Stynus ||| www.elektronicastynus.be |
|
|
|
|