Arduino Mini Pro

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Celeron
Příspěvky: 20513
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

Arduino Mini Pro

#1 Příspěvek od Celeron »

Potřebuju ohledávat klávesnici 4x4 a význam stlačený klávesy vložit do textovýho řetězce a poslat na sériový port s TTL úrovní. Je to vlastně manuální ovládací jednotka CNC frézky pro ruční posuv os X Y Z, zapínání vřetene, home a pod. Mělo by na to stačit tohle. FW jsem našel na netu a nějakou lehkou úpravu snad zvládnu.
Předpokládám správně, že pro nahrnutí FW z PC do Arduina budu potřebovat ještě převodník USB/Com TTL? Stačí tenhle převodník při nahrání FW napájet jen z USB? Arduino bude mít napájení svoje.

Díky!
Jirka

Proč mi nemůže všechno chodit hned ?!!
hakamusai
Příspěvky: 939
Registrován: 17 dub 2007, 00:00

#2 Příspěvek od hakamusai »

Arduino se obvykle připojí k PC USB kabelem (nic extra netřeba).V případě Arduino PRO mini je to tak jak píšeš (dle popisu na eBay).Pro natažení programu do arduina bych vycházel ze stardardního zapojení převodníku.
Uživatelský avatar
dreamer
Příspěvky: 382
Registrován: 22 říj 2014, 00:00

#3 Příspěvek od dreamer »

Arduino PRO mini a jeho klony axistují ve více variantách. Nejdříve zjisti jestli máš 5V nebo 3,3V verzi, tomu se musí přizpůsobit úrovně převodníku. Měl jsem i takový kde se dalo propojkou zvolit. Potom stačí propojit TX a RX (křížem), GND případně i VCC (USB port určitě zvládne napájení převodníku i Arduina). Ve chvíli kdy IDE vypíše nahrávám program stisknout reset na arduinu. Jde propojit i ten reset aby nebylo nutné jej mačkat ale mě se obvykle nechce hledat jak a ne všechny převodníky mají potřebný signál vyvedený.
Uživatelský avatar
monterjirka
Příspěvky: 2855
Registrován: 14 čer 2003, 00:00
Bydliště: Blížejov

#4 Příspěvek od monterjirka »

Možná by bylo jednodušší použít Arduino s rozhraním USB, s konektorem miniUSB.
Ono to cenově je v podstatě stejné
Uživatelský avatar
Celeron
Příspěvky: 20513
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#5 Příspěvek od Celeron »

monterjirka píše:Možná by bylo jednodušší použít Arduino s rozhraním USB, s konektorem miniUSB.
Ono to cenově je v podstatě stejné

Nojo, ale jak to pak je když potřebuju samostatnej COM TTL? Arduino přeci USB generuje z sériovýho portu. Nebo je nějaký mini (mikro), co má 2 Comy?
Jirka

Proč mi nemůže všechno chodit hned ?!!
Uživatelský avatar
pocitujlasku
Příspěvky: 2764
Registrován: 12 pro 2005, 00:00
Bydliště: SR, Poprad

#6 Příspěvek od pocitujlasku »

Celeron: arduino ma moznost urobit sw port z 2 pinov. https://www.arduino.cc/en/Tutorial/Soft ... ialExample
No vidis, a tak si sa bal
Uživatelský avatar
Celeron
Příspěvky: 20513
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#7 Příspěvek od Celeron »

dreamer píše:Arduino PRO mini a jeho klony axistují ve více variantách. Nejdříve zjisti jestli máš 5V nebo 3,3V verzi, tomu se musí přizpůsobit úrovně převodníku. Měl jsem i takový kde se dalo propojkou zvolit. Potom stačí propojit TX a RX (křížem), GND případně i VCC (USB port určitě zvládne napájení převodníku i Arduina). Ve chvíli kdy IDE vypíše nahrávám program stisknout reset na arduinu. Jde propojit i ten reset aby nebylo nutné jej mačkat ale mě se obvykle nechce hledat jak a ne všechny převodníky mají potřebný signál vyvedený.


