Keresés

Részletes keresés

HA5OPI Creative Commons License 2019.03.18 0 0 5

Én natív C-s vagyok, és linuxos.

 

http://linuxprogramozas.hu/

Előzmény: Törölt nick (2)
schlumberger Creative Commons License 2019.03.18 0 0 4

Jószerencsét! Vy 73!

Előzmény: Törölt nick (-)
Törölt nick Creative Commons License 2019.03.16 0 0 3

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.

Előzmény: Törölt nick (2)
Törölt nick Creative Commons License 2019.03.16 0 0 2

Ez egy 0 szériás próbapanel:

 

Á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.

HA5OPI Creative Commons License 2019.03.16 0 0 1

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ő.

Előzmény: Törölt nick (-)
boldog Bulldog Creative Commons License 2019.03.16 0 0 0
Kelgy0
Előzmény: Törölt nick (-)
Törölt nick Creative Commons License 2019.03.16 0 0 topiknyitó

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")

 

Arduino-kód:

 

const int led=13;
int value=0;

void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
Serial.println("Connection established...");
}

void loop()
{
while(Serial.available())
{
value=Serial.read();
}
if(value=='1'){
digitalWrite(led, HIGH);}
else if(value==('0')){
digitalWrite(led, LOW);
}
}

 

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.

 

Köszönöm!

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!