Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Voor een applicatie wil ik letters naar een PC kunnen sturen.
Ik genereer de code met een PIC vraag me af hoe ik het beste kan doen.
Het zal met een USB geschikte PIC gedaan moeten worden, maar hoe laat ik de PC dit herkennen?
Excuus voor de misschien vage startpost.
Ik doe dit met mijn Smartphone.
Mvg
Fantomaz.
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
Moet niet dwingend een usb compatibele pic zijn. TXD en RXD hebben de meeste µC wel aan boord. Een FTDI chipje er tussen en het werkt ook. Andere mogelijkheid TXD en RXD toevertrouwen aan een IOT module en via wifi verzenden. Ethernet chipje er tussen en het kan weer anders.
Hangt allemaal een beetje af hoe je er verder mee om gaat. Wat gaat de PC er mee doen? Een eigen programma dat de gegevens verwerkt? In een Excel steken? Of een terminal programma à la Putty?
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Ik zou willen dat de applicatie als een USB toetsenbord aangesloten kan worden waarbij alle letters en cijfers, alsmede de meest gangbare leestekens kunnen worden verzonden en als normale karakters weergegeven op het dan actuele invoerscherm.
Geen fancy dingetjes erom heen.
Ook geen verschil tussen hoofdletters en kleine letters.
Ik weet niet of zo'n IC ook een "Enter" instructie kan sturen, want dat is ook wel gewenst.
Roches
Domoticz en ESP8266, goede combo!!!
Je moet een HID-desciptor maken met daarin de code voor een Toetsenbord...
Ik heb er wel één voor een muis, maar welke code je moet gebruiken voor een toetsenbord weet ik niet.
Op de volgende link kun je één en ander vinden denk ik...
http://www.picbasic.co.uk/forum/showthread.php?t=2872
Hier wordt ook de code voor een device-desciptor voor een toetsenbord gegeven...
Ik moet eerlijk zeggen dat het niet makkelijk is, en het is voor mij alweer te lang geleden dat ik met USB en PIC bezig ben geweest....
[Bericht gewijzigd door Roches op (15%)]
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
hadv
Just find out what you like and let it kill you
Je zult een PC applicatie nodig hebben die usb kan afhandelen. Dat is op zich niet moeilijk, maar als je het nog nooit hebt gedaan best wel even wennen.
Ook aan de PIC kant zul je eea moeten inrichten.
Ik heb dit in het verleden gedaan, dus als je specifieke vragen hebt mag je die stellen.
Achtergrond: een USB oplossing aan de PC kant werkt met USB events, daar zijn DLL's voor om dat op te lossen. Die signaleren wanneer een usb-hid device wordt aangesloten, afgekoppeld en/of iets verstuurt.
Je PIC applicatie moet een USB HID zijn, afhankelijk van je programmeeromgeving (en ervaring) is dat redelijk goed te regelen, maar het gaat niet 'vanzelf'. Zo moet een USB device een VID (vendor ID) en een PID (product ID) inclusief een descriptor file die de pc laat weten wat er allemaal aan de hand is.
Dan moet je op de ontvangst van USB packets wachten en die vervolgens verwerken. Een 'Enter' is in die zin niet anders dat willekeurig welk ander byte.
Omgekeerd wil je wellicht ook dat je vanaf de PC zaken naar de PIC kunt sturen, ook hier is weer eea voor nodig dat niet 'vanzelf' gaat. Voor ik de zaken voor de eerste keer aan de praat had ben ik echt wel twee weken zoet geweest (maar dan heb je ook wat).
Zoals buckfast_beekeeper zegt het kan in de regel ook makkelijk dmv een UART.
Ik heb gebruik gemaakt van PIC18F4550 en PIC18F14K50. Werken allebei prima.
Roches
Domoticz en ESP8266, goede combo!!!
Ons gewaardeerde lid "HADV" hier op C.O. weet behoorlijk veel van USB.
Misschien eens contact met hem opnemen....
[Edit] Was ik net dit bericht aan het typen komt HADV er al in....!!!
Ik had in het verleden de 18F2550.
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
Een enter of een ander teken, in wezen maakt het niet uit. Met het verzenden van ASCII waardes kom je meestal een heel eind. Elke taal heeft wel zijn escape tekens \n \r ... maar je kan er net zo goed 0x0A( decimaal 10) of 0x0D (13 decimaal) programmeren.
Aan PC zijde heeft zowat elke programmeertaal wel de nodige libraries om te communiceren met com (USB=>com) poorten, parallelle poort en USB. Elke deftige programmeertaal kan ook een DLL van derden aanspreken. Er zijn meerdere wegen die naar Rome leiden.
Misschien kun je hier nog iets mee?
https://www.circuitsonline.net/downloads/werken_met_profilab_expert_4.…
Kijk vanaf blz. 58.
TonHek
The fastest way to succeed is to double your failure rate.
Eigenlijk, als ik het goed lees, wil je dus dat jouw stukje hardware zich als een toetsenbord gedraagt.
Nu is het zo dat een (IBM) toetsenbord geen ascii naar de PC stuurt, maar de scancodes van de ingedrukte toets.
Je moet dus controleren welke taal (welk toetsenbord) er op die computer geconfigureerd is.
Bij het indrukken van de Q op een Qwerty geef je dezelfde code als een A op een Azerty toetsenbord.
Het indrukken van de Q geeft een scancode 15, en het loslaten van die toets genereerd de code F0,15
Je zal je dus moeten verdiepen in hoe een IBM (compatibel) toetsenbord werkt, en de afgegeven codes heb ik even hieronder gezet..
Zoals ook al hierboven genoemd moet je voor USB idd ook een VID&PID hebben, die tevens een driver (mag toetsenbord zijn) in het operating system en een entry in de registry krijgen. (als we het over windhoos hebben)
Veel succes.
TonHek
Ik weet dat je PIC noemt en daar zul je goede redenen voor hebben.
Met Digisparkjes (ATtiny 85 met USB in software) kan dit echter heel simpel.
Roches
Domoticz en ESP8266, goede combo!!!
De VID en PID zijn helemaal niet spannend, je mag gewoon die van Microchip gebruiken, die is daarvoor...
Alleen als je een apparaat commercieel uit brengt, dan moet je een VID en PID aanvragen, voor de rest (eigenbouw hobby) maakt het niks uit...
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
Als je de software aan beide zijden zelf schrijft, heeft het absoluut geen belang of het nu ascii, scancodes of tags zijn dat je gaat verzenden. Je gaat gewoon verzenden, ontvangen en afhandelen. Is er 1 toepassing die je elders gaat halen, dan kijk je wat die verzend of wil ontvangen en pas je dat aan.
Elke usb-uart omzetter heeft zijn pid en vid. Veelal vrij te gebruiken voor privédoeleinden. Een FTDI chipje kan je een eigen pid en vid geven.
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Ik ben al een vleugje wijzer.
Even vluchtig wat antwoorden/extra info
-de PIC behoeft uitsluitend te zenden.
-De data, veelal letters, zullen niet bijster snel ingevoerd of aangeleverd worden.
Voor zover dat relevant is. Het zijn menselijke handelingen.
Tja... ik heb een groot deel van de code van de applicatie al geschreven in PICBasic dus zal ik daar niet snel van afwijken. 
@HADV, ik had al wat Engelstalige postings voorbij zien komen op het proton.co.uk forum.
Harm, was het toch?
Al met al boeiende info.
Wat ik me nu dan afvraag...
Moet de PC waar de applicatie op wordt aangesloten nog worden voorzien van software?
Ik vraag me dat af omdat ik een willekeurig USB toetsenbord zo kan inpluggen, waarna ik los kan gaan.
Daaruitvoortvloeiende vraag... bestaan daar geen IC's voor die gevoed worden door externe info en die dat als "toetsenbord info" doorgeven?
Dan wordt zo'n IC meteen herkend zonder veel toeters en bellen op de PC.
Of denk ik nu te simpel? 
Oja... ik werk met een 16F628A PIC...
Ik proef al een beetje dat ik dat moet upgraden...
F
MGP
LDmicro user.
Inderdaad wat simpel voorgesteld.
Zonder programma op uw pc kun je niks doen, er moet dus een programma opgestart zijn om de toetsaanslagen te ontvangen en bewerken.
Die 628a kan wel serieel ascii doorzenden via zo'n serieel/usb kabeltje.
Ook daarvoor moet je een programma opstarten, dat kan een terminal programma zijn of Excel die CSV data ontvangt en in de cellen schrijft, veel mogelijkheden.
Wat wil je dat uw PC gaat doen met die ascii karakters?
Wat ik me nu dan afvraag...
Moet de PC waar de applicatie op wordt aangesloten nog worden voorzien van software?
Ja, anders is het zinloos van ascii data naar de pc te sturen.
je hebt nu ook veel bluetooth toetsenborden zou dat niet eenvoudiger zijn? kant pc moet je dan niets veranderen
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Inderdaad mis ik hier antwoord op mijn vergelijking met het willekeurige USB toetsenbord.
Daarvoor wordt er toch ook geen extra software verlangt?
Bij geen een USB applicatie for that matter...
Dus daarom mijn vraag... bestaan er USB toetsenbord chips?
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
Een USB toetsenbord vertelt aan je besturingssysteem dat het een toetsenbord is. Net zoals je USB-muis doet. Ga je het nieuwste type aansluiten of een type met meer dan normale mogelijkheden dan gaan er waarschijnlijk ook drivers geïnstalleerd worden. Bestaat het toetsenbord of de muis al wat jaartjes en ze zijn behoorlijk verkocht dan is de kans reëel dat je OS het toetsenbord, ook met uitbreidingen, wordt herkend en dat de juiste drivers al aanwezig zijn.
Het laatste heeft onder andere tot gevolg dat windhoos altijd maar zwaarder wordt.
Als toetesenbord met meer dan basis mogelijkheden denk ik bijvoorbeeld aan een Logitech waar ook toetsen aanwezig zijn voor mail, scrollen, F-toetsen met dubbele functie, EID-lezer, ...
Als je een toetsenbord echt nauwkeurig emuleert en je zorgt er voor dat je OS het als toetsenbord herkent, moet er aan de zijde van je pc normaal geen extra software of driver aanwezig te zijn.
Het lijkt wel alsof je gewoon een alternatief "toetsenbord" wilt gebruiken bij een bestaande applicatie, maar je formuleringen ontsnappen hier steeds net aan.
Ik begrijp dat het project geheim is, maar mogelijk is alsnog een preciezere definitie mogelijk ?
Nogmaals; In de Arduino-wereld wordt toetsenbord-emulatie veel gedaan, mogelijk zijn die oplossingen met wat aandacht ook te compileren voor een PIC, of anders kun je de Atmel ook alleen inzetten voor het USB deel en seriële data aanleveren vanaf de PIC.
Als het in hardware moet ligt iets met een 32U4 (Leonardo, Micro, MakeyMakey ..) voor de hand, maar ik vermoed als de Attiny 85 in de Digispark het kan dat ze het in principe allemaal in software kunnen. Allicht wel met verlies van de normale communicatie en bootloader-functionaliteit.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Een USB keyboard is een HID (Human Interface Device), daar heeft Windows standaard drivers voor aan boord...
MGP
LDmicro user.
Ik heb zo de indruk dat je zelf niet heel goed weet wat je wilt.
De titels spreekt van ascii naar pc te sturen via USB, dat is dus het makkelijkst maar blijkbaar toch dat niet.
Dan moet je een keyboard emulator hebben.
Een keyboardchip om wat te doen? ascii serieel -> keyboardchip->usb/pc
In principe wil je dus een controller die serieel/parallel ascii ontvangt en omzet naar toetsenboard codes en plug and play?
Een moeilijk geval volgens mij, oudere handscanners konden dat goed, die stonden in serie met het toetsenbord maar dat is volledig achterhaald.
Misschien eens zoeken naar "pc control via RS232", maar het blijft onduidelijk wat je wilt maken.
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
Op 14 januari 2017 09:38:35 schreef Arco:
Een USB keyboard is een HID (Human Interface Device), daar heeft Windows standaard drivers voor aan boord...
Voor de basis functies ja. Voor de bijkomende functies zijn er wel extra drivers nodig. Voor dit toetsenbord moest ik echt wel drivers installeren voor de extra functies beschikbaar kwamen. Ook mijn M500 muis had drivers nodig voor de extra knoppen (XP en Vista). Bij Win10 zitten ze er al in.
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Ok, sorry mensen.
Ik ben wat onvolledig en dat naast wat verwarring in terminologie maakt het een puinzooi.
Ik wil een applicatie maken waarbij ipv de toetsen op reguliere plekken, deze totaal anders komen te ziten, dan wel dat bepaalde handelingen op 1 toets een reeks aan andere "toetsenaanslagen" simuleert.
Anyway, ik kan dat deel opvangen met een PIC. Alleen de communicatie naar de PC gaat boven mijn pet.
Ik wil echter nooit teveel van mijn projecten uit de doeken doen en wel om 2 redenen...
1) men komt vaak (met de beste bedoelingen) op de proppen met totaal andere oplossingen voor het probleem.
2) er zijn elmenten die "geïnspireerd" worden door mijn ideeen en deels daarmee aan de haal gaan.
Ik heb een innovatieve geest maar ik ken mijn tekortkomingen qua kennis van techniek. ?
Wat het probleem betreft... ik was in de veronderstelling dat alle communicatie via ASCII liep ?.
Als het anders kan is dat ook mooi.
Als maar mijn ca 40 verschillende codes op een PC beeld kan dumpen.
verschillende codes op een PC beeld kan dumpen.
En ja... achteraf begrijp ik die driver issues ook wel waardoor gangbare toetsenborden gewoon door windows worden herkend, maar andere devices niet.
Misschien eens die Arduino dingen uitspitten? ?
Ik vergeet nu het protocol. Als het maar iets is wat ik vanuit een Pic op het scherm kan krijgen.
MGP
LDmicro user.
Op 14 januari 2017 16:03:17 schreef Fantomaz:
Ok, sorry mensen.
Ik ben wat onvolledig en dat naast wat verwarring in terminologie maakt het een puinzooi.
Het is er niet op verbeterd. 
Hoe kun je zo achterdochtig zijn dat niemand uw vraag begrijpt.
Schrijf de volgende keer gewoon "HELP" dat is even duidelijk ;p
Zolang je de broncode niet vrijgeeft kan niemand iets doen.
En wees gerust ik denk dat niemand op CO uw ideeën zal wegkapen en Chinezen zitten er hier ook niet.
Misschien kun je gewoon een usb toetsenbord nemen en daar de chip uit gebruiken. Al is het dan wel even puzzelen om de scan matrix dmv de pic aan te sturen.