Potřebuju mini i převodník 5V, řízení CNC je Mega 2560 taky 5V, 3.3V není V CNC mašině k dispozici. Převodník z odkazu má jumper 3.3 /5V tak jsem snad vybral dobře.
Ještě bych měl dotaz k Keypad 4x4 (0-9, A,B,C,D,#,*) co se nabízí k Arduinu. Jsou v klávesnici mírně vystouplý křupací žabky, nebo je bez žabek a zcela rovná plocha hmatníku a spínaní tak nějak neurčitý? Jde mi o to, nalepit na stávající klávesnici novou fólii s novými významy kláves. U vystouplých žabek to prý nejde, origo je ve výrobě lisovaný do formy za tepla aby se vytvořily bochánky nad křupkama.
Díky
Jirka
Jirka

Proč mi nemůže všechno chodit hned ?!!
Uživatelský avatar
ST78
Příspěvky: 116
Registrován: 16 lis 2009, 00:00

#8 Příspěvek od ST78 »

Postupoval bych takto:

1) Použít třeba Arduino mini. K němu potřebuješ převodník z USB nebo COM portu na TTL. Ideál je, pokud převodník má signály RX,TX,DTR a GND. DTR signál usnadňuje programování při automatickém nahrávání kódu do Arduina. (DTR je použito pro automatický RESET při startu nahrávání).
2) Spustit Arduino prostředí.
3) Zvolit v něm odpovídající číslo COM portu a typ Arduina.
4) Vyzkoušet, zda funguje přeložení a nahrání příkladu "blikání LEDkou" - je to v příkladech v Arduino prostředí.
5) Připojit klávesnici.
6) Spustit si v Arduino prostředí terminál sériového portu - je to součástí Arduino IDE a může se to používat souběžně s nahráváním programu do procesoru (samo si to přepíná).
7) Nahrát nějaký příklad pro sérivou komunikaci (třeba výpis ASCII tabulky). Otestovat, zda chodí sériová komunikace (je třeba si pohlídat rychlosti).
8) Pohledat případně knihovnu pro klávesnici.
9) A pak již vesele datlovat vlastní kód...
termit256
Příspěvky: 10029
Registrován: 06 pro 2007, 00:00

#9 Příspěvek od termit256 »

Nevim jakou klavesnici myslis, ale ty cinske co koupis za dolar ty plechove zabky nemaji.
Uživatelský avatar
Celeron
Příspěvky: 20513
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#10 Příspěvek od Celeron »

termit256 píše:Nevim jakou klavesnici myslis, ale ty cinske co koupis za dolar ty plechove zabky nemaji.

Hen ten onen bazmek.
Jirka

Proč mi nemůže všechno chodit hned ?!!
Uživatelský avatar
Celeron
Příspěvky: 20513
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#11 Příspěvek od Celeron »

ST78 píše:Postupoval bych takto:
9) A pak již vesele datlovat vlastní kód...

Nemusím, už je nadatlováno, sériák na AUX1 D0 a D1. Snad dobře. :wink:
Mělo by to generovat od každý klávesy jinej G-code na ovládání frézky, takže nebude potřeba mít trvale připojený PC. Frézovací data pojedou z SD karty na Mega 2560.

Kód: Vybrat vše

#include <Keypad.h>
#include <EEPROM.h>

float xRes = 0.1;
float yRes = 0.1;
float zRes = 0.01;

//int toolPWM = EEPROM.read(1);
int toolPWM = 255;
int pwmRes = 5;

void(* resetFunc) (void) = 0; //declare reset function at address 0

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns

char hexaKeys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup() {
  Serial.begin(250000);
  keypad.addEventListener(keypadEvent);
}
 
void loop() {
  char key = keypad.getKey();
}

