<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.hydrover.it/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages</id>
		<title>Hydrover - New pages [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.hydrover.it/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages"/>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Special:NewPages"/>
		<updated>2026-04-29T17:15:10Z</updated>
		<subtitle>From Hydrover</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1</id>
		<title>HYD-MB-REV-1.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=HYD-MB-REV-1.1"/>
				<updated>2017-09-27T13:57:21Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
= Description =&lt;br /&gt;
[[File:MB.png|200px]]&lt;br /&gt;
&lt;br /&gt;
The [[HYD-MB-REV-1.1]] ( aka MB Mobile Board ) is an advanced slave board driven by [[H6105-D]] for controlling on/off and proportional valves.&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
* Real Time O.S.&lt;br /&gt;
* On-board advanced functions&lt;br /&gt;
&lt;br /&gt;
== On-board advanced functions ==&lt;br /&gt;
&lt;br /&gt;
* Automatic input change detection&lt;br /&gt;
* Quadrature phase AB channels decoding for incremental encoder or optical scale&lt;br /&gt;
* Single or dual Axis control&lt;br /&gt;
* Axis control by speed&lt;br /&gt;
* Axis control by position&lt;br /&gt;
* Parallel move Axis control&lt;br /&gt;
* Advanced Current Sequences (mixed linear, exponential and S curvers)&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
* Power 12V-24V (Max 36V)&lt;br /&gt;
* CPU ARM Cortex M3 100MHz&lt;br /&gt;
* Interfaces USB, CAN, RS232&lt;br /&gt;
* Digital inputs 8&lt;br /&gt;
* Analog inputs 4 (0-5V, 0-10V, 0-20mA software controlled)&lt;br /&gt;
* Digita inputs / outputs 8 (Max 5A)&lt;br /&gt;
* PWM Outputs 8 (Max 3A)&lt;br /&gt;
* Power Outputs 3 (Max 20A)&lt;br /&gt;
* On-board CAN termination resistors (software controlled)&lt;br /&gt;
&lt;br /&gt;
= Pinout =&lt;br /&gt;
[[File:HYD-MB_CONN.png|320px]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=H6105-D_and_H6103_basic_input/output</id>
		<title>H6105-D and H6103 basic input/output</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=H6105-D_and_H6103_basic_input/output"/>
				<updated>2017-07-06T12:09:31Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description =&lt;br /&gt;
&lt;br /&gt;
This programming example make use of events to monitor the switchs S1 and S2 and drive the corresponding lamps L1 and L2,&lt;br /&gt;
refer to the [[H6105-D and H6103 basic input/output wiring]] example.&lt;br /&gt;
&lt;br /&gt;
= Source Code =&lt;br /&gt;
&lt;br /&gt;
This is the source code in PAWN language of the '''H6105-D and H6103 basic input/output''' example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pawn&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/***************************************************************&lt;br /&gt;
*&lt;br /&gt;
*		Basic Input Output - example&lt;br /&gt;
*&lt;br /&gt;
*       program.p&lt;br /&gt;
*&lt;br /&gt;
***************************************************************/&lt;br /&gt;
&lt;br /&gt;
// include the library for H6105-D&lt;br /&gt;
//&lt;br /&gt;
#include &amp;lt;hydlib_cp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// define inputs&lt;br /&gt;
//&lt;br /&gt;
#define SWITCH_S1 MAKE_DIN_BOARD_CP(0)&lt;br /&gt;
#define SWITCH_S2 MAKE_DIN_BOARD_IO(0,0)&lt;br /&gt;
&lt;br /&gt;
// define outputs&lt;br /&gt;
//&lt;br /&gt;
#define LAMP_L1 MAKE_OUT_BOARD_IO(0,0)&lt;br /&gt;
#define LAMP_L2 MAKE_OUT_BOARD_IO(0,1)&lt;br /&gt;
&lt;br /&gt;
// main function&lt;br /&gt;
//&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
	// clear display&lt;br /&gt;
	//&lt;br /&gt;
	dClear();&lt;br /&gt;
	&lt;br /&gt;
	// select system font&lt;br /&gt;
	//&lt;br /&gt;
	dFont( system5x7 );&lt;br /&gt;
&lt;br /&gt;
	// place cursor&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 0 );&lt;br /&gt;
	&lt;br /&gt;
	// print on display&lt;br /&gt;
	//&lt;br /&gt;
	dPrintf( &amp;quot;Basic IO&amp;quot; );&lt;br /&gt;
	&lt;br /&gt;
	// set initial state of SWITCH_S1 and LAMP_L1&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 10 );&lt;br /&gt;
	if( DinRead( SWITCH_S1 ) )&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S1 ON &amp;quot; );&lt;br /&gt;
		OutSet( LAMP_L1 );&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S1 OFF&amp;quot; );&lt;br /&gt;
		OutClear( LAMP_L1 );&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// set initial state of SWITCH_S2 and LAMP_L2&lt;br /&gt;
	//&lt;br /&gt;
	dCursor( 0, 20 );&lt;br /&gt;
	if( DinRead( SWITCH_S2 ) )&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S2 ON &amp;quot; );&lt;br /&gt;
		OutSet( LAMP_L2 );&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		dPrintf( &amp;quot;SWITCH_S2 OFF&amp;quot; );&lt;br /&gt;
		OutClear( LAMP_L2 );&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// declare an event container&lt;br /&gt;
	//&lt;br /&gt;
	new BASE_EVENT(ev);&lt;br /&gt;
