Az Arduino programokat nem szerelemféltésből nem tettem ki, hanem egyrészt azért, mert valami al-almappából elő kéne varázsolnom őket, másrészt pedig erre a falra nem illik családregényeket írni, meglehetősen hosszúak.
Áll egy Arduino Megából, a bővítő panelből és egy MAX485-ös panelkából. Ebből elkészült két DIN-sínre pattintható pattintható változat. Az egyik az adó, a másik a vevő, tehát jelenleg egyirányú kommunikáció folyik kettejük között. Az egyik az 52 pontos adatgyűjtő, a másik, a fogadó a megjelenítő, ami egy sématáblára fog jeleket küldeni, jelenleg 52 db LED-et vezérel. Az útvonal 400 m, erősen zavart ipari környezetben, egy kábelrendezőn. Fél éve meghibásodás nélkül, de azért a biztonság kedvéért vettem 2 db RS485-ös repeatert. A kábel 8x0,75nm kábel, 2-esével sodrott érpárakkal.
ON téma azért, mert a megjelenítést PC-re is kiviszem, szintén RS485-tel, grafikus felületre. Tehát azon is megjelennek majd a berendezések állapotai. Tudom, hogy léteznek professzionális szoftverek ilyen célra, de azt azért nem veszem meg és nálunk sincs. A kommunikáció indítását és leállítást - meg majd ami adódik - PC szoftverrel tervezem vezérelni, befolyásolni. A kommunikációs részének az alapjai már megvannak Pythonban, a grafikus valós idejű megjelenítés lesz a kihívás. Hogy el fog készülni, abban egészen biztos vagyok, de mivel a közelben senki sem foglalkozik Pythonnal, egy kicsit döcögősen.
Csak halkan jegyzem meg, hogy mindez nem öncélú. A jelenlegi rendszer, ami relés technikára alapul, ugyan működik, mert az én felségterületem, de egyre több hibával. Arra meg nem sok remény van, hogy emiatt a rendszer miatt beruházzanak egy PLC-s rendszerre. Annak ellenére, hogy nem csak erről az 52 jelről ill. állapotról, hanem több százról van szó. Kizárólag Arduinoval megvalósítani, ma már csak ujjgyakorlat, kézügyesség kérdése.
Praktikusan ez nem Arduino kérdés, de még csak nem is Python.
Abban a pillanatban ahogy kilépsz a homokozóból (az Arduino panel maga), a PC-Arduino kapcsolat lesz a kulcs, azaz fel kell építened egy kommunikációs protokollt, amelyen adod-kapod az adatokat, parancsokat, satöbbi, és az Arduinoba ehhez kell egy komplett parancsértelmező és kommunikációs szoftver modul.
Ha eldöntötted, hogy milyen fizikai megvalósításon keresztül kommunikálsz (pl. RS232 illetve 485, ezek csak hardveresen különböznek), akkor már tovább lehet lépni.
Az egésznek a kulcsa annak a kezelése, hogy a csomagok rendben megérkeztek-e a cél helyre és ha nem, akkor mi a teendő.
Nem találtam Pythonnal foglalkozó fórumot, ezért tettem ide, hátha mást is érdekel, hátha van, aki jártas benne, hátha másnak is bejönnek a script-nyelvek. Nekem bejött. :-))
Mindjárt neki is álltam, hogy kapcsolatot teremtsek PC és mikorkontroller között, azaz Python és Arduino között.
A kezdeti nehézségeken - kódlopás útján - túlettem magam ezzel a két nyúfarknyi kóddal:
Python-kód:
# -*- coding: cp1250 -*- import serial
Arduino_Serial = serial.Serial('com4',9600) print Arduino_Serial.readline() print ("Enter 1 to ON LED and 0 to OFF LED")
while 1:
input_data = raw_input()
print "you entered", input_data
if (input_data == '1'): Arduino_Serial.write('1') print ("LED ON")
if (input_data == '0'): Arduino_Serial.write('0') print ("LED OFF")
Ezekkel sikerült USB porton keresztül vezérelni az Arduino 13-as portját, azért azt, mert rend szerint azon van egy belső LED és így nem kell drótozni.
Viszont mindenképpen tovább szeretném fejleszteni, egészen a grafikus felületről való vezérlésen át akár az RS-485 kommunikációig, amiben Arduino szinten már van elégséges tapasztalatom. Ha valakinek megdobogtatta a bitjeit, várom az alkotó jellegű hozzászólásokat.