void keypadEvent(KeypadEvent key) {
  switch (keypad.getState()) {
    case PRESSED:
        if (key == '*') { Serial.println("M42 P44 S255"); Serial.println("M117 Spindle ON"); } // Spindle on
        else if (key == '0') { Serial.println("M42 P44 S0"); Serial.println("M117 Spindle OFF"); } // Spindle off
        else if (key == '#') { Serial.println("M84"); } // Motor off
       
        else if (key == '6') { Serial.println("G91"); Serial.print("G0 X"); Serial.println(xRes); Serial.println("G90"); } // X Plus
        else if (key == '4') { Serial.println("G91"); Serial.print("G0 X-"); Serial.println(xRes); Serial.println("G90"); } // X Minus

        else if (key == '2') { Serial.println("G91"); Serial.print("G0 Y"); Serial.println(yRes); Serial.println("G90"); } // Y Plus
        else if (key == '5') { Serial.println("G91"); Serial.print("G0 Y-"); Serial.println(yRes); Serial.println("G90"); } // Y Minus
       
        else if (key == '3') { Serial.println("G91"); Serial.print("G0 Z"); Serial.println(zRes); Serial.println("G90"); } // Z Plus
        else if (key == '1') { Serial.println("G91"); Serial.print("G0 Z-"); Serial.println(zRes); Serial.println("G90"); } // Z Minus

        else if (key == 'A') { if(xRes == 0.1) {xRes = 1;} else if(xRes == 1) {xRes = 10;} else if(xRes == 10) {xRes = 50;} else if(xRes == 50) {xRes = 0.1;} } // X Resolution
        else if (key == 'B') { if(yRes == 0.1) {yRes = 1;} else if(yRes == 1) {yRes = 10;} else if(yRes == 10) {yRes = 50;} else if(yRes == 50) {yRes = 0.1;} } // Y Resolution
        else if (key == 'C') { if(zRes == 0.01) {zRes = 0.1;} else if(zRes == 0.1) {zRes = 1;} else if(zRes == 1) {zRes = 10;} else if(zRes == 10) {zRes = 0.01;} } // Z Resolution
       
        else if (key == '7') { Serial.println("G28 X0 Y0"); } // XY to MIN
        else if (key == '8') { Serial.println("G92 X0 Y0 Z0"); } // Set to X0 Y0 Z0
        else if (key == '9') { Serial.println("G28 Z0"); } // Z to MAX
       
        else if (key == 'D') { for (int x=0;x<5;x++) Serial.println("M112"); } // Kill
        break;

    case RELEASED:       
        break;

    case HOLD:
        if (key == 'A') { xRes = 0.1; } // X Resolution
        else if (key == 'B') { yRes = 0.1; } // Y Resolution
        else if (key == 'C') { zRes = 0.01; } // Z Resolution

        else if (key == 'D') { resetFunc(); } // Restart
        break;
  }
}


Ty Include jsou obecný Arduiňácký, nebo se musí hledat pro konkrétní typ, u Mini pro pro AT328?
Díky
Jirka

Proč mi nemůže všechno chodit hned ?!!
Uživatelský avatar
dreamer
Příspěvky: 382
Registrován: 22 říj 2014, 00:00

#12 Příspěvek od dreamer »

knihovny jsou obecné,měly by fungovat s každým arduinem. Ta klávesnice vypadá že je membránová. Otázka je jestli bude fungovat když se na ni něco nalepí a jestli to tam bude držet.
Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 00:00
Bydliště: Praha

#13 Příspěvek od FHonza »

Celeron píše:Hen ten onen bazmek.


Tohle je opravdu bazmek, je to placatý a nějaká hmatová odezva žádná. Je tam vidět i fotka z boku. Zas za ty peníze ...
Uživatelský avatar
Celeron
Příspěvky: 20513
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#14 Příspěvek od Celeron »

dreamer píše: Otázka je jestli bude fungovat když se na ni něco nalepí a jestli to tam bude držet.

Jo UhuPor je vyzkoušený na Jihlavský membránovky. Je to kontaktní lepidlo alá Alkaprén, stále gumovej a hlavně nic nežere, ani polystyrén.

To FHonza. Já vím, že to je nic moc, proto jsem to tak pojmenoval. Co tohle? To jsou zase gumičky ala dálkový ovládání co za rok zvolejovatí, co? Na tom popis kláves nezměním ani náhodou.
Jirka

Proč mi nemůže všechno chodit hned ?!!
termit256
Příspěvky: 10029
Registrován: 06 pro 2007, 00:00

#15 Příspěvek od termit256 »

Zalezi na co to mas, ty membranove jsou opravdu jen na nejake obcasne zadani hodnot. Pokud se to bude pouzivat porad, doporucuju udelat klavesnici z tech vetsich mikrospinacu (12x12mm), prekryt je cca 0,5mm tlustym plastem (s oblibou na to pouzivam ruzne bezpecnostni tabulky) a prelepis to samolepkou s natistenym motivem.

Takova klavesnice ma perfektni hmatovou odezvu, da se v pohode ovladat i v rukavicich a jeste se mi nestalo ze by nejaky spinac odesel. Nahrazuju tim ve firme vsechny membranove ktere po case odchazi, chlapi si je pochvaluji.

Nad tema gumovyma jsem taky uvazoval, ale asi se bude obtizne zajistovat odolnost proti prachu a vode. Samolepku nalepis a nic se tam nedostane ani po krajich.
Naposledy upravil(a) termit256 dne 14 pro 2016, 13:41, celkem upraveno 1 x.
Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“