Arduino a HP 100LX

Arduino a HP 100LX

Konečně jsem vyzkoušel, jak funguje sériová komunikace s Arduinem, které má standardně osazený jen USB port, ale přesto zvládne klasickou sériovou komunikaci. V rámci zkoušení jsem Arduino spojil s kapesním počítačem Hewlett Packard 100LX.

Motivace

Spojení Arduina s kapesním počítačem Hewlett Packard 100LX jsem dělal proto, že jsem si chtěl vyzkoušet práci se sériovým portem Arduina a také proto, že HP 100LX je moc šikovná věcička. Je to malý kapesní počítač na dvě AA baterie, který je IBM PC kompatibilní a funguje na procesoru 80186 a MSDOS 5. Takže si pro něj můžete naprogramovat jakýkoliv DOSový program jednoduše v Pascalu nebo C. Následně může fungovat jako servisní terminál pro Arduino projekty nebo jako ovladádání robota. Na internetu se také můžete setkat se novější verzí 100LX, která má označení 200LX, ale je téměř shodná.

I connected Arduino to Hewlett Packard 100LX because I wanted to try working with Arduino’s serial port and also because HP 100LX is pretty handy thing. It’s pocket computer, running of two AA batteries and it’s IBM PC compatible. It has 80186 processor and runs MSDOS 5. So you can easily make yourself programs in Pascal or C. Then it can be used as a maintenance terminal for your Arduino projects. I can imagine using it as remote control for some robot. There is lots of info on the internet about HP 200LX which is succesor of 100LX, but they are practically same.

Sériová linka Arduina

Jak jsem již napsal, Arduino Diecimila má standardně vyvedený jen USB port. Tento USB port je připojený na převodník, který komunikuje s procesorem Atmel sériovou linkou. Sériový port se tedy použije tak, že se připojíme mezi převodník a procesor. K tomuto účelu slouží na Arduinu piny 0 (RX) a 1 (TX).

Arduino Diecimila comes only with an USB port. The USB port is connected to converter, which communicates with Atmel processor over internal serial bus. We can use Arduino’s serial port by connecting our stuff between them. For that purpose there are two pins on Arduino - pin 0 (RX) and pin 1 (TX).

Ovšem sériová linka Arduina pracuje s TTL úrovněmi napětí, kdežto klasická sériová linka v počítačích používá napěťové úrovně standardu RS-232. Proto NIKDY nezapojujte Arduino přímo, protože ho zničíte. Řešením je koupit si obvod MAX232, který úrovně přizpůsobuje.

However, the Arduino’s serial bus is working with TTL voltage levels but serial port in computer works with RS-232 levels. That’s why you should never connect these two without using a voltage converter like MAX232.

Zapojení

Zapojení konektoru 100LX je elektricky shodné se zapojením u stolního počítače. Mě stačilo připojit příjem (RX), vysílání (TX) a zem (GND).

Pinout of 100LX’s serial port connector is same as in desktop computer. I only connected receive (RX), transmit (TX) and ground (GND).

Zapojení konektoru 100LX, 200LX

Video a obrázky

Arduino, 100Lx, nepájivé pole

nepájivé pole

100Lx

Závěr

Během odlaďování jsem přišel na to, že pokud chci v terminálu odřádkovat pomocí \n nefunguje to úplně dobře. Pro správnou funkci je třeba ručně použít LINE FEED a CARRIAGE RETURN pomocí \f\r. Mimochodem, při čtení kurzorových kláves apod. nezapomeňte, že jsou odesílány jako dva znaky (bajty) - tzv. escape sekvence.

When I was tunning the communication I found out that when you send \n - wanting a new line, it isn’t working well. In case you want to make a new line you should manually use LINE FEED and CARRIAGE RETURN. That can be done by sending \f\r. By the way, when you are reading from serial, don’t forget that cursor keys and other special keys on keyboard are send as two characters (bytes). It’s called the escape sequence.

V budoucnu bych chtěl zkusit udělat sériovou komunikaci bezdrátově například pomocí modulů vysílačů a přijímačů na frekvencích 433MHz nebo 868MHz. Nemám s tím zatím zkušenosti, takže pokud o tom něco víte, napište mi to do komentáře.

I want to try making the serial communication wireless, e.g. using transmiter and receiver modules working on 433Mhz or 868Mhz. But I don’t have any experience with it so if you know something about it let me know using comments.

Arduino Duemilanove

Tagy: , , , , , ,

Jeden komentář pro “Arduino a HP 100LX”

  1. Petr Says:

    Ahoj, zacinam s Arduinem a narazil jsem na jednu vec. Kdyz zasilam data po seriove lince do PC (x64 XP, Arduino pripojeno pres USB kabel) a nemam spustenou tu aplikaci, ve ktere nahravam do Arduina vysledny kod, tak na Arduinu po nejake dobe - cca 15 s prestane blikat LED signalizujici prenos dat. Pokud mam ovsem zaply Serial Monitor v te Arduinacke aplikaci, LED blika porad a data zasila. Zajima me tedy, jestli muze samotne Arduino zasilat data bez prestavky. Chtel bych udelat nejakou jednoduchou windows aplikaci, ale zarazi me, ze zrejme nedostavam zadna data, kdyz LED neblika..
    Diky za tvou informaci. Petr

Zanechte komentář