Deprecated (8192): Creation of dynamic property Laminas\Diactoros\Uri::$base is deprecated [CORE/src/Http/ServerRequestFactory.php, line 254]
Deprecated (8192): Creation of dynamic property Laminas\Diactoros\Uri::$webroot is deprecated [CORE/src/Http/ServerRequestFactory.php, line 256]
Deprecated (8192): Creation of dynamic property App\Controller\ChaptersController::$RequestHandler is deprecated [CORE/src/Controller/Controller.php, line 354]
Deprecated (8192): Creation of dynamic property App\Controller\ChaptersController::$Flash is deprecated [CORE/src/Controller/Controller.php, line 354]
Deprecated (8192): Return type of Cake\Database\Query::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/Database/Query.php, line 1900]
Deprecated (8192): Creation of dynamic property App\Controller\ChaptersController::$Chapters is deprecated [CORE/src/Controller/Controller.php, line 354]
Deprecated (8192): Return type of Cake\Database\Statement\StatementDecorator::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/Database/Statement/StatementDecorator.php, line 285]
Deprecated (8192): Return type of Cake\Chronos\Traits\FactoryTrait::createFromFormat($format, $time, $tz = null): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FactoryTrait.php, line 233]
Deprecated (8192): Return type of Cake\Chronos\Traits\FrozenTimeTrait::setTime($hours, $minutes, $seconds = null, $microseconds = null): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::setTime(int $hour, int $minute, int $second = 0, int $microsecond = 0): DateTimeImmutable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php, line 78]
Deprecated (8192): Return type of Cake\Chronos\Traits\FrozenTimeTrait::add($interval): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::add(DateInterval $interval): DateTimeImmutable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php, line 91]
Deprecated (8192): Return type of Cake\Chronos\Traits\FrozenTimeTrait::sub($interval): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::sub(DateInterval $interval): DateTimeImmutable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php, line 104]
Deprecated (8192): Return type of Cake\Chronos\Traits\FrozenTimeTrait::setTimezone($value) should either be compatible with DateTimeImmutable::setTimezone(DateTimeZone $timezone): DateTimeImmutable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php, line 143]
Deprecated (8192): Return type of Cake\Chronos\Traits\FrozenTimeTrait::setTimestamp($value): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::setTimestamp(int $timestamp): DateTimeImmutable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php, line 157]
Deprecated (8192): Return type of Cake\Chronos\Traits\FrozenTimeTrait::modify($relative): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::modify(string $modifier): DateTimeImmutable|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php, line 171]
Deprecated (8192): Return type of Cake\Chronos\Traits\ModifierTrait::setDate($year, $month, $day): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::setDate(int $year, int $month, int $day): DateTimeImmutable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/ModifierTrait.php, line 112]
Deprecated (8192): Return type of Cake\I18n\FrozenDate::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/I18n/DateFormatTrait.php, line 442]
Deprecated (8192): Return type of Cake\I18n\FrozenTime::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/I18n/DateFormatTrait.php, line 442]
Deprecated (8192): Return type of Cake\Database\Statement\BufferedStatement::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/Database/Statement/BufferedStatement.php, line 294]
Deprecated (8192): Return type of Cake\Database\Statement\BufferedStatement::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/Database/Statement/BufferedStatement.php, line 284]
Deprecated (8192): Return type of Cake\ORM\ResultSet::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/ORM/ResultSet.php, line 187]
Deprecated (8192): Cake\ORM\ResultSet implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) [CORE/src/ORM/ResultSet.php, line 33]
Deprecated (8192): Cake\Collection\Collection implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) [CORE/src/Collection/Collection.php, line 27]
Deprecated (8192): Cake\Collection\Iterator\FilterIterator implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) [CORE/src/Collection/Iterator/FilterIterator.php, line 31]
Deprecated (8192): Return type of & Cake\ORM\Entity::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/Datasource/EntityTrait.php, line 604]
Deprecated (8192): Cake\View\ViewBuilder implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) [CORE/src/View/ViewBuilder.php, line 37]
Warning (512): Unable to emit headers. Headers sent in file=/home/wbdhgxnxye2r/domains/simplehaptics.se/html/vendor/cakephp/cakephp/src/Error/Debugger.php line=970 [CORE/src/Http/ResponseEmitter.php, line 71]
Warning (2): Cannot modify header information - headers already sent by (output started at /home/wbdhgxnxye2r/domains/simplehaptics.se/html/vendor/cakephp/cakephp/src/Error/Debugger.php:970) [CORE/src/Http/ResponseEmitter.php, line 164]
Warning (2): Cannot modify header information - headers already sent by (output started at /home/wbdhgxnxye2r/domains/simplehaptics.se/html/vendor/cakephp/cakephp/src/Error/Debugger.php:970) [CORE/src/Http/ResponseEmitter.php, line 197]
Warning (2): Cannot modify header information - headers already sent by (output started at /home/wbdhgxnxye2r/domains/simplehaptics.se/html/vendor/cakephp/cakephp/src/Error/Debugger.php:970) [CORE/src/Http/ResponseEmitter.php, line 235]
Simple Haptics | Ph.D. thesis of Camille Moussette


2.2 Sketching Haptic Interactions


Concept

Have a weight moving around in circular motion inside the device. What are the qualities and particularities of having a center-of-mass moving in circular motion, versus in linear motion.

Spinner 01

Deprecated (8192): Creation of dynamic property App\View\AppView::$Image is deprecated [CORE/src/View/View.php, line 1090]

Steel nuts are attached to an rotating arm. The rotation speed is controlled by a small DC motor. No position control, only speed and direction.

Spinner 02

In this iteration, I am testing a wheel-encoder to add position control to the setup. This way I can precisely rotate the ballast is a specific direction, i.e. like a weighted-compass.

Spinner 03 (final)

The motor has been moved to a flat configuration to obtain a slimmer device. Gears have been added to move the rotating plate. The ballast can be modified by reconfiguring the dead-weights.

Videos

Related photos