&lt;br /&gt;
	// enable system events&lt;br /&gt;
	//&lt;br /&gt;
	SysEvEnable();&lt;br /&gt;
	&lt;br /&gt;
	// main loop&lt;br /&gt;
	//&lt;br /&gt;
	for( ;; )&lt;br /&gt;
	{&lt;br /&gt;
		// get new event from queue&lt;br /&gt;
		//&lt;br /&gt;
		EventGet( ev );&lt;br /&gt;
		&lt;br /&gt;
		// process some events&lt;br /&gt;
		//&lt;br /&gt;
		switch( ev.opcode )&lt;br /&gt;
		{&lt;br /&gt;
			// &amp;lt;script stop&amp;gt; command from console&lt;br /&gt;
			//&lt;br /&gt;
			case SevEmergExit:&lt;br /&gt;
			{&lt;br /&gt;
				// exit main loop&lt;br /&gt;
				//&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// digital input activate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinActive:&lt;br /&gt;
			{&lt;br /&gt;
				//	SWITCH_S1&lt;br /&gt;
				//&lt;br /&gt;
				if( ev.p0 == SWITCH_S1 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S1 ON &amp;quot; );&lt;br /&gt;
					OutSet( LAMP_L1 );&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				//	SWITCH_S2&lt;br /&gt;
				//&lt;br /&gt;
				else if( ev.p0 == SWITCH_S2 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 20 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S2 ON &amp;quot; );&lt;br /&gt;
					OutSet( LAMP_L2 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// digital input deactivate&lt;br /&gt;
			//&lt;br /&gt;
			case SevDinInactive:&lt;br /&gt;
			{&lt;br /&gt;
				//	SWITCH_S1&lt;br /&gt;
				//&lt;br /&gt;
				if( ev.p0 == SWITCH_S1 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 10 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S1 OFF&amp;quot; );&lt;br /&gt;
					OutClear( LAMP_L1 );&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				//	SWITCH_S2&lt;br /&gt;
				//&lt;br /&gt;
				else if( ev.p0 == SWITCH_S2 )&lt;br /&gt;
				{&lt;br /&gt;
					dCursor( 0, 20 );&lt;br /&gt;
					dPrintf( &amp;quot;SWITCH_S2 OFF&amp;quot; );&lt;br /&gt;
					OutClear( LAMP_L2 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	// program end&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	<entry>
		<id>http://wiki.hydrover.it/index.php?title=Finite_State_Machine</id>
		<title>Finite State Machine</title>
		<link rel="alternate" type="text/html" href="http://wiki.hydrover.it/index.php?title=Finite_State_Machine"/>
				<updated>2017-07-06T09:53:05Z</updated>
		
		<summary type="html">&lt;p&gt;Andrea: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
A [https://en.wikipedia.org/wiki/Finite-state_machine Finite-state machine] is an [https://en.wikipedia.org/wiki/Abstract_machine abstract machine] that can be in exactly one of a finite number of states at any given time.  The FSM can change from one state to another in response to some external inputs; the change from one state to another is called a ''transition''. An FSM is defined by a list of its states, its initial state, and the conditions for each transition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Event-driven FSM =&lt;br /&gt;
&lt;br /&gt;
An '''Event-driven FSM''' is a kind of FSM where transistions from one state to another are triggered by events ( see [[The Queue of Events]] )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
This is one example of an '''Event-driven FSM'''&lt;br /&gt;
&lt;br /&gt;
* [[H6105-D Rotary Encoder and Menu]]&lt;/div&gt;</summary>
		<author><name>Andrea</name></author>	</entry>

	</feed>